Обобщенный метод минимальной невязки
В математике обобщенный метод минимальной невязки (GMRES) — метод численного итерационный решения неопределенной несимметричной системы линейных уравнений . Метод аппроксимирует решение вектором в подпространстве Крылова с минимальной невязкой . Итерация Арнольди используется для поиска этого вектора.
Метод GMRES был разработан Юсефом Саадом и Мартином Х. Шульцем в 1986 году. [1] Это обобщение и улучшение метода MINRES , предложенного Пейдж и Сондерсом в 1975 году. [2] [3] Метод MINRES требует, чтобы матрица была симметричной, но имеет то преимущество, что требует обработки только трех векторов. GMRES — это частный случай метода DIIS, разработанного Питером Пулеем в 1980 году. DIIS применим к нелинейным системам.
Метод
[ редактировать ]Обозначим евклидову норму любого вектора v через . Обозначим (квадратную) систему линейных уравнений, которую необходимо решить, через матрица A Предполагается, что обратима размером m - m . Кроме того, предполагается, что b нормализовано, т. е. что .
n -е для подпространство Крылова этой задачи есть где это первоначальная ошибка с учетом первоначального предположения . Четко если .
GMRES приближает точное решение по вектору что минимизирует евклидову норму невязки .
Векторы может быть близок к линейно зависимому , поэтому вместо этого базиса итерация Арнольди для поиска ортонормированных векторов используется которые составляют основу для . В частности, .
Следовательно, вектор можно записать как с , где - матрица m - n, образованная . Другими словами, нахождение n -го приближения решения (т.е. ) сводится к нахождению вектора , который определяется путем минимизации остатка, как описано ниже .
Процесс Арнольди также создает , ( )-к- верхняя матрица Хессенберга, удовлетворяющая условию равенство, которое используется для упрощения расчета (см. § Решение задачи наименьших квадратов ). Обратите внимание, что для симметричных матриц фактически достигается симметричная трехдиагональная матрица, что приводит к использованию метода MINRES .
Поскольку столбцы ортонормированы, мы имеем где - первый вектор в стандартном базисе , и являющийся первым пробным вектором невязки (обычно ). Следовательно, можно найти, минимизируя евклидову норму невязки Это линейная задача наименьших квадратов размера n .
Это дает метод GMRES. На -я итерация:
- вычислить по методу Арнольди;
- найди что сводит к минимуму ;
- вычислить ;
- повторите, если остаток еще недостаточно мал.
На каждой итерации происходит матрично-векторное произведение необходимо вычислить. Это стоит около операции с плавающей запятой для общих плотных матриц размера , но стоимость может снизиться до для разреженных матриц . В дополнение к произведению матрицы-вектора, Операции с плавающей запятой должны вычисляться на n -й итерации.
Конвергенция
[ редактировать ]- я n итерация минимизирует невязку в подпространстве Крылова . Поскольку каждое подпространство содержится в следующем подпространстве, остаток не увеличивается. После m итераций, где m — размер матрицы A , пространство Крылова K m становится всем R м и, следовательно, метод GMRES приводит к точному решению. Однако идея состоит в том, что после небольшого количества итераций (относительно m ) вектор x n уже является хорошим приближением к точное решение.
Этого не происходит в целом. Действительно, теорема Гринбаума, Птака и Стракоша утверждает, что для каждой невозрастающей последовательности a 1 , ..., a m −1 , a m = 0 можно найти матрицу A такую, что ‖ r n ‖ = a n для все n , где r n — остаток, определенный выше. В частности, можно найти матрицу, для которой невязка остается постоянной в течение m - 1 итераций и падает до нуля только на последней итерации.
Однако на практике GMRES часто работает хорошо. Это можно доказать в конкретных ситуациях. Если симметричная часть A , то есть , положительно определена , тогда где и обозначаем наименьшее и наибольшее собственное значение матрицы , соответственно. [4]
Если A симметричен имеем и положительно определен, то мы даже где обозначает число обусловленности A в евклидовой норме.
В общем случае, когда A не является положительно определенным, имеем где P n обозначает множество полиномов степени не выше n с p (0) = 1, V матрица, появляющаяся при разложении A спектральном , а σ ( A ) спектр A. — — Грубо говоря, это говорит о том, что быстрая сходимость происходит, когда собственные значения A сгруппированы вдали от начала координат и A не слишком далека от нормальности . [5]
Все эти неравенства ограничивают только остатки, а не фактическую ошибку, то есть расстояние между текущей итерацией x n и точным решением.
Расширения метода
[ редактировать ]Как и другие итеративные методы, GMRES обычно комбинируется с методом предварительной обработки , чтобы ускорить сходимость.
Стоимость итераций растет как O( n 2 ), где n — номер итерации. Поэтому метод иногда перезапускается после числа, скажем , k итераций, с x k в качестве начального предположения. Полученный метод называется GMRES( k ) или Restarted GMRES. Для неположительно определенных матриц этот метод может страдать от застоя в сходимости, поскольку перезапущенное подпространство часто оказывается близко к предыдущему подпространству.
Недостатки GMRES и перезапущенного GMRES устраняются путем переработки подпространства Крылова в методах типа GCRO, таких как GCROT и GCRODR. [6] Переработка подпространств Крылова в GMRES также может ускорить сходимость, когда необходимо решить последовательности линейных систем. [7]
Сравнение с другими решателями
[ редактировать ]Итерация Арнольди сводится к итерации Ланцоша для симметричных матриц. Соответствующим методом подпространств Крылова является метод минимальных невязок (MinRes) Пейджа и Сондерса. В отличие от несимметричного случая, метод MinRes задается трехчленным рекуррентным соотношением . Можно показать, что не существует метода подпространств Крылова для общих матриц, который задается коротким рекуррентным соотношением и при этом минимизирует нормы остатков, как это делает GMRES.
Другой класс методов основан на несимметричной итерации Ланцоша , в частности метод BiCG . В них используется трехчленное рекуррентное соотношение, но они не достигают минимального остатка, и, следовательно, для этих методов невязка не убывает монотонно. Конвергенция даже не гарантирована.
Третий класс формируется такими методами, как CGS и BiCGSTAB . Они также работают с трехчленным рекуррентным соотношением (следовательно, без оптимальности) и могут даже завершиться преждевременно, не достигнув сходимости. Идея этих методов заключается в правильном выборе порождающих полиномов итерационной последовательности.
Ни один из этих трех классов не является лучшим для всех матриц; всегда есть примеры, в которых один класс превосходит другой. Поэтому на практике пробуют несколько решателей, чтобы определить, какой из них лучше всего подходит для конкретной задачи.
Решение задачи наименьших квадратов
[ редактировать ]Одна часть метода GMRES заключается в поиске вектора что сводит к минимуму Обратите внимание, что является ( n + 1) -n матрицей, следовательно, она дает сверхограниченную линейную систему из n +1 уравнений для n неизвестных.
Минимум можно вычислить с помощью QR-разложения : найдите ( n + 1) на ( n + 1) ортогональную матрицу Ω n и ( n + 1) на n . верхнюю треугольную матрицу такой, что Треугольная матрица имеет на одну строку больше, чем столбцов, поэтому ее нижняя строка состоит из нуля. Следовательно, его можно разложить как где представляет собой треугольную матрицу размера n x n (таким образом, квадратную).
QR-разложение можно дешево обновлять от одной итерации к другой, поскольку матрицы Хессенберга отличаются только строкой нулей и столбцом: где час n+1 = ( час 1, n +1 , ..., час n +1, n +1 ) Т . Это означает, что предварительное умножение матрицы Хессенберга на Ω n , дополненную нулями и строкой с мультипликативной единицей, дает почти треугольную матрицу: Это было бы треугольным, если σ равно нулю. Чтобы исправить это, необходимо вращение Гивенса. где С помощью этого вращения Гивенса мы формируем Действительно, представляет собой треугольную матрицу с .
Учитывая QR-разложение, проблему минимизации легко решить, заметив, что Обозначая вектор к где g n ∈ R н и γn ∈ R , это Вектор y , который минимизирует это выражение, определяется выражением И снова векторы легко обновляются. [8]
Пример кода
[ редактировать ]Обычный GMRES (MATLAB/GNU Octave)
[ редактировать ]function [x, e] = gmres(A, b, x, max_iterations, threshold)
n = length(A);
m = max_iterations;
% use x as the initial vector
r = b - A * x;
b_norm = norm(b);
error = norm(r) / b_norm;
% initialize the 1D vectors
sn = zeros(m, 1);
cs = zeros(m, 1);
%e1 = zeros(n, 1);
e1 = zeros(m+1, 1);
e1(1) = 1;
e = [error];
r_norm = norm(r);
Q(:,1) = r / r_norm;
% Note: this is not the beta scalar in section "The method" above but
% the beta scalar multiplied by e1
beta = r_norm * e1;
for k = 1:m
% run arnoldi
[H(1:k+1, k), Q(:, k+1)] = arnoldi(A, Q, k);
% eliminate the last element in H ith row and update the rotation matrix
[H(1:k+1, k), cs(k), sn(k)] = apply_givens_rotation(H(1:k+1,k), cs, sn, k);
% update the residual vector
beta(k + 1) = -sn(k) * beta(k);
beta(k) = cs(k) * beta(k);
error = abs(beta(k + 1)) / b_norm;
% save the error
e = [e; error];
if (error <= threshold)
break;
end
end
% if threshold is not reached, k = m at this point (and not m+1)
% calculate the result
y = H(1:k, 1:k) \ beta(1:k);
x = x + Q(:, 1:k) * y;
end
%----------------------------------------------------%
% Arnoldi Function %
%----------------------------------------------------%
function [h, q] = arnoldi(A, Q, k)
q = A*Q(:,k); % Krylov Vector
for i = 1:k % Modified Gram-Schmidt, keeping the Hessenberg matrix
h(i) = q' * Q(:, i);
q = q - h(i) * Q(:, i);
end
h(k + 1) = norm(q);
q = q / h(k + 1);
end
%---------------------------------------------------------------------%
% Applying Givens Rotation to H col %
%---------------------------------------------------------------------%
function [h, cs_k, sn_k] = apply_givens_rotation(h, cs, sn, k)
% apply for ith column
for i = 1:k-1
temp = cs(i) * h(i) + sn(i) * h(i + 1);
h(i+1) = -sn(i) * h(i) + cs(i) * h(i + 1);
h(i) = temp;
end
% update the next sin cos values for rotation
[cs_k, sn_k] = givens_rotation(h(k), h(k + 1));
% eliminate H(i + 1, i)
h(k) = cs_k * h(k) + sn_k * h(k + 1);
h(k + 1) = 0.0;
end
%%----Calculate the Givens rotation matrix----%%
function [cs, sn] = givens_rotation(v1, v2)
% if (v1 == 0)
% cs = 0;
% sn = 1;
% else
t = sqrt(v1^2 + v2^2);
% cs = abs(v1) / t;
% sn = cs * v2 / v1;
cs = v1 / t; % see http://www.netlib.org/eispack/comqr.f
sn = v2 / t;
% end
end
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Саад, Юсеф; Шульц, Мартин Х. (1986). «GMRES: обобщенный алгоритм минимальной невязки для решения несимметричных линейных систем» . Журнал SIAM по научным и статистическим вычислениям . 7 (3): 856–869. дои : 10.1137/0907058 . ISSN 0196-5204 .
- ^ Пейдж и Сондерс, «Решение разреженных неопределенных систем линейных уравнений», SIAM J. Numer. Анал., т. 12, стр. 617 (1975) https://doi.org/10.1137/0712047
- ^ Нифа, Науфал (2017). Эффективные решатели для ограниченной оптимизации в идентификации параметров ( задачах Диссертация) (на французском языке).
- ^ Эйзенстат, Элман и Шульц 1983 , Thm 3.3. Обратите внимание: все результаты для GCR справедливы и для GMRES, ср. Саад и Шульц, 1986 г.
- ^ Трефетен, Ллойд Н.; Бау, Дэвид, III. (1997). Численная линейная алгебра . Филадельфия: Общество промышленной и прикладной математики. Теорема 35.2. ISBN 978-0-89871-361-9 .
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Амриткар, Амит; де Стерлер, Эрик; Свиридович, Катажина; Тафти, Данеш; Ахуджа, Капил (2015). «Переработка подпространств Крылова для приложений CFD и новый гибридный решатель переработки». Журнал вычислительной физики . 303 : 222. arXiv : 1501.03358 . Бибкод : 2015JCoPh.303..222A . дои : 10.1016/j.jcp.2015.09.040 . S2CID 2933274 .
- ^ Галлия, Андре (2014). Переработка методов подпространств Крылова для последовательностей линейных систем (к.т.н.). ТУ Берлин. doi : 10.14279/depositonce-4147 .
- ^ Стер, Йозеф; Булирш, Роланд (2002). Введение в численный анализ . Тексты по прикладной математике (3-е изд.). Нью-Йорк: Спрингер. §8.7.2. ISBN 978-0-387-95452-3 .
- Мастер Андреас; Фёмель, Кристоф (2005). Численные числа систем линейных уравнений . Висбаден: Просмотрег. ISBN 978-3-528-13135-7 .
- Саад, Ю. (2003). Итерационные методы для разреженных линейных систем (2-е изд.). Филадельфия: СИАМ. ISBN 978-0-89871-534-7 .
- Эйзенштат, Стэнли К.; Элман, Ховард К.; Шульц, Мартин Х. (1983). «Вариационные итерационные методы для несимметричных систем линейных уравнений». SIAM Journal по численному анализу . 20 (2): 345–357. дои : 10.1137/0720023 . ISSN 0036-1429 .
- Донгарра и др., Шаблоны для решения линейных систем: строительные блоки для итеративных методов , 2-е издание, SIAM, Филадельфия, 1994 г.
- Иманкулов Тимур; Лебедев Данил; Маткерим, Базаргул; Дарибаев, Беимбет; Касымбек, Нурислам (08.10.2021). «Численное моделирование многофазного многокомпонентного течения в пористых средах: анализ эффективности метода Ньютона» . Жидкости . 6 (10): 355. doi : 10.3390/fluids6100355 . ISSN 2311-5521 .