Участник:Сорокин Александр/Метод сопряженных градиентов (Решение СЛАУ)
Содержание
- 1 Свойства и структура алгоритма
- 1.1 Общее описание алгоритма
- 1.2 Математическое описание алгоритма
- 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 Свойства и структура алгоритма
1.1 Общее описание алгоритма
Метод сопряженных градиентов представляет собой итерационный метод для численного решения системы уравнений с симметричной и положительно определенной матрицей, является итерационным методом Крыловского типа. Основная идея метода заключается в том, чтобы минимизировать на подпространствах Крылова А-норму ошибки.
1.2 Математическое описание алгоритма
Рассмотрим систему уравнений [math] Ax = b [/math], где [math] A^* = A \gt 0 [/math].
Выберем произвольное начальное приближение [math] x^{(0)} [/math] и перейдем к редуцированной системе [math] Au = r^{(0)} [/math], где [math] r^{(0)} = b - Ax^{(0)} [/math], [math]x = x^{(0)} + u [/math].
Основная идея метода состоит в том, чтобы минимизировать на подпространствах Крылова [math] K_i(r^{(0)}, A) [/math] A-норму ошибки [math] e = x - z [/math], где [math] z [/math] — точное решение системы. Таким образом, [math] x^{(i)} = x^{(0)} + y^{(i)} [/math], где [math] y^{(i)} = \underset{y\in K_i}{\operatorname{argmin}} || x^{(i)} - z ||_A = \underset{y\in K_i}{\operatorname{argmin}} || x^{(0)} + y - z ||_A [/math].
По теореме Пифагора: [math] (x^{(i)} - z, y)_A = 0 [/math] для любого [math] y \in K_i \Leftrightarrow r^{(i)} = b - Ax^{(i)} \perp K_i [/math].
Пусть в [math] K_i [/math] построен А-ортогональный базис [math] p_1, p_2, ... . p_i [/math]. Тогда очевидно коэффициенты [math] \alpha_j [/math] разложения [math] y^{(i)} = \alpha_1 p_1 + \alpha_2 p_2 + ... + \alpha_i p_i [/math] не зависят от i.
Так [math] x^{(i)} = x^{(i - 1)} + \alpha_i p_i \Rightarrow r^{(i)} = r^{(i - 1)} - \alpha_i A p_i \Rightarrow \alpha_i = \frac{(r^{(i-1)}, p_i)}{(Ap_i, p_i)} [/math] так как [math] r^{(i) \perp K_i [/math].