Podstawowy element metody Newtona — rozwiązywanie równania zlinearyzowanego — w przypadku, gdy
W dotychczasowej analizie zakładaliśmy, że rozwiązanie
Niech
Niech istnieje
przy czym
Wówczas ciąg
dla
Dowód tego twierdzenia można znaleźć np. w [12, rozdział 12.6.1].
∎Z punktu widzenia praktycznej realizacji, każdy krok metody Newtona ma parę potencjalnie kosztownych momentów, które teraz przedyskutujemy.
Wyznaczenie wzoru na
Wyznaczenie wartości
Rozwiązanie układu z
jest rzędu
Te obserwacje prowadzą do kilku heurystycznych sposobów modyfikacji metody Newtona tak, by obniżyć koszt jednej jej iteracji. Czasem — choć nie zawsze, i dlatego te sposoby są ważne! — obniżenie kosztu iteracji będzie skutkowało pogorszeniem szybkości zbieżności metody, ale nawet i wówczas może okazać się, że ostatecznie metoda wolniej zbieżna, ale tańsza, będzie bardziej efektywna od metody Newtona.
W uproszczonej metodzie Newtona, najdroższy fragment iteracji Newtona — wyznaczenie rozkładu trójkątnego macierzy pochodnej — usuwamy poza pętlę:
Rzeczywiście, jeśli bowiem na samym początku iteracji dokonamy kosztem
będziemy mogli rozwiązać już tylko kosztem nie wyższym niż
Przy standardowych założeniach, istnieją stałe dodatnie
(10.1) |
Zostanie podany później, gdy będziemy dysponowali wygodnym narzędziem do badania tego typu metod.
∎Zaimplementuj uproszczoną metodę Newtona.
Wystarczy zmodyfikować algorytm realizujący metodę Newtona:
function simplerNewton(x, F, stop) |
oblicz macierz pochodnej |
wyznacz rozkład |
while not stop do begin |
rozwiąż układ z macierzą trójkątną, |
x = x - s; |
end |
return(x); |
Metoda Szamańskiego to metoda, w której po
Formalnie możemy więc przyjąć, że
Znajdź wykładnik
Z definicji metody,
skąd
A więc metoda ma wykładnik
Porównaj efektywność metody Szamańskiego i Newtona w zależności od rozmiaru zadania
koszt wyznaczenia
koszt wyznaczenia
koszt wyznaczenia rozkładu
koszt wyznaczenia rozwiązania układu z macierzą
Oczywiście musimy założyć
a dla metody Szamańskiego
Stąd
co zachodzi dla
Rozważmy równanie
gdzie
jest równoważna metodzie Newtona dla
Iteracja Newtona dla
Mnożąc lewostronnie przez
Na zakończenie wystarczy zauważyć, że
Wykaż, że jeśli spełnione są założenia standardowe oraz metoda Newtona jest zbieżna, to dla dostatecznie dużych
Może to więc być dość prosty test (niezmienniczy ze względu na liniowe transformacje zmiennej niezależnej i zależnej!), pozwalający przypuszczać, że nie zachodzi zbieżność: na przykład, gdy na pewnym kroku metody stwierdzimy
Przy standardowych założeniach, istnieją stałe dodatnie
(10.2) |
jest dobrze określony oraz
(10.3) |
gdzie
Dowód znajdziemy np. w [9].
∎Z twierdzenia o lokalnej stabilności metody Newtona można wywnioskować wiele twierdzeń o zbieżności tych modyfikacji metody Newtona, które sprowadzają się do zaburzenia oryginalnej metody Newtona, na przykład twierdzenia o zbieżności uproszczonej metody Newtona.
(Twierdzenia 10.2, o zbieżności uproszczonej metody Newtona.) Jeden krok uproszczonej metody Newtona
możemy zapisać w języku twierdzenia o lokalnej stabilności metody Newtona, gdzie
Niech więc
i na mocy właśnie tw. o lokalnej stabilności,
Ponieważ z założenia
jeśli więc
Jak już wspominaliśmy, innym kłopotliwym momentem w realizacji metody Newtona jest wyznaczanie macierzy pochodnej. Opracowanie dokładnej formuły obliczania
Ale, ponieważ metoda Newtona jest jedynie metodą przybliżoną, można zaryzykować użycie przybliżonej pochodnej — najlepiej: przybliżonej niskim kosztem. Jednym z pomysłów mogłoby być wyznaczenie przybliżenia pochodnej na podstawie ilorazów różnicowych, zgodnie z poniższym twierdzeniem.
Przyjmijmy, że są spełnione założenia standardowe. Niech
Twierdzenie to gwarantuje więc, że pochodną w kierunku wektora
z błędem rzędu
Twierdzenie jest prostą konsekwencją twierdzenia o wartości średniej i założenia lipschitzowskości pochodnej:
Stąd
Z powyższego wynika pomysł na przybliżenie całej macierzy pochodnej ilorazami różnicowymi: wystarczy wziąć
Przy standardowych założeniach, istnieją dodatnie
w którym kolumny macierzy
jest dobrze określony i zbieżny przynajmniej liniowo do
jeśli
jeśli
jeśli
Dla wygody, dowód poprowadzimy w normie
oraz
Tymczasem, na mocy lematu o różnicowej aproksymacji pochodnej,
Oznaczmy
Stąd już wynika teza twierdzenia. Ostatni warunek kwadratowej zbieżności wynika z oszacowania residuum przez błąd,
gdy tylko
Jak pamiętamy, najkosztowniejszą częścią jednej iteracji Newtona jest rozwiązywanie układu równań z macierzą pochodnej. Alternatywą dla metody bezpośredniej rozwiązywania równania poprawki
mogłaby być, zwłaszcza w przypadku gdy
Taką modyfikację metody Newtona nazywa się niedokładną metodą Newtona.
Przy standardowych założeniach, istnieją dodatnie stałe
to następna iteracja niedokładnej metody Newtona dana wzorem
spełnia
Niech
gdzie
Stąd wynika, że
i konsekwentnie
Ponieważ na mocy twierdzenia o zbieżności metody Newtona mamy
(W ostatniej nierówności skorzystaliśmy z lematu o oszacowaniu funkcji i pochodnej.)
∎W powyższym dowodzie dostaliśmy rezultat, w którym stała
Przy standardowych założeniach, istnieją
jeśli
jeśli
Udowodnij powyższy wniosek.
Niedokładna metoda Newtona jest bardzo popularną metodą w przypadku, gdy
nie musimy wykonywać, zazwyczaj bardzo kosztownego, rozkładu macierzy pochodnej;
nie musimy nawet wyznaczać macierzy pochodnej, lecz w zamian wystarczy, że w każdej wewnętrznej iteracji, jedną dodatkową wartość
ponieważ po kilku iteracjach zbliżamy się do rozwiązania, że
możemy ograniczyć koszt rozwiązywania układu z macierzą pochodnej (liczbę iteracji wewnętrznych), stosując łagodne kryterium stopu, gdy jesteśmy daleko od rozwiązania.
Porównamy jakość pracy kilku metod:
klasycznej metody Newtona
uproszczonej metody Newtona
metody Szamańskiego o
metody Newtona z pochodną przybliżoną ilorazami różnicowymi (ze stałym, ale bardzo małym krokiem,
Do porównania wybierzemy:
wykresy uzyskanego rozwiązania,
wykresy residuum,
historię zbieżności metody,
liczbę iteracji, czas pracy, końcową wartość residuum.
Zwróć uwagę na to, że odpowiednio dobierając częstość uaktualniania macierzy pochodnej, można znacząco poprawić efektywność metody (w porównaniu do metody Newtona). Z drugiej strony, zbyt rzadka aktualizacja może przeszkodzić w uzyskaniu zbieżności, jak to dzieje się w naszym przykładzie w przypadku uproszczonej metody Newtona.
Sprawdź, jak zmienią się wyniki (uzyskane rozwiązanie, jego dokładność, a także — koszt metody i szybkość jej zbieżności), gdy zmienisz jeden z poniższych parametrów
osłabisz nieliniowość, biorąc
nieco wzmocnisz nieliniowość, biorąc
zwiększysz rozmiar zadania
zmniejszysz
zmniejszysz tolerancję błędu do
Zdaje się, że dla
Zaimplementuj niedokładną metodę Newtona i wykorzystaj ją w skrypcie rozwiązującym (najlepiej: dwuwymiarowe) równanie Allena–Cahna. Jak wpłynęło to na efektywność metody, w porównaniu do standardowej metody Newtona?
Monografii Kelley'a towarzyszy zestaw skryptów, pozwalających przetestować działanie różnych metod iteracyjnych w kilku praktycznych zadaniach [9].
Poniższy skrypt, którego podstawowe kody źródłowe pochodzą ze strony http://www4.ncsu.edu/~ctk/newton, umożliwi Ci zapoznanie się z zadaniem rozwiązania równania Chandrasekhara [9, rozdział 5.6].
Aby w pełni wykorzystać możliwości skryptu, zachęcamy do uruchomienia go na własnym (podłączonym do internetu) komputerze i następnie do wnikliwej obserwacji zmiany wyników przy zmianie, czy to parametrów zadania, czy to parametrów pracy solvera.
Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.
strona główna | webmaster | o portalu | pomoc
© Wydział Matematyki, Informatyki i Mechaniki UW, 2009-2010. Niniejsze materiały są udostępnione bezpłatnie na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0 Polska.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.
Projekt współfinansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego i przez Uniwersytet Warszawski.