Przyspieszenie Andersona – Wikipedia
L ‘ Przyspieszenie Andersona (znany również w języku angielskim jako Mieszanie Andersona ) jest metodą przyspieszenia zbieżności iteracji o stałych punktach. Wprowadzone przez Donalda G. Andersona [Pierwszy] , tę metodę można zastosować do znalezienia rozwiązania równań o stałym punkcie
które często pojawiają się w dziedzinie nauki obliczeniowej.
Biorąc pod uwagę funkcję
, rozważ problem znalezienia ustalonego punktu
lub rozwiązanie równania
. Klasycznym podejściem do problemu jest użycie schematu iteracji o stałym punkcie [2] lub biorąc pod uwagę pierwszą hipotezę
Dla roztworu oblicz sekwencję
Aż do spełnienia kryterium konwergencji. Jednak zbieżność programu nie jest ogólnie gwarantowana. Ponadto zbieżność jest ogólnie ogólna liniowa i dlatego może być zbyt wolna, szczególnie jeśli ocena funkcji
To jest drogie [2] . Przyspieszenie Andersona jest metodą przyspieszenia zbieżności iteracji o stałych punktach [2] .
Definiuje siebie
, To jest
. Biorąc pod uwagę początkowy theter
i cały parametr
, metodę można sformułować w następujący sposób [3] [Za pomocą 1] :
Aby zakończyć iteracje metody, można zastosować kryteria aresztowania dla metod iteracyjnych. Na przykład iteracje można przerwać, kiedy
jest pod przepisaną tolerancją lub gdy pozostałość
Jest poniżej zalecanej tolerancji.
W porównaniu z prostą iteracją o stałym punkcie stwierdzono, że metoda przyspieszenia Andersona zbiega się szybciej, bardziej solidniej [3] [4] .
Rozwiązanie problemu minimalizacji [[[ zmiana |. Modifica Wikitesto ]
Przy każdej iteracji algorytmu problem optymalizacji związanej
, z zastrzeżeniem
należy rozwiązać. Problem można wyrazić w niektórych równoważnych preparatach [3] , które odpowiadają różnym metodom rozwiązania, które mogą spowodować bardziej wydajną implementację:
W obu poprzednich wyborach problem optymalizacji jest przedstawiony w postaci problemu przy minimalnych liniowych kwadratach, które nie są związane, co można rozwiązać za pomocą standardowych metod, w tym rozkładu QR [3] i rozkład do wartości liczby pojedynczej [4] , być może w tym techniki regularyzacji w celu radzenia sobie z problemami związanymi z rankingiem i warunkowaniem problemu optymalizacji. Rozwiązywanie problemu minimum kwadratowego poprzez rozwiązanie równań normalnych na ogół nie jest zalecane ze względu na potencjalną niestabilność numeryczną i ogólnie wysokie koszty obliczeń.
Stagnacja metody (tj. Obliczanie kolejnych iteracji o tej samej wartości,
) Powoduje awarię z powodu osobliwości problemu minimalnych kwadratów. W ten sam sposób quasi-instalacja (
) powoduje uwarunkowanie problemu do minimalnych kwadratów [3] . Ponadto wybór parametru
Może to być istotne przy określaniu warunkowania problemu minimalnych kwadratów, jak pokazano później.
Relaks [[[ zmiana |. Modifica Wikitesto ]
Algorytm można zmienić, wprowadzając zmienny parametr relaksacji (lub parametr miksowania)
[Pierwszy] [3] [4] . Na każdym etapie nowe iterate należy obliczyć jako
Wybór wartości
Ważne jest, aby określić metody zbieżności metody; zasadniczo,
może się różnić dla każdej iteracji, chociaż często jest wybierany stał [4] .
Wybór m [[[ zmiana |. Modifica Wikitesto ]
Parametr
określa, ile informacji z poprzednich iteracji jest używane do obliczenia nowej iteracji
. Z jednej strony, jeśli
Jest wybrany zbyt mały, używane jest niewiele informacji, a zbieżność może być powolna. Z drugiej strony, jeśli
Jest zbyt duży, informacje o starych iteracjach można przechowywać w przypadku zbyt wielu kolejnych iteracji, również w tym przypadku poprzez spowolnienie zbieżności [3] . Również wybór
Wpływa na wielkość problemu optymalizacji. Zbyt wielka wartość
Może pogorszyć warunkowanie problemu minimalnych kwadratów i kosztów jego rozwiązania. Ogólnie rzecz biorąc, co jest dobrym wyborem
To zależy od konkretnego problemu do rozwiązania [3] .
Wybór [[[ “> Edytuj |. “> Modifica Wikitesto ]
W porównaniu z opisanym powyżej algorytmem, wybór
Każda iteracja można zmienić. Jedną z możliwości jest wybór
Dla każdej iteracji
(Ten wybór jest czasem wskazany jako przyspieszenie Andersona bez obcięcia) [3] . W ten sposób każda nowa iteracja
Oblicza się go przy użyciu wszystkich poprzednich iteracji. Bardziej wyrafinowana technika opiera się na wyborze
w celu utrzymania dość małego uwarunkowania problemu przy minimalnych kwadratach [3] .
Metodę Newtona można zastosować do rozwiązania
Aby obliczyć stały punkt
Z kwadratową konwergencją. Jednak ta metoda wymaga dokładnej oceny pochodnej
, co może być bardzo drogie [4] . Przybliżenie pochodnej poprzez różnice skończone jest możliwą alternatywą, ale wymaga wielu ocen
do każdej iteracji, która znów może być bardzo droga. Przyspieszenie Andersona wymaga jedynie oceny funkcji
do iteracji i brak oceny jej pochodnej. Z drugiej strony zbieżność sekwencji punktowej z przyspieszeniem Andersona jest ogólnie liniowa [5] .
Kilku autorów podkreśliło podobieństwa między schematem przyspieszenia Andersona a innymi metodami rozwiązania równań nieliniowych. W szczególności:
- Eyert [6] Egnij E ziarno [4] Zinterpretowali algorytm w klasie prawie nowych i wieloskulowych metod, które uogólniają dobrze znaną metodę SecurIT, dla rozwiązania równania nieliniowego ; Pokazali również, w jaki sposób schemat można postrzegać jako metodę w Broyden [7] ;
- Walker e ni [3] Wykazali, że schemat przyspieszenia Andersona jest równoważny metodzie GMRES w przypadku problemów liniowych (tj. Problem znalezienia rozwiązania a Dla kwadratowej matrycy I dlatego można to postrzegać jako uogólnienie GMRES w przypadku nieliniowym; Podobny wynik znaleziono przez Washio i Oosterlee [8] .
Ponadto inne autorzy opracowano inne równoważne lub prawie równoważne metody [8] [9] [dziesięć] [11] [dwunasty] , chociaż przez większość czasu w kontekście konkretnego zastosowania zainteresowania, a nie jako ogólna metoda równań o stałym punkcie.
Poniżej znajduje się przykład implementacji w języku Matlab w schemacie przyspieszenia Andersona, aby znaleźć stały punkt funkcji
. Zauważ, że:
- Problem optymalizacji został rozwiązany w formie za pomocą rozkładu QR;
- Obliczenie rozkładu QR nie jest optymalne: w rzeczywistości do każdej iteracji do macierzy dodaje się pojedyncza kolumna I prawdopodobnie usunięto pojedynczą kolumnę: można ją wykorzystać do skutecznej aktualizacji rozkładu QR o niższych kosztach obliczeniowych [13] ;
- Algorytm może być bardziej wydajny pod względem pamięci, oszczędzając tylko najnowsze iteracje i pozostałości, jeśli cały wektor iteracji To nie jest potrzebne;
- Kod można łatwo uogólnić na przypadek do wartości wektora.
F = @( X ) grzech ( X ) + Atan ( X ); % Funkcji do obliczenia stałego punktu. x0 = Pierwszy ; % Początkowa iteracja. k_max = 100 ; % Maksymalna liczba iteracji. TOL_RES = 1E-6 ; % Tolerancja na pozostałości. M = 3 ; % Parametr m. X = [[[ x0 W F ( x0 )]; % Wektor wszystkich iteracji. G = F ( X ) - X ; % Wektor wszystkich pozostałości. G_k = g(2) - g(1); % Matrice degli incrementi dei residui.
X_k = x(2) - x(1); % Matrice degli incrementi nelle iterazioni.
k = 2;
while k < k_max && abs(g(k)) > tol_res
m_k = min(k, m);
% Soluzione del problema ai minimi quadrati con fattorizzazione QR.
[Q, R] = qr(G_k);
gamma_k = R (Q' * g(k));
% Calcolo della nuova iterata e del residuo corrispondente.
x(k+1) = x(k) + g(k) - (X_k + G_k) * gamma_k;
g(k+1) = f(x(k+1)) - x(k+1);
% Aggiornamento delle matrici degli incrementi.
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
% Stampa il risultato: Trovato punto fisso 2.013444 dopo 9 iterazioni
fprintf ("Trovato punto fisso %f dopo %d iterazionin", x(end), k);
Notatki wyjaśniające [[[ zmiana |. Modifica Wikitesto ]
- ^ Poniższe sformułowanie nie odpowiada dokładnie tej dostarczonej przez oryginalnego autora [Pierwszy] , ale jest to równoważne sformułowanie podane przez Walkera i Ni [3] .
Bibliografia [[[ zmiana |. Modifica Wikitesto ]
- ^ A B C D Donald G. Anderson, Iteracyjne procedury nieliniowych równań integralnych , W Journal of the ACM (JACM) , tom. 12, n. 4, październik 1965, s. 547–560, doi: 10.1145/321296.321305 .
- ^ A B C Alfio Quarteroni, Riccardo Sacco i Fausto Saleri, Matematyka numeryczna , 2ª ed., Springr, ISBN 978-3440-49809-4.
- ^ A B C D To jest F G H I J k L M Grlr dla. Cok byy Przyspieszenie Anderson do iteracji o stałym punkcie , W SIAM Journal o analizie numerycznej , tom. 49, n. 4, styczeń 2011, s. 1715–1735, doi: 10.1137/10078356x .
- ^ A B C D To jest F G Haw-ren fang e yousef saad, Dwie klasy wieloskulowych metod przyspieszenia nieliniowego , W Numeryczna algebra liniowa z aplikacjami , tom. 16, n. 3, marzec 2009, s. 197–221, doi: 10.1002 / Great.617 .
- ^ Claire Evans, Sara Pollock E Leo G. Rebolz, Dowód, że przyspieszenie Andersona poprawia szybkość konwergencji w linii konwertujących metod stałego punktu (ale nie w przypadku zbieżności kwadratowo) , W SIAM Journal o analizie numerycznej , tom. 58, n. 1, 20 lutego 2020, s. 788–810, doi: 10.1137/19M1245384 .
- ^ V. Eyert, Porównawcze badanie metod przyspieszenia konwergencji iteracyjnych sekwencji wektorowych , W Journal of Computational Physics , tom. 124, n. 2, marzec 1996, s. 271–285, doi: 10.1006 / jcph.1996.0059 .
- ^ C. G. Broyden, Klasa metod rozwiązywania nieliniowych równań jednoczesnych , W Matematyka obliczeń , tom. 19, n. 92, 1965, s. 577–577, doi: 10.1090/S0025-5718-1965-0198670-6 .
- ^ A B C. W. Oosterlee E T. Washio, Podprzestrzeń Krylova Przyspieszenie nieliniowego multigrid z zastosowaniem do recyrkulacji przepływów , W SIAM Journal on Scientific Computing , tom. 21, n. 5, styczeń 2000, s. 1670–1690, doi: 10.1137/S1064827598338093 .
- ^ Peter Pulay, Przyspieszenie konwergencji sekwencji iteracyjnych. przypadek iteracji SCF , W Listy fizyki chemicznej , tom. 73, n. 2, lipiec 1980, s. 393–398, doi: 10.1016/0009-2614 (80) 80396-4 .
- ^ P. Pulay, Ulepszenia przyspieszenia konwergencji , W Journal of Computational Chemistry , tom. 3, n. 4, 1982, s. 556–560, doi: 10.1002/JCC.540030413 .
- ^ Neil N. Carlson E Keith Miller, Projektowanie i zastosowanie kodu elementu skończonego ważonego gradientu I: W jednym wymiarze , W SIAM Journal on Scientific Computing , tom. 19, n. 3, maj 1998, s. 728–765, doi: 10.1137/s106482759426955x .
- ^ Keith Miller, Nieliniowy Krylov i ruchome węzły w metodzie linii , W Journal of Computational and Applied Mathematics , tom. 183, n. 2, listopad 2005, s. 275–287, doi: 10.1016/j.cam.2004.12.032 .
- ^ J. W. Daniell, W. Bragg E. Bragg E. Confman, Reorthogonalizacja i stabilne algorytmy do aktualizacji faktoralizacji QR Gram-Schmidt , W Matematyka obliczeń , tom. 30, n. 136, październik 1976, s. 772–772, doi: 10.1090/S0025-5718-1976-0431641-8 .
Recent Comments