Участник:Alexander34396/Обобщенный метод минимальных невязок: различия между версиями
Строка 69: | Строка 69: | ||
'''k-ая итерация:''' | '''k-ая итерация:''' | ||
− | # <math> h_{ik} | + | # <math> h_{ik} = (Av_k, v_i), \quad i=1,\ldots,k </math>; |
− | # <math> \hat{v}_{k+1} | + | # <math> \hat{v}_{k+1} = Av_k - \sum_{i=1}^k h_{ik}v_{i} </math>; |
# <math> h_{k+1k} = \|\hat{v}_{k+1}\|_2 </math>; | # <math> h_{k+1k} = \|\hat{v}_{k+1}\|_2 </math>; | ||
# <math> v_{k+1} = \frac{\hat{v}_{k+1}}{h_{k+1k}} </math>; | # <math> v_{k+1} = \frac{\hat{v}_{k+1}}{h_{k+1k}} </math>; |
Версия 21:05, 16 октября 2016
Эта работа ждет рассмотрения преподавателем Дата последней правки страницы: 16.10.2016 Авторы этой статьи считают, что задание выполнено. |
Содержание
1 Свойства и структура алгоритма
1.1 Общее описание алгоритма
Обобщённый метод минимальных невязок (англ. Generalized minimal residual method, GMRES) - итерационный метод численного решения системы линейных алгебраических уравнений с невырожденной матрицей. Метод основан на минимизации квадратичного функционала невязки на подпространствах Крылова. Разработан Юсефом Саадом и Мартином Шульцем[1] в 1986 году как обобщение метода MINRES[2] на случай систем с несимметричными матрицами.
1.2 Математическое описание алгоритма
Исходные данные:
- система линейных алгебраических уравнений вида [math] Ax = b [/math], где [math] A [/math] — невырожденная матрица размера [math]n[/math]-на-[math] n [/math];
- [math] x_0 [/math] - некоторое начальное приближение.
Вычисляемые данные:
- [math] x_k [/math] - приближённое решение исходной системы.
Подпространство Крылова размерности [math] k, k \leq n [/math] для решения исходной системы:
- [math] K_k = K_k(A,b) = \operatorname{span} \, \{ b, Ab, A^2b, \ldots, A^{k-1}b \}. \, [/math]
Метод GMRES приближает точное решение исходной системы [math] Ax = b [/math] вектором [math] x_k \in K_k [/math], минимизирующим Евклидову норму невязки [math]r_k = Ax_k-b[/math].
Для решения исходной системы GMRES, используя [math] l_2 [/math]-ортонормированный базис пространства [math] K_k [/math], выполняет поиск приближённого решения [math] x_k [/math] в виде:
- [math] x_k = x_0 + z_k [/math],
где [math] x_0 [/math] - некоторое начальное приближение, [math] z_k \in K_k [/math] - поправка решения.
Для построения ортонормированного базиса [math] K_k [/math] метод использует процесс Арнольди. При введении для базиса [math] K_k [/math] матричного обозначения [math] V_k [/math] можно записать:
- [math] z_k = V_ky_k [/math],
где [math] y_k \in \mathbb{R}^k [/math] - вектор коэффициентов.
В общем виде k-aя итерация алгоритма GMRES может быть записан следующим образом:
- найти ортонормированный базис [math] V_k [/math] подпространства [math] K_k [/math] с помощью ортогонализации Арнольди;
- найти [math] y_k [/math], минимизирующий [math] \|r_k\|_2 [/math];
- вычислить [math] x_k = x_0 + V_ky_k [/math];
- вычислить [math] r_k [/math] и остановиться,если требуемая точность была достигнута, иначе повторить для k + 1.
1.3 Вычислительное ядро алгоритма
Вычислительное ядро последовательной версии метода GMRES состоит из двух частей:
- Вычисление ортонормированного базиса [math] K_k [/math];
- Формирование приближенного решения [math] x_k [/math].
На каждой итерации для вычисления ортонормированного базиса [math] K_k [/math] метод использует процесс Арнольди:
- [math] v_{k+1} = Av_k - \sum_{i=1}^k h_{ik}v_{k} [/math], где [math] h_{ik} := (Av_k, v_i) [/math].
Этот процесс требует [math] nk(k + 1) + kNZ [/math] мультипликативных операций, где NZ - количество ненулевых элементов матрицы [math] A [/math].
Для нахождения приближённого решения метод использует формулу:
- [math] x_k = x_0 + V_ky_k [/math].
Вычисление этой формулы требует [math]nk[/math] мультипликативных операций.
1.4 Макроструктура алгоритма
В алгоритме можно выделить следующие макрооперации:
- Умножение матрицы на вектор;
- Вычисление скалярного произведения векторов;
- Вычисление Евклидовой нормы вектора;
- Умножение вектора на скаляр;
- Деление вектора на скаляр;
- Задача минимизации функционала невязки.
1.5 Схема реализации последовательного алгоритма
Для решения исходной системы методом GMRES можно воспользоваться следующим алгоритмом:
Подготовка перед итерационным процессом:
- Выбрать начальное приближение [math] x_0 [/math];
- Посчитать невязку [math] r_0 = b - Ax_0 [/math];
- Вычислить [math] v_1 = \frac{r_0}{\|r_0\|_2} [/math].
k-ая итерация:
- [math] h_{ik} = (Av_k, v_i), \quad i=1,\ldots,k [/math];
- [math] \hat{v}_{k+1} = Av_k - \sum_{i=1}^k h_{ik}v_{i} [/math];
- [math] h_{k+1k} = \|\hat{v}_{k+1}\|_2 [/math];
- [math] v_{k+1} = \frac{\hat{v}_{k+1}}{h_{k+1k}} [/math];
- [math] x_k = x_0 + V_ky_k [/math], где [math]y_k[/math] минимизирует [math]\|r_0 - AV_ky_k\|_2[/math].
1.6 Последовательная сложность алгоритма
Если пренебречь сложностью вычисления [math] y_k [/math], то общую сложность алгоритма GMRES можно разделить на две части:
- Сложность вычисления ортонормированного базиса [math] K_k [/math].
- Сложность вычисления приближённого решения [math] x_k [/math].
2 Литература
<references \>
- ↑ Y.Saad, M.H. Schultz, GMRES: A generalized minimal residual algorithm for solving nonsymmetric linear systems, SIAM J. Scientific and Stat. Comp. 7: 856-869 (1986)
- ↑ C. C. Paige and M. A. Saunders. Solution of sparse indefinite systems of linear equations, SIAM J. Numerical Analysis 12, 617-629 (1975)