2.5 Вычисление собственных значений и собственных векторов. Решение типовых задач линейной алгебры
Важной задачей линейной алгебры является задача на собственные значения.
Собственные числа (значения) λi и собственные векторы (ui ≠ 0) квадратной матрицы А удовлетворяют равенствам
Aui = λiui.
Собственные значения λ квадратной матрицы А являются корнями ее характеристического уравнения│A - λE│ = 0, где E – единичная матрица того же порядка n, что и А. Многочлен │A - λE│называется характеристическим полиномом матрицы А. В общем случае имеется n различных комплексных или вещественных корней характеристического уравнения. Их количество будет меньше в случае кратных корней.
Пример:
Дана квадратная матрица второго порядка
A =
Решить задачу на собственные значения вручную и средствами MATLAB.
Решение:
Находим характеристический полином матрицы A.
E = , │A - λE│ = = (3 - λ)(2 - λ) - 20 = λ2 - 5λ - 14.
В MATLAB массив коэффициентов характеристического полинома матрицы А возвращает команда poly:
>> poly(A)
ans =
1 -5 -14
Характеристическим уравненим является квадратное уравнение
λ2 - 5λ - 14 = 0.
Вычисляем корни этого уравнения.
λ1,2 = = = = = .
Корни уравнения λ1 = -2 и λ2 = 7 являются собственными значениями матрицы А.
Найдем теперь собственные векторы, соответствующие этим собственным значениям. Собственный вектор
U = ,
соответствующий собственному значению λ1 = -2, определяется уравнениями
т. е. 5u1 + 4u2 = 0. Из этого равенства следует, что собственный вектор U определяется с точностью до числового множителя, поэтому одну из координат собственного вектора можно зафиксировать. Полагая u1 = -4, найдем u2 = 5 и получим
U = .
Аналогично, собственный вектор
V = ,
соответствующий собственному значению λ2 = 7, определяется уравнениями
т. е. v1 – v2 = 0. Полагая v1 = 1, найдем v2 = 1 и получим
V = .
Следовательно, собственным значениям λ1 = -2 и λ2 = 7 соответствуют собственные векторы
U = и V = .
На рассмотренном примере мы убедились, что задача на собственные значения оказалась достаточно сложной и трудоемкой даже для матрицы минимального (второго) порядка.
В MATLAB собственные значения матрицы A вычисляет команда eig(A):
>> A=[3 4;5 2];
>> Lambda=eig(A)
Lambda =
7
-2
Команда [R,Lam]=eig(A) вычисляет как собственные значения, так и собственные векторы:
>> [R,Lam]=eig(A)
R =
0.7071 -0.6247
0.7071 0.7809
Lam =
7 0
0 -2
Собственные значения являются диагональными элементами диагональной матрицы Lam, а столбцы матрицы R являются собственными векторами. Итак, собственным значениям λ1 = -2 и λ2 = 7 соответствуют собственные векторы
R1 = и R2 = .
Как указывалось выше, собственные векторы определяются с точностью до числового множителя. Команда eig вычисляет единичные или нормированными по евклидовой норме собственные векторы.
Существуют различные типы векторных норм. Норма ||R||p вектора R длины n определяется следующим образом:
||R||p = (p = 1, 2, …).
Если p=2 – норма называется евклидовой.
В MATLAB норму ||R||p вектора R вычисляет команда norm(R,p). Команда norm(R) вычисляет евклидову норму вектора R по умолчанию. Если norm(R) = 1, вектор R называется единичным или нормированным.
Вектор R нормируется следующим образом:
Rnorm = .
Пронормируем найденные вручную собственные векторы
U = и V = :
>> U=[-4;5];V=[1;1];
>> disp(U/norm(U))
-0.6247
0.7809
>> disp(V/norm(V))
0.7071
0.7071
Результы совпали с собственными векторами R1 и R2, вычисленными командой eig.
Для получения вычисленных в символьной форме пар собственных значений и собственных векторов, введем следующую команду:
>> [R,Lam]=eig(sym(A))
R =
[ 1, 1]
[ 1, -5/4]
Lam =
[ 7, 0]
[ 0, -2]
Некоторые команды линейной алгебры MATLAB мы рассматривали ранее. К ним относятся, в частности, команды вычисления определителя и обратной матрицы det и inv.(см. разд. 1.10).
В MATLAB cуществует и другие команды решения типовых задач линейной алгебры.
Так, команда norm вычисляет различные виды норм векторов и матриц. Справку по этой команде можно получить, набрав в командной строке doc norm.
Команда rank(B)возвращает ранг прямоугольной матрицыB.
Ранг матрицы B есть такое число r = rB, что по крайней мере один из определителей r - го порядка, получаемый из этой матрицы при удалении строк и/или столбцов, отличен от нуля, а все определители (r+1) - го порядка равны нулю. Ранг матрицы равен наибольшему числу линейно независимых строк (или столбцов). Квадратная матрица B порядка n является невырожденной в том и только в тот случае, когда ее ранг rB = n, т. е. det(B) ≠ 0.
Найдем ранг рассмотренной выше матрицы
A = :
>> disp(rank(A))
2
Поскольку ранг и порядок квадратной матрицы А совпадают, ее определитель должен быть ненулевым. Проверка:
>> det(A)
ans =
-14
Перечислим некоторые из команд линейной алгебры:
cond – число обусловленности матрицы;
lu – разложение на треугольные матрицы;
svd – сингулярное разложение матрицы и т. д.
Справочная информация по командам линейной алгебры находится в разделе matfunсправочной системы MATLAB.
- Основы работы и программирования, компьютерная математика Учебный курс
- Isbn ооо «Харвест», 2008
- Предисловие
- Введение
- Глава 1 знакомство с matlab и простейшие вычисления
- 1.1. Рабочая средаMatlab
- 1.2. Арифметические вычисления
- 1.3. Вещественные числа
- 1.4. Форматы вывода результата вычислений
- 1.5 Комплексные числа
- 1.6 Векторы и матрицы
- 1.7 Встроенные функции. Функции, задаваемые пользователем
- 1.8 Сообщения об ошибках и их исправление
- 1.9 Просмотр и сохранение переменных
- 1.10 Матричные и поэлементные операции над векторами и матрицами
- 1.11 Решение систем линейных уравнений
- Вопросы для самопроверки
- Глава 2 работа с массивами
- 2.1 Создание векторов и матриц
- 2.2 Применение команд обработки данных к векторам и матрицам
- 2.3 Создание специальных матриц
- 2.4 Создание новых массивов на основе существующих
- 2.5 Вычисление собственных значений и собственных векторов. Решение типовых задач линейной алгебры
- Вопросы для самопроверки
- Глава 3 м-файлы
- 3.1 Файл-программы
- 3.2 Файл-функции
- Вопросы для самопроверки
- Глава 4 программирование
- 4.1 Операторы отношения и логические операторы
- 4.2 Операторы цикла
- 4.3 Операторы ветвления
- 4.4 Оператор переключения switch
- 4.5 Оператор прерывания цикла break
- 4.6 Пример сравнения быстродействия матричных и скалярных операций
- Вопросы для самопроверки
- Глава 5 высокоуровневая графика
- 5.1 2D графика
- 5.1.1 Графики в линейном масштабе
- 5.2 Специальные виды 2d - графиков
- 5.2.1 Представление функции в виде дискретных отсчетов
- 5.2.2 Лестничные графики
- 5.2.3 Графики с указанием погрешности
- 5.2.4 Графики в логарифмическом и полулогарифмическом масштабах
- 5.2.5 Графики параметрических функций
- 5.3 3D графика
- 5.3.1 Линейчатые поверхности
- 5.3.2 Каркасные поверхности
- 5.3.3 Контурные графики
- 5.3.4 Сплошная освещенная поверхность
- 5.4 Оформление, экспорт и анимация
- 5.4.1 Оформление графиков
- 5.4.2 Сохранение и экспорт графиков
- 5.4.3 Анимация
- Вопросы для самопроверки
- Глава 6 прикладная численная математика
- 6.1 Операции с полиномами
- 6.2 Решение уравнений и их систем
- 6.3 Минимизация функции одной переменной
- 6.4 Минимизация функции нескольких переменных
- 6.5 Вычисление определенных интегралов
- 6.6 Решение дифференциальных уравнений
- 6.7 Аппроксимация и интерполяция данных
- 6.8 Интерполяция двумерных и многомерных данных
- Вопросы для самопроверки
- Глава 7 символьные вычисления
- 7.1 Символьные переменные, константы и выражения
- 7.2 Вычисления с использованием арифметики произвольной точности
- 7.3 Команды упрощения выражений – simplify, simple
- 7.4 Команда расширения выражений – expand
- 7.5 Разложение выражений на простые множители – команда factor
- 7.6 Приведение подобных членов – команда collect
- 7.7 Обеспечение подстановок – команда subs
- 7.8 Вычисление пределов – команда limit
- 7.9 Вычисление производных – команда diff
- 7.10 Вычисление интегралов – команда int
- 7.11 Разложение в ряд Тейлора – команда taylor
- 7.12 Вычисление суммы ряда – команда symsum
- 7.13 Решение уравнений и их систем – команда solve
- 7.14 Решение дифференциальных уравнений – команда dsolve
- 7.15 Прямое и обратное преобразования Лапласа – команды laplace,ilaplace
- 7.16 Графики символьных функций – команды ezplot, ezpolar
- 7.17 Прямой доступ к ядру системы Maple – командаmaple
- 7.18 Разложение рациональной дроби на сумму простейших дробей
- 7.19 Интерполяционный полином Лагранжа
- 7.20 Решение неравенств и систем неравенств
- 7.21 Разложение в ряд Тейлора функции нескольких переменных
- 7.22 Решение дифференциальных уравнений с помощью степенных рядов
- 7.23 Решение тригонометрических уравнений
- Вопросы для самопроверки
- Приложения Приложение 1. Справочная система matlab
- Приложение 2. Знакомство с пакетами расширения системыMatlab
- Приложение 3. Задания для самостоятельной работы
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Литература