stringtranslate.com

Обобщенный метод минимальных остатков

В математике обобщенный метод минимальных остатков (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. На -й итерации:

  1. рассчитать по методу Арнольди;
  2. найти , который минимизирует ;
  3. вычислить ;
  4. повторите, если остаток еще недостаточно мал.

На каждой итерации должно быть вычислено произведение матрицы на вектор. Это стоит около операций с плавающей точкой для общих плотных матриц размера , но стоимость может уменьшиться до для разреженных матриц . В дополнение к произведению матрицы на вектор, операции с плавающей точкой должны быть вычислены на n -й итерации.

Конвергенция

Итерация n минимизирует остаток в подпространстве Крылова . Поскольку каждое подпространство содержится в следующем подпространстве, остаток не увеличивается. После m итераций, где m — размер матрицы A , пространство Крылова K m равно всему R m и, следовательно, метод 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 ) или перезапущенный GMRES. Для неположительно определенных матриц этот метод может страдать от застоя в сходимости, поскольку перезапущенное подпространство часто близко к более раннему подпространству.

Недостатки GMRES и перезапущенного GMRES устраняются путем повторного использования подпространства Крылова в методах типа GCRO, таких как GCROT и GCRODR. [6] Повторное использование подпространств Крылова в GMRES также может ускорить сходимость, когда необходимо решить последовательности линейных систем. [7]

Сравнение с другими решателями

Итерация Арнольди сводится к итерации Ланцоша для симметричных матриц. Соответствующий метод подпространства Крылова — это метод минимальных остатков (MinRes) Пейджа и Сондерса. В отличие от несимметричного случая, метод MinRes задается трехчленным рекуррентным соотношением . Можно показать, что не существует метода подпространства Крылова для общих матриц, который задается коротким рекуррентным соотношением и при этом минимизирует нормы остатков, как это делает GMRES.

Другой класс методов строится на несимметричной итерации Ланцоша, в частности метод BiCG . Они используют трехчленное рекуррентное соотношение, но они не достигают минимального остатка, и, следовательно, остаток не уменьшается монотонно для этих методов. Сходимость даже не гарантируется.

Третий класс образуют такие методы, как CGS и BiCGSTAB . Они также работают с трехчленным рекуррентным соотношением (следовательно, без оптимальности) и могут даже преждевременно завершиться без достижения сходимости. Идея этих методов заключается в том, чтобы выбрать подходящим образом порождающие полиномы итерационной последовательности.

Ни один из этих трех классов не является лучшим для всех матриц; всегда есть примеры, в которых один класс превосходит другой. Поэтому на практике испытываются несколько решателей, чтобы увидеть, какой из них лучше всего подходит для данной проблемы.

Решение задачи наименьших квадратов

Одна из частей метода GMRES заключается в поиске вектора, который минимизирует Обратите внимание, что это матрица размером ( n  + 1) на n , поэтому она дает сверхограниченную линейную систему из n + 1 уравнений для n неизвестных.

Минимум можно вычислить с помощью QR-разложения : найти ортогональную матрицу Ω n размером ( n  + 1) на ( n  + 1) и верхнюю треугольную матрицу ( n  + 1) на n, такую, что Треугольная матрица имеет на одну строку больше, чем столбцов, поэтому ее нижняя строка состоит из нуля. Следовательно, ее можно разложить следующим образом, где — треугольная матрица размером n на n (то есть квадратная).

QR-разложение можно легко обновить от одной итерации к другой, поскольку матрицы Хессенберга отличаются только строкой нулей и столбцом: где h n+1 = ( h 1, n +1 , ..., h n +1, n +1 ) T . Это означает, что предварительное умножение матрицы Хессенберга на Ω n , дополненное нулями и строкой с мультипликативным тождеством, дает почти треугольную матрицу: Она была бы треугольной, если бы σ было равно нулю. Чтобы исправить это, нужно вращение Гивенса , где С этим вращением Гивенса мы формируем Действительно, является треугольной матрицей с .

Учитывая QR-разложение, задача минимизации легко решается, если заметить, что Обозначим вектор через с g nR n и γ nR , тогда Вектор y , который минимизирует это выражение, задается как Опять же, векторы легко обновлять. [8]

Пример кода

Регулярный GMRES (MATLAB / GNU Octave)

