Иллюстрированный самоучитель по 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 ' ;




      Начало  Назад  Вперед