Участник:Сорокин Александр/Метод сопряженных градиентов (Решение СЛАУ): различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
Строка 9: Строка 9:
 
По теореме Пифагора: <math> (x^{(i)} - z, y)_A = 0 </math> для любого <math> y \in K_i \Leftrightarrow r^{(i)} = b - Ax^{(i)} \perp K_i </math>. <br>
 
По теореме Пифагора: <math> (x^{(i)} - z, y)_A = 0 </math> для любого <math> y \in K_i \Leftrightarrow r^{(i)} = b - Ax^{(i)} \perp K_i </math>. <br>
 
Пусть в <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. <br>
 
Пусть в <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. <br>
Так <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>.
+
Так <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>.
  
 
=== Вычислительное ядро алгоритма ===
 
=== Вычислительное ядро алгоритма ===

Версия 02:45, 22 октября 2017

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

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

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

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

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

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 Литература