Андерсон ускорение
В математике ускорение Андерсона , также называемое перемешиванием Андерсона , представляет собой метод ускорения скорости сходимости итераций с фиксированной точкой . Представлено Дональдом Г. Андерсоном, [1] этот метод можно использовать для поиска решения уравнений с неподвижной точкой. часто возникающие в области вычислительной техники .
Определение
[ редактировать ]Дана функция , рассмотрим задачу нахождения неподвижной точки , что является решением уравнения . Классический подход к проблеме заключается в использовании итерационной схемы с фиксированной точкой ; [2] то есть при первоначальном предположении для решения, чтобы вычислить последовательность до тех пор, пока не будет выполнен некоторый критерий сходимости. Однако сходимость такой схемы в общем случае не гарантирована; более того, скорость сходимости обычно линейна, что может стать слишком медленным, если вычисление функции является вычислительно дорогостоящим. [2] Ускорение Андерсона — это метод ускорения сходимости последовательности с фиксированной точкой. [2]
Определить остаток , и обозначим и (где соответствует последовательности итераций из предыдущего пункта). Учитывая первоначальное предположение и целочисленный параметр , метод можно сформулировать следующим образом: [3] [примечание 1]
где умножение матрицы на вектор , и это -й элемент . Для завершения итераций метода можно использовать обычные критерии остановки. Например, итерации можно остановить, если попадает под установленный допуск или когда остаточная попадает под установленный допуск. [2]
Было обнаружено, что по сравнению со стандартной итерацией с фиксированной точкой этот метод сходится быстрее и более устойчив, а в некоторых случаях позволяет избежать расхождения последовательности с фиксированной точкой. [3] [4]
Вывод
[ редактировать ]Для решения , мы это знаем , что эквивалентно тому, что . Поэтому мы можем перефразировать проблему как задачу оптимизации, в которой мы хотим минимизировать .
Вместо того, чтобы идти прямо из к выбрав как и в итерации с фиксированной точкой , давайте рассмотрим промежуточную точку что мы выбираем линейную комбинацию , где вектор коэффициентов , и матрица, содержащая последний точки и выберите так, что это минимизирует . Поскольку элементы в суммируясь до единицы, мы можем сделать приближение первого порядка , и наша задача состоит в том, чтобы найти что сводит к минимуму . После того, как нашел , мы могли бы в принципе вычислить .
Однако, поскольку призван приблизить точку к , вероятно, ближе к чем что есть, поэтому имеет смысл выбрать скорее, чем . Кроме того, поскольку элементы в суммируясь до единицы, мы можем сделать приближение первого порядка . Поэтому мы выбираем
.
Решение задачи минимизации
[ редактировать ]На каждой итерации алгоритма ограниченной оптимизации задача , при условии необходимо решить. Задачу можно переформулировать в нескольких эквивалентных формулировках: [3] получение различных методов решения, которые могут привести к более удобной реализации:
Для обоих вариантов задача оптимизации имеет форму неограниченной линейной задачи наименьших квадратов , которую можно решить стандартными методами, включая QR-разложение. [3] и разложение по сингулярным значениям , [4] возможно, включение методов регуляризации для устранения недостатков рангов и проблем обусловленности в задаче оптимизации. Решение задачи наименьших квадратов путем решения нормальных уравнений обычно не рекомендуется из-за потенциальных численных нестабильностей и, как правило, высоких вычислительных затрат. [4]
Застой в методе (т.е. последующие итерации с одинаковым значением, ) приводит к сбою метода из-за сингулярности задачи наименьших квадратов. Аналогично, почти стагнация ( ) приводит к плохой обусловленности задачи наименьших квадратов. При этом выбор параметра может иметь значение при определении условия задачи наименьших квадратов, как обсуждается ниже . [3]
Релаксация
[ редактировать ]Алгоритм можно модифицировать, вводя переменный параметр релаксации (или параметр смешивания). . [1] [3] [4] На каждом шаге вычисляйте новую итерацию как Выбор имеет решающее значение для свойств сходимости метода; в принципе, может меняться на каждой итерации, хотя часто его выбирают постоянным. [4]
Выбор м.
[ редактировать ]Параметр определяет, сколько информации из предыдущих итераций используется для вычисления новой итерации . С одной стороны, если выбирается слишком маленьким, используется слишком мало информации, и сходимость может быть нежелательно медленной. С другой стороны, если слишком велика, информация из старых итераций может сохраняться для слишком многих последующих итераций, так что сходимость снова может быть медленной. [3] Более того, выбор влияет на размер задачи оптимизации. Слишком большое значение может ухудшить условия задачи наименьших квадратов и стоимость ее решения. [3] В общем, конкретная проблема, которую необходимо решить, определяет лучший выбор параметр. [3]
Выбор мк
[ редактировать ]Применительно к описанному выше алгоритму выбор на каждой итерации могут быть изменены. Одна из возможностей – выбрать за каждую итерацию (иногда называемое ускорением Андерсона без усечения). [3] Таким образом, каждая новая итерация вычисляется с использованием всех ранее вычисленных итераций. Более сложный метод основан на выборе так, чтобы поддерживать достаточно малую обусловленность для задачи наименьших квадратов. [3]
Отношения с другими классами методов
[ редактировать ]Метод Ньютона можно применить для решения задачи вычислить фиксированную точку с квадратичной сходимостью. Однако такой метод требует оценки точной производной , что может стоить очень дорого. [4] аппроксимация производной с помощью конечных разностей , но она требует многократного вычисления Возможная альтернатива — на каждой итерации, что опять же может оказаться очень дорогостоящим. Ускорение Андерсона требует только одной оценки функции на итерацию и без оценки ее производной. С другой стороны, сходимость ускоренной Андерсоном последовательности фиксированных точек в целом по-прежнему линейна. [5]
Некоторые авторы указали на сходство схемы ускорения Андерсона с другими методами решения нелинейных уравнений. В частности:
- Эйерт [6] и Фанг и Саад [4] интерпретировал алгоритм в классе квазиньютоновских методов и методов мультисекущих, обобщающих известный метод секущих , для решения нелинейного уравнения ; они также показали, как схему можно рассматривать как метод класса Бройдена ; [7]
- Уокер и Ни [3] [8] показал, что схема ускорения Андерсона эквивалентна методу GMRES в случае линейных задач (т.е. задачи поиска решения задачи для некоторой квадратной матрицы ), и, таким образом, его можно рассматривать как обобщение GMRES на нелинейный случай; аналогичный результат был получен Вашио и Остерли. [9]
Более того, несколько эквивалентных или почти эквивалентных методов были независимо разработаны другими авторами. [9] [10] [11] [12] [13] хотя чаще всего в контексте какого-то конкретного интересующего приложения, а не как общий метод для уравнений с фиксированной точкой.
Пример реализации MATLAB
[ редактировать ]Ниже приведен пример реализации на языке MATLAB схемы ускорения Андерсона для поиска фиксированной точки функции. . Обратите внимание:
- задача оптимизации решалась в виде использование QR-разложения;
- вычисление QR-разложения неоптимально: действительно, на каждой итерации к матрице добавляется один столбец , и, возможно, будет удален один столбец; этот факт можно использовать для эффективного обновления QR-разложения с меньшими вычислительными затратами; [14]
- алгоритм можно сделать более эффективным с точки зрения использования памяти, сохраняя только несколько последних итераций и остатков, если весь вектор итераций не нужен;
- код непосредственно обобщается на случай векторного числа .
f = @(x) sin(x) + atan(x); % Function whose fixed point is to be computed.x0 = 1; % Initial guess.k_max = 100; % Maximum number of iterations.tol_res = 1e-6; % Tolerance on the residual.m = 3; % Parameter m.x = [x0, f(x0)]; % Vector of iterates x.g = f(x) - x; % Vector of residuals.G_k = g(2) - g(1); % Matrix of increments in residuals.X_k = x(2) - x(1); % Matrix of increments in x.k = 2;while k < k_max && abs(g(k)) > tol_res m_k = min(k, m); % Solve the optimization problem by QR decomposition. [Q, R] = qr(G_k); gamma_k = R \ (Q' * g(k)); % Compute new iterate and new residual. x(k + 1) = x(k) + g(k) - (X_k + G_k) * gamma_k; g(k + 1) = f(x(k + 1)) - x(k + 1); % Update increment matrices with new elements. X_k = [X_k, x(k + 1) - x(k)]; G_k = [G_k, g(k + 1) - g(k)]; n = size(X_k, 2); if n > m_k X_k = X_k(:, n - m_k + 1:end); G_k = G_k(:, n - m_k + 1:end); end k = k + 1;end% Prints result: Computed fixed point 2.013444 after 9 iterationsfprintf("Computed fixed point %f after %d iterations\n", x(end), k);
См. также
[ редактировать ]Примечания
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б с д Андерсон, Дональд Г. (октябрь 1965 г.). «Итерационные процедуры для нелинейных интегральных уравнений» . Журнал АКМ . 12 (4): 547–560. дои : 10.1145/321296.321305 .
- ^ Jump up to: а б с д Квартерони, Альфио ; Сакко, Риккардо; Салери, Фаусто. Численная математика (2-е изд.). Спрингер. ISBN 978-3-540-49809-4 .
- ^ Jump up to: а б с д и ж г час я дж к л м н Уокер, Гомер Ф.; Ни, Пэн (январь 2011 г.). «Ускорение Андерсона для итераций с фиксированной точкой». SIAM Journal по численному анализу . 49 (4): 1715–1735. CiteSeerX 10.1.1.722.2636 . дои : 10.1137/10078356X .
- ^ Jump up to: а б с д и ж г час Фанг, Хорен; Саад, Юсеф (март 2009 г.). «Два класса многосекущих методов нелинейного ускорения». Численная линейная алгебра с приложениями . 16 (3): 197–221. дои : 10.1002/nla.617 .
- ^ Эванс, Клэр; Поллок, Сара; Ребхольц, Лео Г.; Сяо, Мэнъин (20 февраля 2020 г.). «Доказательство того, что ускорение Андерсона улучшает скорость сходимости в линейно сходящихся методах фиксированной точки (но не в тех, которые сходятся квадратично)». SIAM Journal по численному анализу . 58 (1): 788–810. arXiv : 1810.08455 . дои : 10.1137/19M1245384 .
- ^ Эйерт, В. (март 1996 г.). «Сравнительное исследование методов ускорения сходимости итеративных векторных последовательностей». Журнал вычислительной физики . 124 (2): 271–285. дои : 10.1006/jcph.1996.0059 .
- ^ Бройден, CG (1965). «Класс методов решения нелинейных одновременных уравнений» . Математика вычислений . 19 (92): 577–577. дои : 10.1090/S0025-5718-1965-0198670-6 .
- ^ Ни, Пэн (ноябрь 2009 г.). Андерсон Ускорение итерации с фиксированной точкой с применением к расчетам электронных структур (доктор философии).
- ^ Jump up to: а б Остерли, CW; Васио, Т. (январь 2000 г.). «Ускорение нелинейных многосеточных нелинейных подпространств Крылова с применением к рециркуляционным потокам». Журнал SIAM по научным вычислениям . 21 (5): 1670–1690. дои : 10.1137/S1064827598338093 .
- ^ Пулай, Петер (июль 1980 г.). «Ускорение сходимости итерационных последовательностей. Случай scf-итерации». Письма по химической физике . 73 (2): 393–398. дои : 10.1016/0009-2614(80)80396-4 .
- ^ Пулай, П. (1982). «Улучшено ускорение сходимости SCF». Журнал вычислительной химии . 3 (4): 556–560. дои : 10.1002/jcc.540030413 .
- ^ Карлсон, Нил Н.; Миллер, Кейт (май 1998 г.). «Разработка и применение градиентно-взвешенного кода конечных элементов I: в одном измерении». Журнал SIAM по научным вычислениям . 19 (3): 728–765. дои : 10.1137/S106482759426955X .
- ^ Миллер, Кейт (ноябрь 2005 г.). «Нелинейный Крылов и подвижные узлы в методе прямых». Журнал вычислительной и прикладной математики . 183 (2): 275–287. дои : 10.1016/j.cam.2004.12.032 .
- ^ Дэниел, JW; Грэгг, Всемирный банк; Кауфман, Л.; Стюарт, GW (октябрь 1976 г.). «Реортогонализация и устойчивые алгоритмы обновления $QR$-факторизации Грама-Шмидта» . Математика вычислений . 30 (136): 772–772. дои : 10.1090/S0025-5718-1976-0431641-8 .