Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 02.doc
Скачиваний:
0
Добавлен:
19.09.2019
Размер:
93.7 Кб
Скачать

2.6 Собственные числа и векторы матрицы. Матричные функции линейной алгебры

В MATLAB cуществует большое число функций, реализующих разнобразные операции линейной алгебры.

К таким функциям относятся det и inv, рассмотренные в разделе 1.10.

Важной задачей линейной алгебры является задача на собственные значения квадратной матрицы А.

Собственные числа (значения) λi и собственные векторы (ui ≠0) квадратной матрицы А удовлетворяют равенствам

Aui = λiui .

Пусть дана квадратная матрица

A = .

Функция eig c входным аргументом матрицей и выходным – вектором записывает в него все собственные числа матрицы:

>> A=[3 4;5 2];

>> Lambda=eig(A)

Lambda =

7

-2

Функция eig с двумя выходными аргументами возвращает одновременно все собственные векторы и числа:

>> [U,Lam]=eig(A)

U =

0.7071 -0.6247

0.7071 0.7809

Lam =

7 0

0 -2

Первый выходной аргумент U является матрицей, составленной по столбцам из собственных векторов. Для доступа к первому собственному вектору u1 используем индексацию при помощи двоеточия

>> u1=U(:,1)

u1 =

0.7071

0.7071

Аналогично, для вектора u2

>> u2=U(:,2)

u2 =

-0.6247

0.7809

Вторым выходным аргументом Lam возвращается диагональная матрица, содержащая собственные числа исходной матрицы λ1 =7, λ2 = –2.

Итак, собственным числам λ1 =7 и λ2 = –2 соответствуют собственные векторы

u1 = и u2 = .

Проверим выполнение равенств Aui = λiui , i=1,2:

>> L1=7;L2=-2;

>> disp(A*u1-L1*u1)

0

0

>> disp(A*u2-L2*u2)

1.0e-015 *

-0.2220

-0.4441

Равенства выполняются, т.е. задача на собственные значения для рассмотренной выше матрицы А решена верно.

Собственные значения λ матрицы А являются корнями ее характеристического уравнения│A–λE=0, где E – единичная матрица того же порядка n, что и А. Многочлен │A–λE│называется характеристическим полиномом матрицы А. В общем случае имеется n различных комплексных или вещественных корней характеристического уравнения. Однако в отдельных случаях при наличии кратных корней их число уменьшается.

Составим характеристическое уравнение для рассмотренной выше

матрицы А:

n = 2, E = , │A–λE│= = (3–λ)(2–λ)–20 = λ2–5λ–14 = 0.

В этом случае характеристический полином λ2–5λ–14. Решив уравнение λ2–5λ–14 = 0, получим: λ1 =7, λ2 = –2.

Функции poly возвращает массив коэффициентов характеристического полинома матрицы А:

>> poly(A)

ans =

1 -5 -14

Из равенств Aui = λiui следует, что собственные векторы определяются с точностью до числового множителя, поэтому одну из координат собственного вектора можно фиксировать на каком-либо конкретном значении. Так, если зафиксировать в векторе u1 первую координату равной 1, то это равносильно делению вектора u1 поэлементно на u1(1):

>> v1=u1/u1(1)

v1 =

1

1

Следовательно, вектор с целочисленными координатами, соответствующий вектору u1, равен

v1 = .

Проверка:

>> disp(A*v1-L1*v1)

0

0

Найдем отношение координат вектора u2:

>> format rat

>> disp(u2(1)/u2(2))

-4/5

Таким образом, вектор с целочисленными координатами, соответствующий вектору u2, равен

v2 = .

Проверка:

>> v2=[-4;5];

>> disp(A*v2-L2*v2)

0

0

Умножением v1 и v2 на целочисленные множители (не равные 0) можно получить и другие собственные векторы с целочисленными координатами.

Найденные с помощью функции eig собственные вектора отличаются от всех других тем, что являются единичным или нормированными по евклидовой норме.

Одна из норм ||V||p вектора V длины n определяется в MATLAB следующим образом:

||V||p = (p=1, 2, …).

Если p=2 – норма называется евклидовой.

Функция norm(V,p) возвращает норму ||V||p вектора V.

Функция norm(V) возвращает евклидову норму вектора V по умолчанию.

Для вещественных векторов V длины n=2,3 norm(V) совпадает с длиной вектора V.

Если norm(V)=1, вектор V называется единичным или нормированным.

Найдем норму (длину) каждого из векторов u1, u2, v1 , v2:

>> disp(norm(u1))

1

>> disp(norm(u2))

1

>> disp(norm(v1))

1.4142

>> disp(norm(v2))

6.4031

Вектор V нормируется следующим образом:

Vnorm = .

Пример нормировки вектора v1:

>> Vn1=v1/norm(v1)

Vn1 =

0.7071

0.7071

В результате получили нормированный вектор u1 .

Вывод:

В результате нормировки любой собственный вектор матрицы А совпадает с соответствующим ему нормированным вектором ui с точностью до знака.

Норма вектора norm(V,inf) равна наибольшему из модулей элементов вектора V.

Норма вектора norm(V,inf) равна наименьшему из модулей элементов вектора V.

Для матрицы А функция norm имеет в MATLAB четыре модификации, описание которых получим, набрав в командной строке команду doc norm.

Ранг матрицы А есть такое число r = rA, что по крайней мере один из определителей r - го порядка, получаемый из этой матрицы при удалении строк и/или столбцов, отличен от нуля, а все определители (r+1) го порядка равны нулю. Ранг матрицы равен наибольшему числу линейно независимых строк (или столбцов). Квадратная матрица А порядка n является невырожденной в том и только в тот случае, когда ее ранг rA =n, т.е. det(A) ≠0.

Функция rank(A) возвращает ранг матрицы А.

Найдем ранг и рассмотренной выше матрицы А:

>> disp(rank(A))

2

Поскольку ранг и порядок матрицы равны 2, ее определитель ненулевой:

>> det(A)

ans =

-14

Перечислим некоторые из функций, реализующих операции линейной алгебры:

cond – число обусловленности матрицы;

lu – разложение на треугольные матрицы;

svd – сингулярное разложение матрицы и т.д.

Справочная информация по матричным функциям находится в разделе matfun справочной системы MATLAB.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]