Участник:Alexander34396/Обобщенный метод минимальных невязок

Материал из Алговики
Версия от 13:24, 15 октября 2016; Alexander34396 (обсуждение | вклад) (Новая страница: «== Свойства и структура алгоритма == === Общее описание алгоритма === '''Обобщённый метод мин…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

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

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

Обобщённый метод минимальных невязок (англ. Generalized minimal residual method, GMRES) - итерационный метод численного решения системы линейных алгебраических уравнений с невырожденной матрицей. Метод основан на минимизации квадратичного функционала невязки на подпространствах Крылова. Разработан Юсефом Саадом и Мартином Шульцем в 1986 году как обобщение метода MINRES на случай систем с несимметричными матрицами.

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

Исходные данные:

  • система линейных алгебраических уравнений вида [math]\displaystyle{ Ax = b }[/math], где [math]\displaystyle{ A }[/math] — невырожденная матрица размера [math]\displaystyle{ m }[/math]-на-[math]\displaystyle{ m }[/math];
  • подпространство Крылова размерности [math]\displaystyle{ n }[/math], порождённое вектором [math]\displaystyle{ b }[/math] и матрицей [math]\displaystyle{ A }[/math]:
[math]\displaystyle{ K_n = K_n(A,b) = \operatorname{span} \, \{ b, Ab, A^2b, \ldots, A^{n-1}b \}. \, }[/math]

Вычисляемые данные:

  • [math]\displaystyle{ x_n \in K_n }[/math] - приближённое решение исходной системы.

Метод GMRES приближает точное решение исходной системы [math]\displaystyle{ Ax = b }[/math] вектором [math]\displaystyle{ x_n \in K_n }[/math], минимизирующим Евклидову норму невязки [math]\displaystyle{ r_n= Ax_n-b }[/math].

Для решения исходной системы GMRES, используя [math]\displaystyle{ l_2 }[/math]-ортонормальный базис пространства [math]\displaystyle{ K_n }[/math], выполняет поиск приближённого решения [math]\displaystyle{ x_n }[/math] в виде:

[math]\displaystyle{ x_n = x_0 + z_n }[/math],

где [math]\displaystyle{ x_0 }[/math] - некоторое начальное приближение, [math]\displaystyle{ z_n \in K_n }[/math] - поправка решения.

Для построения ортонормального базиса [math]\displaystyle{ K_n }[/math] метод использует ортогонализацию Арнольди. При введении для базиса [math]\displaystyle{ K_n }[/math] матричного обозначения [math]\displaystyle{ V_n }[/math] можно записать:

[math]\displaystyle{ z_n = V_ny_n }[/math],

где [math]\displaystyle{ y_n \in \mathbb{R}^n }[/math] - вектор коэффициентов.

В общем виде алгоритм метода GMRES может быть записан следующим образом:

  1. найти ортонормальный базис [math]\displaystyle{ V_n }[/math] подпространства [math]\displaystyle{ K_n }[/math] с помощью ортогонализации Арнольди;
  2. найти [math]\displaystyle{ y_n }[/math], минимизирующий [math]\displaystyle{ \|r_n\|_2 }[/math];
  3. посчитать [math]\displaystyle{ x_n = x_0 + V_ny_n }[/math];
  4. повторить, если требуемая точность не была достигнута.

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

Для решения исходной системы методом GMRES можно воспользоваться следующим алгоритмом:

Подготовка перед итерационным процессом
  1. Выбрать начальное приближение [math]\displaystyle{ x_0 }[/math];
  2. Посчитать невязку [math]\displaystyle{ r_0 = b - Ax_0 }[/math];
  3. Вычислить [math]\displaystyle{ v_1 = \frac{r_0}{\|r_0\|_2} }[/math].
[math]\displaystyle{ n }[/math]-я итерация метода

Построение ортонормального базиса [math]\displaystyle{ K_n }[/math]:

  1. [math]\displaystyle{ h_{ij} := (Av_j, v_i), \quad i=1,\ldots,n }[/math];
  2. [math]\displaystyle{ \hat{v}_{j+1} := Av_j - \sum_{i=1}^j h_{ij}v_{i} }[/math];
  3. [math]\displaystyle{ h_{j+1j} = \|\hat{v}_{j+1}\|_2 }[/math];
  4. [math]\displaystyle{ v_{j+1} = \frac{\hat{v}_{j+1}}{h_{j+1j}} }[/math].

Вычисление приближённого решения [math]\displaystyle{ x_n }[/math]:

5[math]\displaystyle{ x_n = x_0 + V_ny_n }[/math].