И другие программы этой серии
Нужно использовать [W,D]=eig(A\'); W=W\', чтобы вычислить левые соб
ственные вектора, которые соответствуют уравнению W*A=D*W;
[V,D] = eig(A, \'nobalance\') находит собственные векторы и собствен
ные значения без предварительного масштабирования. Иногда это улучша
ет обусловленность входной матрицы, обеспечивая большую точность вы
числения собственных векторов для необычно масштабированных матриц;
eig(A,B, \'chol\') возвращает вектор, содержащий обобщенные соб
ственные значения, используя разложение матрицы B по методу Холец
кого; если A – симметрическая квадратная матрица и B – симметрическая
положительно определенная квадратная матрица, то eig(A,B) по умолча
нию работает точно так же;
eig(A,B, \'qz\') не требует, чтобы матрицы были cимметрическими, и
возвращает вектор, содержащий обобщенные собственные значения, ис
пользуя QZ алгоритм; при явном указании этого флага QZ алгоритм ис
пользуется вместо алгоритма Холецкого даже для симметрической матри
цы и симметрической положительно определенной матрицы B, так как
может давать более стабильные значения, чем предыдущий метод. Для не
симметрических матриц в MATLAB 6 всегда используется QZ алгоритм и
параметр ‘chol’ или ‘qz’ игнорируется;
[V,D] = eig(A,B) возвращает диагональную матрицу обобщенных соб
ственных значений D и матрицу V, чьи столбцы являются соответствующи
ми собственными векторами, так чтобы A*V=B*V*D.
Пример:
>> B = [3 -12 -.6 2*eps;-2 48 -1 -eps;-eps/8 eps/2 -1 10;-.5
-.5 .3 1]
0.7420
0.0193
-0.6181
-0.2588
0
3.1873
0
0
-0.4842
-0.0388
-0.8575
-0.1694
0
0
0.9750
0
0.1956
0.0276
0.9780
-0.0676
0
0
0
-1.6909
• svd(X) возвращает вектор сингулярных чисел. Команда svd выполняет
сингулярное разложение матрицы X;
• [U,S,V] = svd(X) вычисляет диагональную матрицу S тех же размеров,
которые имеет матрица X с неотрицательными диагональными элементами
в порядке их убывания, и унитарные матрицы U и V, так что X=U*S*V\';
• [U,S,V] = svd(X,0) выполняет экономичное сингулярное разложение.