Степенной метод

Степенной метод, или метод степенных итераций, — итерационный алгоритм поиска собственного значения с максимальной абсолютной величиной и одного из соответствующих собственных векторов для произвольной матрицы.

Алгоритм прост и сходится со скоростью геометрической прогрессии, если все максимальные по модулю собственные значения совпадают, в противном случае сходимости нет. При близких по модулю собственных значениях сходимость может оказаться медленной. В силу того, что алгоритм сводится к последовательному умножению заданной матрицы на вектор, при правильной реализации он хорошо работает для больших разреженных матриц.

Алгоритм предложен в 1929 году Рихардом фон Мизесом и Хильдой Гейрингер[1].

Алгоритм

В начале алгоритма генерируется случайный вектор [2]. Далее проводятся последовательные вычисления по итеративной формуле:

[3]

Если исходный вектор не ортогонален собственному подпространству с наибольшим по модулю собственным значением, то расстояние от элементов данной последовательности до такого подпространства стремится к нулю[4]. Последовательность векторов не всегда сходится, поскольку вектор на каждом шаге может менять знак или в комплексном случае вращаться, но это не мешает выбрать один из векторов в качестве собственного, когда получено достаточно точное собственное значение.

Последовательность

при указанном выше условии сходится к максимальному по модулю собственному значению. Но следует помнить, что не у всех действительных матриц есть действительные собственные значения.

Для нормальных операторов

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

Пусть  — нормированный собственный вектор с максимальным по модулю собственным значением матрицы нормального оператора. Тогда матрица

сохраняет все собственные векторы матрицы , кроме вектора , и позволяет искать степенным методом следующий собственный вектор с максимальным по модулю собственным значением.

Доказательство сходимости

Упорядочим собственные значения по невозрастанию абсолютной величины и допустим, что [5]. Тогда начальный вектор можно представить как

,

где  — собственные векторы, вектор обнуляется при первом умножении на матрицу, а по предположению.

Рассмотрим результат умножений матрицы на начальный вектор:

.

Поделив левую и правую часть на , получим

Приложения

Метод применяется в первую очередь для разреженных матриц. Например, Гугл использует его для расчёта рангов страниц в Интернете[6], а Twitter использует его для рекомендаций «за кем следовать»[7].

Примечания

  1. Richard von Mises and H. Pollaczek-Geiringer, Praktische Verfahren der Gleichungsauflösung, ZAMM — Zeitschrift für Angewandte Mathematik und Mechanik 9, 152—164 (1929).
  2. В некоторых случаях есть возможность использовать уже имеющееся приближение доминирующего собственного вектора.
  3. Деление (нормировка) в этой формуле нужно, чтобы исключить обнуление или переполнение координат вектора и при ориентировочно известных собственных значениях его не обязательно делать на каждом шаге.
  4. В случае, когда наибольшее по модулю собственное значение — положительное вещественное число, данная последовательность векторов также сходится к некоторому собственному вектору.
  5. Допущение сделано для сокращения выкладок. В случае нескольких совпадающих собственных значений максимальных по модулю доказательство аналогично.
  6. Ipsen, Ilse, and Rebecca M. Wills. 7th IMACS International Symposium on Iterative Methods in Scientific Computing (5–8 May 2005).
  7. Pankaj Gupta, Ashish Goel, Jimmy Lin, Aneesh Sharma, Dong Wang, and Reza Bosagh Zadeh WTF: The who-to-follow system at Twitter, Proceedings of the 22nd international conference on World Wide Web
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.