exponenta event banner

Собственные значения

Символические собственные значения квадратной матрицы A или символические собственные значения и собственные векторы A вычисляются, соответственно, с помощью команд E = eig(A) и [V,E] = eig(A).

Аналоги переменной точности: E = eig(vpa(A)) и [V,E] = eig(vpa(A)).

Собственные значения A являются нулями характеристического многочлена A, det(A-x*I), которая вычисляется с помощью charpoly(A).

Матрица H в последнем разделе приведен первый пример:

H = sym([8/9 1/2 1/3; 1/2 1/3 1/4; 1/3 1/4 1/5])
H =
[ 8/9, 1/2, 1/3]
[ 1/2, 1/3, 1/4]
[ 1/3, 1/4, 1/5]

Матрица является сингулярной, поэтому одно из ее собственных значений должно быть равно нулю. Заявление

[T,E] = eig(H)

создает матрицы T и E. Столбцы T являются собственными векторами H и диагональные элементы E являются собственными значениями H:

T =
[ 3/10, 218/285 - (4*12589^(1/2))/285, (4*12589^(1/2))/285 + 218/285]
[ -6/5,     292/285 - 12589^(1/2)/285,     12589^(1/2)/285 + 292/285]
[    1,                             1,                             1]
 
E =
[ 0,                       0,                       0]
[ 0, 32/45 - 12589^(1/2)/180,                       0]
[ 0,                       0, 12589^(1/2)/180 + 32/45]

Может быть проще понять структуру матриц собственных векторов, Tи собственные значения, E, при преобразовании T и E в десятичное представление. Для этого выполните следующие действия. Команды

Td = double(T)
Ed = double(E)

вернуть

Td =
    0.3000   -0.8098    2.3397
   -1.2000    0.6309    1.4182
    1.0000    1.0000    1.0000

Ed =
         0         0         0
         0    0.0878         0
         0         0    1.3344

Первое собственное значение равно нулю. Соответствующий собственный вектор (первый столбец Td) совпадает с основанием для пустого пространства, найденного в последнем разделе. Два других собственных значения являются результатом применения квадратичной формулы к x2 6445x + 2532160 которая является квадратичным фактором вfactor(charpoly(H, x)):

syms x
g = factor(charpoly(H, x))/x
solve(g(3))
g =
[ 1/(2160*x), 1, (2160*x^2 - 3072*x + 253)/x]
ans =
 32/45 - 12589^(1/2)/180
 12589^(1/2)/180 + 32/45

Символьные выражения замкнутой формы для собственных значений возможны только тогда, когда характеристический многочлен может быть выражен как произведение рациональных многочленов степени четыре или меньше. Матрица Россера - это классическая тестовая матрица численного анализа, которая иллюстрирует это требование. Заявление

R = sym(rosser)

производит

R =
[  611,  196, -192,  407,   -8,  -52,  -49,   29]
[  196,  899,  113, -192,  -71,  -43,   -8,  -44]
[ -192,  113,  899,  196,   61,   49,    8,   52]
[  407, -192,  196,  611,    8,   44,   59,  -23]
[   -8,  -71,   61,    8,  411, -599,  208,  208]
[  -52,  -43,   49,   44, -599,  411,  208,  208]
[  -49,   -8,    8,   59,  208,  208,   99, -911]
[   29,  -44,   52,  -23,  208,  208, -911,   99]

Команды

p = charpoly(R, x);
factor(p)

произвести

ans =
 
[ x, x - 1020, x^2 - 1040500, x^2 - 1020*x + 100, x - 1000, x - 1000]

Характерный многочлен (степени 8) красиво множится в произведение двух линейных членов и трёх квадратичных членов. Сразу видно, что четыре из собственных значений равны 0, 1020 и двойному корню в 1000. Остальные четыре корня получены из оставшихся квадратиков. Использовать

eig(R)

найти все эти значения

ans =
                  0
               1000
               1000
               1020
 510 - 100*26^(1/2)
 100*26^(1/2) + 510
    -10*10405^(1/2)
     10*10405^(1/2)

Матрица Россера не является типичным примером; для полной матрицы 8 на 8 редко бывает иметь характерный многочлен, который факторизирует в такую простую форму. При изменении двух «угловых» элементов R от 29 до 30 с командами

S = R;
S(1,8) = 30;
S(8,1) = 30;

а затем попробуйте

p = charpoly(S, x)

вы находите

p =
x^8 - 4040*x^7 + 5079941*x^6 + 82706090*x^5...
 - 5327831918568*x^4 + 4287832912719760*x^3...
 - 1082699388411166000*x^2 + 51264008540948000*x...
 + 40250968213600000

Вы также находите, что factor(p) является p сам. То есть, характеристический многочлен не может быть факторизован над обоснованиями.

Для этой модифицированной матрицы Россера

F = eig(S)

прибыль

F = 
 -1020.053214255892
  -0.17053529728769
 0.2180398054830161
  999.9469178604428
  1000.120698293384
  1019.524355263202
  1019.993550129163
  1020.420188201505

Обратите внимание, что эти значения близки к собственным значениям исходной матрицы Россера.

Также можно попытаться вычислить собственные значения символьных матриц, но решения замкнутых форм встречаются редко. Преобразование Гивенса генерируется как экспонента матрицы элементарной матрицы

A = [01 10].

Команды символьных математических Toolbox™

syms t
A = sym([0 1; -1 0]);
G = expm(t*A)

вернуть

G =
[           exp(-t*1i)/2 + exp(t*1i)/2,
    (exp(-t*1i)*1i)/2 - (exp(t*1i)*1i)/2]
[ - (exp(-t*1i)*1i)/2 + (exp(t*1i)*1i)/2,
            exp(-t*1i)/2 + exp(t*1i)/2]

Это выражение можно упростить с помощью simplify:

G = simplify(G)
G = 
[  cos(t), sin(t)]
[ -sin(t), cos(t)]

Далее команда

g = eig(G)

производит

g =
 cos(t) - sin(t)*1i
 cos(t) + sin(t)*1i

Можно переписать g в терминах экспонент:

g = rewrite(g, 'exp')
g = 
 exp(-t*1i)
  exp(t*1i)