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

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


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

Версия от 22:52, 21 октября 2017

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Литература