Участник:AleksLevin/Алгоритм Ланцоша вычисления собственных значений симметричной матрицы для точной арифметики (без переортогонализации): различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
Строка 11: Строка 11:
 
== Математическое описание алгоритма ==
 
== Математическое описание алгоритма ==
 
Алгоритм Ланцоша для вычисления собственных значений и собственных векторов симметричной матрицы <math style="vertical-align:0%;>A=A^T</math> в точной арифметике: [2, с.381]
 
Алгоритм Ланцоша для вычисления собственных значений и собственных векторов симметричной матрицы <math style="vertical-align:0%;>A=A^T</math> в точной арифметике: [2, с.381]
 +
  
 
:<math>
 
:<math>
 
\begin{align}
 
\begin{align}
 
q_1 & = \frac{b}{\|b\|_2}, \beta_0=0, q_0=0 \\
 
q_1 & = \frac{b}{\|b\|_2}, \beta_0=0, q_0=0 \\
for\ j\ & = 1 & to & k \\
+
&for\ j\ & = 1 & to & k \\
 
z & = Aq_j \\
 
z & = Aq_j \\
 
\alpha_{j}= q^{T}_{j}\,z \\
 
\alpha_{j}= q^{T}_{j}\,z \\

Версия 20:26, 10 ноября 2016

Основные авторы описания: Левин А.Д. (студент, кафедра вычислительных методов, 604 группа)

1 Свойства и структура алгоритмов

1.1 Общее описание алгоритма

Данный алгоритм появился в 1950 г. благодаря стараниям венгерского физика и математика Корнелия Ланцоша (венг. Lánczos Kornél). Сам Ланцош указывал, что его метод предназначен для отыскания нескольких собственных векторов симметричных матрицы, хотя к методу сразу было обращено внимание, как к способу приведения всей матрицы к трёхдиагональному виду. Двадцатью годами позже канадский математик Крис Пэж показал, что, несмотря на чувствительность к округлениям, алгоритм Ланцоша - эффективное средство вычисления некоторых внешних собственных чисел и соответствующих им собственных векторов [1, c.276].

Алгоритм Ланцоша для вычисления собственных значений симметричной матрицы [math]A[/math] соединяет в себе метод Ланцоша для построения последовательности подпространств Крылова и ортонормированных векторов Ланцоша и процедуру Рэлея-Ритца получения оптимальных приближений собственных значений и соответствующих векторов исходной матрицы [math]A[/math] [2, с.381].

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

Алгоритм Ланцоша для вычисления собственных значений и собственных векторов симметричной матрицы [math]A=A^T[/math] в точной арифметике: [2, с.381]


[math] \begin{align} q_1 & = \frac{b}{\|b\|_2}, \beta_0=0, q_0=0 \\ &for\ j\ & = 1 & to & k \\ z & = Aq_j \\ \alpha_{j}= q^{T}_{j}\,z \\ z & = z - \alpha_{j}\,q_j - \beta_{j-1}/,q_{j-1} \\ \end{align} [/math]

1.3 Вычислительное ядро алгоритма

1.4 Макроструктура алгоритма

1.5 Схема реализации последовательного алгоритма

1.6 Последовательная сложность алгоритма

1.7 Информационный граф

1.8 Ресурс параллелизма алгоритма

1.9 Входные и выходные данные алгоритма

1.10 Свойства алгоритма

2 Программная реализация алгоритма

2.1 Особенности реализации последовательного алгоритма

2.2 Локальность данных и вычислений

2.3 Возможные способы и особенности параллельной реализации алгоритма

2.4 Масштабируемость алгоритма и его реализации

2.5 Динамические характеристики и эффективность реализации алгоритма

2.6 Выводы для классов архитектур

2.7 Существующие реализации алгоритма

3 Литература

[1] Парлетт Б. Симметричная проблема собственных значений. Численные методы //М.: Мир. - 1983. - С. 276-294

[2] James W. Demmel Вычислительная линейная алгебра. Теория и приложения //Мир. - 2001. С. 381-391