Сингулярные значения

Сингулярное значение и соответствующие сингулярные векторы прямоугольной матрицы А являются, соответственно, скаляром σ и пара векторов u и v, которые удовлетворяют

Av =σuAHu =σv,

где AH является Эрмитовым, транспонируют A. Сингулярные векторы u и v обычно масштабируются, чтобы иметь норму 1. Кроме того, если вы и v - сингулярные векторы A, затем-u, и-v являются сингулярными векторами A также.

Сингулярные значения σ являются всегда действительными и неотрицательными, даже если A является комплексным. С сингулярными значениями на диагонали диагональной матрицы Σ и соответствующие сингулярные векторы, формирующие столбцы двух ортогональных матриц U и V, вы получаете уравнения

AV=UΣAHU=VΣ.

С тех пор U и V унитарные матрицы, умножение первого уравнения VH на праве приводит к уравнению сингулярного разложения

A=UΣVH.

Полное сингулярное разложение матрицы m на n включает m-by-m U, m на n Σ, и n на n V. Другими словами, U и V и квадрат, и Σ одного размера как A. Если A имеет еще много строк, чем столбцы (m > n), то получившийся m-by-m матрица U является большим. Однако большинство столбцов в Вас умножается на нули в Σ. В этой ситуации разложение размера экономики экономит и время и устройство хранения данных путем создания m на n U, n на n Σ и тех же V:

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

Если A является квадратным, симметричным, и положительный определенный, то его собственное значение и сингулярные разложения являются тем же самым. Но, когда A отбывает из симметрии и положительной определенности, различия между этими двумя увеличениями разложений. В частности, сингулярное разложение действительной матрицы всегда действительно, но разложение собственного значения действительной, несимметричной матричной силы быть комплексным.

Для матрицы в качестве примера

A =
     9     4
     6     8
     2     7

полное сингулярное разложение

[U,S,V] = svd(A)

U =

    0.6105   -0.7174    0.3355
    0.6646    0.2336   -0.7098
    0.4308    0.6563    0.6194


S =

   14.9359         0
         0    5.1883
         0         0


V =

    0.6925   -0.7214
    0.7214    0.6925

Можно проверить, что U*S*V' равен A к в ошибке округления. Для этой небольшой проблемы разложение размера экономики незначительно меньше.

[U,S,V] = svd(A,0)

U =

    0.6105   -0.7174
    0.6646    0.2336
    0.4308    0.6563


S =

   14.9359         0
         0    5.1883


V =

    0.6925   -0.7214
    0.7214    0.6925

Снова, U*S*V' равен A к в ошибке округления.

Если матричный A является большим и разреженным, то использование svd, чтобы вычислить все сингулярные значения и векторы не всегда практично. Например, если необходимо знать, что всего несколько самых больших сингулярных значений, затем вычисляя все сингулярные значения 5000 5000 разреженной матрицы являются большой дополнительной работой. В случаях, где только подмножество сингулярных значений и векторов требуется, функция svds предпочтена по svd.

Для случайной разреженной матрицы 1000 на 1000 с плотностью приблизительно 30%,

n = 1000;
A = sprand(n,n,0.3);

шесть самых больших сингулярных значений

S = svds(A)

S =

  130.2184
   16.4358
   16.4119
   16.3688
   16.3242
   16.2838

Кроме того, шесть самых маленьких сингулярных значений

S = svds(A,6,'smallest')

S =

    0.0740
    0.0574
    0.0388
    0.0282
    0.0131
    0.0066

Для меньших матриц, которые могут уместиться в памяти как полная матрица, full(A), с помощью svd(full(A)) может все еще быть более быстрым, чем svds. Однако для действительно большого и разреженных матриц, с помощью svds становится необходимым.

Смотрите также

| |

Похожие темы

Была ли эта тема полезной?