exponenta event banner

Иорданская каноническая форма

Иорданская каноническая форма (иорданская нормальная форма) является результатом попыток преобразования матрицы в диагональную форму путём преобразования подобия. Для заданной матрицы A, найти ненингулярный матрикс V, так что inv(V)*A*V, или, более лаконично, J = V\A*V, «как можно ближе к диагонали». Почти для всех матриц каноническая форма Джордана является диагональной матрицей собственных значений, а столбцы матрицы преобразования - собственными векторами. Это всегда происходит, если матрица симметрична или имеет различные собственные значения. Некоторые несимметричные матрицы с несколькими собственными значениями не могут быть преобразованы в диагональные формы. Форма Джордана имеет собственные значения на своей диагонали, но некоторые из сверхдиагональных элементов равны единице, а не нулю. Заявление

J = jordan(A)

вычисляет иорданскую каноническую форму A. Заявление

[V,J] = jordan(A)

также вычисляет преобразование подобия, где J = inv(V)*A*V. Столбцы V являются обобщенными собственными векторами A.

Иорданская форма крайне чувствительна к изменениям. Практически любое изменение в A заставляет его иорданскую форму быть диагональной. Это подразумевает, что A должен быть точно известен (т.е. без ошибки округления и т.д.) и делает очень трудным надежное вычисление формы Джордана с помощью арифметики с плавающей запятой. Таким образом, вычисление формы Джордана значениями с плавающей запятой ненадежно и не рекомендуется.

Например, пусть

A = sym([12,32,66,116;-25,-76,-164,-294;
         21,66,143,256;-6,-19,-41,-73])
A =
[  12,  32,   66,  116]
[ -25, -76, -164, -294]
[  21,  66,  143,  256]
[  -6, -19,  -41,  -73]

Тогда

[V,J] = jordan(A)

производит

V =
[  4, -2,   4,  3]
[ -6,  8, -11, -8]
[  4, -7,  10,  7]
[ -1,  2,  -3, -2]
 
J =
[ 1, 1, 0, 0]
[ 0, 1, 0, 0]
[ 0, 0, 2, 1]
[ 0, 0, 0, 2]

Показать, что J и inv(V)*A*V равны с помощью isequal. isequal функция возвращает логические 1 (true) означает, что входные данные равны.

isequal(J, inv(V)*A*V)
ans =
  logical
   1

От J, мы видим, что A имеет двойное собственное значение в 1, с одним блоком Джордана, и двойное собственное значение в 2, также с одним блоком Джордана. Матрица имеет только два собственных вектора, V(:,1) и V(:,3). Они удовлетворяют

A*V(:,1) = 1*V(:,1)
A*V(:,3) = 2*V(:,3)

Два других столбца V являются обобщенными собственными векторами класса 2. Они удовлетворяют

A*V(:,2) = 1*V(:,2) + V(:,1)
A*V(:,4) = 2*V(:,4) + V(:,3)

В математической нотации, с vj = v(:,j), столбцы V и собственные значения удовлетворяют соотношениям

(A λ1I) v2 = v1

(A λ2I) v4 = v3.