Иллюстрированный самоучитель по Matlab



Вычисление собственных значений и сингулярных чисел - часть 3


eig(A,B, 'qz') — не требует, чтобы матрицы были симметрическими и возвращает вектор, содержащий обобщенные собственные значения, используя QZ-алгоритм; при явном указании этого флага QZ-алгоритм используется вместо алгоритма Холецкого даже для симметрической матрицы и симметрической положительно определенной матрицы В, так как может давать более стабильные значения, чем предыдущий метод. Для несимметрических матриц в MATLAB 6 всегда используется QZ-алгоритм и параметр 'chol' или 'qz' игнорируется;

[V.D] = eig(A.B) — возвращает диагональную матрицу обобщенных собственных значений D и матрицу V, чьи столбцы являются соответствующими собственными векторами, так чтобы A*V=B*V*D. Пример:

» В = [3 -12 -.6 2*eps:-2 48 -1 -eps;-eps/8 eps/2 -1 10;-.5 -.5 .3 1] 

В =

3.0000 -12.0000 -0.60000.0000

-2.0000 48.0000-1.0000-0.0000

-0.0000 0.0000 -1.0000 10.0000

-0.5000 -0.5000 0.3000 1.0000 

» [G.H]=eig(B) 

G =

-0.2548     0.7420     -0.4842     0.1956     

0.9670    

0.0193     -0.0388     0.0276

-0.0015     -0.6181     -0.8575     0.9780

-0.0075     -0.2588     -0.1694     -0.0676 

H =

48.5287     0     0     0 

0     3.1873     0     0 

0     0     0.9750     0 

0     0     0     -1.6909

svd(X) — возвращает вектор сингулярных чисел. Команда svd выполняет сингулярное разложение матрицы X;

[U.S, V] = svd(X) — вычисляет диагональную матрицу S тех же размеров, которые имеет матрица X, с неотрицательными диагональными элементами в порядке их убывания, и унитарные матрицы U и V, так что X=U*S*V ' ;




Содержание  Назад  Вперед