Re[3]: о алгоритмах диагонализации вещественных симметричных
От: Аноним  
Дата: 24.08.10 13:20
Оценка:
Здравствуйте, Drednout, Вы писали:

D>Здравствуйте, sanok, Вы писали:


S>>А можно постановку задачи уточнить?

S>>Посмотрите теорию здесь.
D>У меня есть некая система, различным состояниям которой ставится в соответствие симметричные квадратные матрицы. И нужны часть собственных значений и собственных векторов этих матриц. Дело еще в том, что матрицы большого размера (до 40000*40000), а у меня всего 8 гигов памяти. Вот и ищу быстрый и экономный алгоритм диагонализации.

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

x[n+1] = A x[n] / | x[n] |

Если нужен второй (очередной) собственный вектор, то на каждом шаге ветор x[n] нужно проектировать на пространство, перпендикулярное уже найденным векторам.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.