Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
для вялички / TROPA V MATLAB_21.doc
Скачиваний:
101
Добавлен:
13.02.2016
Размер:
2.79 Mб
Скачать

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.

Соседние файлы в папке для вялички