Участник:Sagak/Алгоритм Ланцоша в арифметике с плавающей точкой

Материал из Алговики
Перейти к навигации Перейти к поиску

Алгоритм Ланцоша

Алгоритм Ланцоша – итерационный метод , созданный Корнелиусом Ланцошем, для нахождения собственных значений и собственных веторов симметричной матрицы. Суть алгоритма в том, что он сводит частичную проблему собственных значений симметричной вещественной матрицы к полной проблеме собственных значений для симметричной трехдиагональной матрицы меньшей размерности. Алгоритм применяется к матрицам большой размерности, к которым не применимы никакие прямые методы. Есть три вида алгоритма: Алгоритм Ланцоша с точной арифметикой, Алгоритм Ланцоша в арифметике с плавающей точкой и Алгоритм Ланцоша с выборочной ортогонализацией. Алгоритм Ланцоша в арифметике с плавающей точкой учитывает округления, возникающие при вычислениях.

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


Математическое описание алгоритма

Исходные данные: положительно определённая симметрическая матрица [math]\displaystyle{ A }[/math], вектор [math]\displaystyle{ b }[/math],количество итераций [math]\displaystyle{ k }[/math].

Вычисляемые данные: трехдиагональная матрица [math]\displaystyle{ T_k(t_i_j) }[/math] размерности [math]\displaystyle{ k }[/math].