функция [x, e] = gmres ( A, b, x, max_iterations, threshold ) n = длина ( A ); m = max_iterations ;        % использовать x как начальный вектор r = b - A * x ;        b_норма = норма ( b ); ошибка = норма ( r ) / b_норма ;        % инициализируем одномерные векторы 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 ; % Примечание: это не бета-скаляр в разделе "Метод" выше, а % бета-скаляр, умноженный на e1 beta = r_norm * e1 ; для k = 1 : m                                       % запустить arnoldi [ H ( 1 : k + 1 , k ), Q (:, k + 1 )] = arnoldi ( A , Q , k ); % исключить последний элемент в H -й строке и обновить матрицу вращения [ H ( 1 : k + 1 , k ), cs ( k ), sn ( k )] = apply_givens_rotation ( H ( 1 : k + 1 , k ), cs , sn , k ); % обновить вектор остатков beta ( k + 1 ) = - sn ( k ) * beta ( k ); beta ( k ) = cs ( k ) * beta ( k ); error = abs ( beta ( k + 1 )) / b_norm ;                                         % сохранить ошибку e = [ e ; error ];     если ( ошибка <= порог ) break ; конец конец % если порог не достигнут, k = m в этой точке (а не m+1) % вычислить результат y = H ( 1 : k , 1 : k ) \ beta ( 1 : k ); x = x + Q (:, 1 : k ) * y ; конец                       %----------------------------------------------------% % Функция Арнольди % %----------------------------------------------------% function [h, q] = arnoldi ( A, Q, k ) q = A * Q (:, k ); % Вектор Крылова для i = 1 : k % Модифицированный Грам-Шмидт, сохраняющий матрицу Хессенберга h ( i ) = q ' * Q (:, i ); q = q - h ( i ) * Q (:, i ); end h ( k + 1 ) = norm ( q ); q = q / h ( k + 1 ); end                                     %---------------------------------------------------------------------% % Применение вращения Гивенса к столбцу H % %---------------------------------------------------------------------% function [h, cs_k, sn_k] = apply_givens_rotation ( h, cs, sn, k ) % применить для i-го столбца для 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 ; конец                                 % обновить следующие значения sin cos для вращения [ cs_k , sn_k ] = givens_rotation ( h ( k ), h ( k + 1 ));        % исключить H(i + 1, i) h ( k ) = cs_k * h ( k ) + sn_k * h ( k + 1 ); h ( k + 1 ) = 0.0 ; конец                %%----Вычислить матрицу вращения Гивенса----%% 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 ; % см. http://www.netlib.org/eispack/comqr.f sn = v2 / t ; % end end                 

Смотрите также

Ссылки

  1. ^ Саад, Юсеф; Шульц, Мартин Х. (1986). «GMRES: обобщенный алгоритм минимального остатка для решения несимметричных линейных систем». Журнал SIAM по научным и статистическим вычислениям . 7 (3): 856–869. doi :10.1137/0907058. ISSN  0196-5204.
  2. ^ Пейдж и Сондерс, «Решение разреженных неопределенных систем линейных уравнений», SIAM J. Numer. Anal., т. 12, стр. 617 (1975) https://doi.org/10.1137/0712047
  3. ^ Нифа, Науфал (2017). Solveurs Performanceants pour l'optimisation sous contraintes en идентифицирование параметров [ Эффективные решатели для ограниченной оптимизации в задачах идентификации параметров ] (Диссертация) (на французском языке).
  4. ^ Eisenstat, Elman & Schultz 1983, Thm 3.3. Примечание: все результаты для GCR справедливы также для GMRES, см. Saad & Schultz 1986
  5. ^ Трефетен, Ллойд Н.; Бау, Дэвид, III. (1997). Численная линейная алгебра . Филадельфия: Общество промышленной и прикладной математики. Теорема 35.2. ISBN 978-0-89871-361-9.{{cite book}}: CS1 maint: multiple names: authors list (link)
  6. ^ Амриткар, Амит; де Стурлер, Эрик; Свиридович, Катажина; Тафти, Данеш; Ахуджа, Капил (2015). «Переработка подпространств Крылова для приложений вычислительной гидродинамики и новый гибридный решатель задач переработки». Журнал вычислительной физики . 303 : 222. arXiv : 1501.03358 . Bibcode :2015JCoPh.303..222A. doi :10.1016/j.jcp.2015.09.040. S2CID  2933274.
  7. ^ Гауль, Андре (2014). Повторное использование методов подпространства Крылова для последовательностей линейных систем (Ph.D.). Технический университет Берлина. doi :10.14279/depositonce-4147.
  8. ^ Стоер, Йозеф; Булирш, Роланд (2002). Введение в численный анализ . Тексты по прикладной математике (3-е изд.). Нью-Йорк: Springer. §8.7.2. ISBN 978-0-387-95452-3.