Zagadnienia

10. Wariacje na temat metody Newtona

Podstawowy element metody Newtona — rozwiązywanie równania zlinearyzowanego — w przypadku, gdy N jest duże, może stanowić wąskie gardło całego procesu iteracyjnego. Dlatego w tym i następnym rozdziale poszukamy skutecznych metod ominięcia tego ograniczenia; jednak na początek przytoczymy inną wersję twierdzenia o zbieżności, która (przy silniejszych założeniach) zagwarantuje nam także istnienie rozwiązań.

10.1. Twierdzenie o istnieniu rozwiązań

W dotychczasowej analizie zakładaliśmy, że rozwiązanie x* równania Fx=0 istnieje. Okazuje się, że nieco modyfikując założenia standardowe można udowodnić i istnienie rozwiązania, i lokalną zbieżność metody Newtona do tego rozwiązania.

Twierdzenie 10.1 (Kantorowicza, o istnieniu i zbieżności)

Niech F:RNDRN, przy czym D jest niepusty, otwarty i wypukły, i niech F będzie różniczkowalna w D oraz istnieje L>0 takie, że

Fx-FyLx-yx,yD.

Niech istnieje x0D takie, że Fx0 jest nieosobliwa oraz dla pewnych dodatnich β,η zachodzi

Fx0-1Fx0β,Fx0-1η,

przy czym α=Lβη1/2. Określmy δ=1-1-2α/Lβ i załóżmy, że K¯x0,δD.

Wówczas ciąg xk zdefiniowany metodą Newtona jest dobrze określony, co więcej xkK¯x0,δ oraz ma granicę x*, która jest jedynym miejscem zerowym F w K¯x0,δ. Ponadto

xk-x*Lβ2k2α2k

dla k0.

Dowód

Dowód tego twierdzenia można znaleźć np. w [12, rozdział 12.6.1].

10.2. Obniżanie kosztu iteracji

Z punktu widzenia praktycznej realizacji, każdy krok metody Newtona ma parę potencjalnie kosztownych momentów, które teraz przedyskutujemy.

  • Wyznaczenie wzoru na Fx może być trudne: na przykład, gdy F jest zadana bardzo skomplikowaną procedurą (a nie jednolinijkowym wzorem), wtedy ani ręczne, ani automatyczne różniczkowanie F może nie prowadzić do poprawnych czy zadowalających rezultatów. Może też być bardzo żmudne.

  • Wyznaczenie wartości Fx, a zwłaszcza: Fx, może być kosztowne. Rzeczywiście, Fx to N2 elementów macierzy pochodnej, a dodatkowo — poza najprostszymi przypadkami — pochodna jest zwykle dana bardziej skomplikowanym wyrażeniem niż sama funkcja. Rozsądne jest więc przyjęcie13O ile Fx nie jest macierzą rozrzedzoną., że w praktyce koszt wyznaczenia Fx będzie rzędu cN(koszt obliczenia F(x)), z raczej dużą stałą c. Nawet wyznaczenie pojedynczej wartości Fx może być w niektórych zadaniach bardzo kosztowne. W [3] wspomina się o F:R50R50, której jedna wartość kosztowała 100 godzin pracy ówczesnego szybkiego komputera.

  • Rozwiązanie układu z Fx jest potencjalnie najbardziej kosztownym fragmentem iteracji. Rzeczywiście, gdy Fx jest macierzą gęstą bez żadnych szczególnych własności, to koszt rozwiązania układu

    Fxs=Fx

    jest rzędu ON3.

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.

10.2.1. Uproszczona metoda Newtona

W uproszczonej metodzie Newtona, najdroższy fragment iteracji Newtona — wyznaczenie rozkładu trójkątnego macierzy pochodnej — usuwamy poza pętlę:

xk+1=xk-Fx0-1Fxk.

Rzeczywiście, jeśli bowiem na samym początku iteracji dokonamy kosztem ON3 flopów rozkładu LU (lub QR) macierzy Fx0 i zapamiętamy czynniki rozkładu, to potem każdy z układów równań:

Fx0s=Fxk

będziemy mogli rozwiązać już tylko kosztem nie wyższym niż ON2! Oznacza to, że koszt jednej iteracji spada nam do ON2, jest więc N-krotnie mniejszy niż w przypadku oryginalnej metody Newtona. Ceną za przyspieszenie jest wyraźne zmniejszenie szybkości zbieżności metody:

Twierdzenie 10.2 (o zbieżności uproszczonej metody Newtona)

Przy standardowych założeniach, istnieją stałe dodatnie C i δ takie, że jeśli x0Kx*,δ, to uproszczona metoda Newtona jest zbieżna przynajmniej liniowo do x* oraz

xk+1-x*Cx0-x*xk-x*kN.(10.1)
Dowód

Zostanie podany później, gdy będziemy dysponowali wygodnym narzędziem do badania tego typu metod.

Ćwiczenie 10.1

Zaimplementuj uproszczoną metodę Newtona.

Rozwiązanie: 

Wystarczy zmodyfikować algorytm realizujący metodę Newtona:

Uproszczona metoda Newtona
function simplerNewton(x, F, stop)
oblicz macierz pochodnej Fx;
wyznacz rozkład Fx, np. QR=Fx;
while not stop do begin
  rozwiąż układ z macierzą trójkątną, Rs=QTFx;
  x = x - s;
end
return(x);

Ćwiczenie 10.2

Metoda Szamańskiego to metoda, w której po m krokach uproszczonej metody Newtona dokonujemy wyznaczenia i rozkładu macierzy pochodnej (czyli restartujemy metodę uproszczoną, biorąc za przybliżenie początkowe ostatnio wyznaczone przybliżenie rozwiązania). Jest to więc coś pośredniego pomiędzy prawdziwą metodą Newtona (w której w każdej iteracji wyznacza się i rozkłada macierz pochodnej) a uproszczoną metodą Newtona (gdzie macierz pochodnej wyznacza się tylko jeden raz).

Formalnie możemy więc przyjąć, że m kroków uproszczonej metody Newtona to jest ,,jeden duży krok” i określić iterację Szamańskiego następująco:

xk+1m=xk-Fxk-1Fxk
xk+j+1m=xk+jm-F(xk)-1F(xk+jm),j=1,,m-1.

Znajdź wykładnik p taki, że

xk+1-x*Cxk-x*p.
Rozwiązanie: 

Z definicji metody, xk+1 wyznaczamy jako m-tą iterację uproszczonej metody Newtona startującej z xk. Na mocy oszacowania błędu uproszczonej metody Newtona mamy więc

xk+j+1m-x*Cxk-x*xk+jm-x*,

skąd

xk+1-x*Cxk-x*xk+m-1m-x*Cxk-x*2xk+m-2m-x*Cmxk-x*m+1.

A więc metoda ma wykładnik m+1.

Ćwiczenie 10.3

Porównaj efektywność metody Szamańskiego i Newtona w zależności od rozmiaru zadania N, przy następujących modelowych założeniach:

  • koszt wyznaczenia Fx jest równy c0N

  • koszt wyznaczenia Fx jest równy c1N2

  • koszt wyznaczenia rozkładu Fx jest równy crN3

  • koszt wyznaczenia rozwiązania układu z macierzą Fx o danym rozkładzie jest równy csN2

Rozwiązanie: 

Oczywiście musimy założyć m>1, w przeciwnym razie obie metody są tożsame. Dla metody Newtona mamy

ENewton=21/crN3+c1+csN2+c0N,

a dla metody Szamańskiego

ESzamański=m+11/crN3+c1+mcsN2+mc0N.

Stąd ESzamańskiENewton wtedy i tylko wtedy, gdy log2ESzamańskilog2ENewton. Dalej przekształcając, dostajemy warunek wiążący ze sobą m i N:

log2m+11+mO1N1+O1N,

co zachodzi dla N dostatecznie dużych względem m.

Ćwiczenie 10.4 (liniowa niezmienniczość iteracji Newtona)

Rozważmy równanie Fx=0 i jego liniową transformację

Gy=AFB-1y=0,

gdzie A,B są nieosobliwymi macierzami rozmiaru N×N. Wykaż, że jeśli tylko y0=Bx0, to iteracja Newtona dla G,

yk+1=yk-Gyk-1Gyk

jest równoważna metodzie Newtona dla F w tym sensie, że zawsze zachodzi yk=Bxk.

Rozwiązanie: 

Iteracja Newtona dla F to

xk+1=xk-Fxk-1Fxk.

Mnożąc lewostronnie przez B i podstawiając gdzie trzeba xk=B-1yk mamy

yk+1=yk-BFB-1yk-1FB-1yk=yk-BFB-1yk-1A-1AFB-1yk.

Na zakończenie wystarczy zauważyć, że BFB-1yk-1A-1=AFB-1ykB-1-1=Gyk-1.

Ćwiczenie 10.5

Wykaż, że jeśli spełnione są założenia standardowe oraz metoda Newtona jest zbieżna, to dla dostatecznie dużych k zachodzi

Fxk-1Fxk+114Fxk-1Fxk.

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 Fxk-1Fxk+134Fxk-1Fxk, możemy wtedy uznać prawdopodobny brak zbieżności i zakończyć iterację.

10.2.2. Wpływ niedokładności wyznaczenia pochodnej lub funkcji na zbieżność metody Newtona

Twierdzenie 10.3 (o lokalnej stabilności metody Newtona)

Przy standardowych założeniach, istnieją stałe dodatnie C, δ oraz δ~ takie, że jeśli xkKx*,δ oraz Δk<δ~, to

xk+1=xk-Fxk+Δk-1Fxk+ϵk(10.2)

jest dobrze określony oraz

ek+1Cek2+Δkek+ϵk,(10.3)

gdzie ek=xk-x*.

Dowód

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.

Dowód

(Twierdzenia 10.2, o zbieżności uproszczonej metody Newtona.) Jeden krok uproszczonej metody Newtona

xk+1=xk-Fx0-1Fxk

możemy zapisać w języku twierdzenia o lokalnej stabilności metody Newtona, gdzie

Δk=Fx0-Fxk,ϵk=0.

Niech więc δ będzie dostatecznie małe tak, by dla xk zachodziło twierdzenie o lokalnej stabilności metody Newtona w kuli Kx*,δ. Dodatkowo załóżmy, że x0Kx*,δ. Wtedy

Δk=Fx0-FxkLx0-xkLx0-x*+xk-x*

i na mocy właśnie tw. o lokalnej stabilności,

ek+1C~ek2+Le0+ekekCe0ek.

Ponieważ z założenia e0<δ, to z powyższego wynika, że

ek+1Cδek

jeśli więc δ jest na tyle małe, by dodatkowo Cδ<1, to ciąg xk zawiera się w Kx*,δ oraz ek musi być zbieżny do zera przynajmniej liniowo.

10.2.3. Metoda z przybliżoną pochodną

Jak już wspominaliśmy, innym kłopotliwym momentem w realizacji metody Newtona jest wyznaczanie macierzy pochodnej. Opracowanie dokładnej formuły obliczania Fx może być żmudne, podatne na ludzkie pomyłki. Uzyskany wzór może być ciężki w implementacji i kosztowny w użyciu.

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.

Twierdzenie 10.4 (o różnicowej aproksymacji pochodnej kierunkowej)

Przyjmijmy, że są spełnione założenia standardowe. Niech x będzie ustalonym punktem w D i niech wRN. Niech hR będzie na tyle małe, by x+hwD. Wtedy

Fx+hw-Fxh-FxwL2w2h.

Twierdzenie to gwarantuje więc, że pochodną w kierunku wektora w można aproksymować ilorazem różnicowym

FxwFx+hw-Fxh

z błędem rzędu Oh.

Dowód

Twierdzenie jest prostą konsekwencją twierdzenia o wartości średniej i założenia lipschitzowskości pochodnej:

1hFx+hw-Fx=1h01F(x+thw)hwdt=01F(x)w+(F(x+thw)-F(x))wdt
=Fxw+01Fx+thw-Fxwdt.

Stąd

1hFx+hw-Fx-Fxw01Fx+thw-Fxwdt01thwwdt=L2w2h.

Z powyższego wynika pomysł na przybliżenie całej macierzy pochodnej ilorazami różnicowymi: wystarczy wziąć FxkAk, gdzie j-ta kolumna Ak, Akj, jest wyznaczona jako iloraz różnicowy

Aj=1hFx+hej-FxFxej.
Twierdzenie 10.5 (o zbieżności metody z pochodną przybliżoną ilorazami różnicowymi)

Przy standardowych założeniach, istnieją dodatnie δ i h (dostatecznie małe) takie, że jeśli hk jest ciągiem takim, że 0<hkh oraz x0Kx*,δ, to ciąg zdefiniowany wzorem

xk+1=xk-Ak-1Fxk,

w którym kolumny macierzy Ak zadane są ilorazami różnicowymi:

Akj=1hFxk+hkej-Fxk,j=1,,N,

jest dobrze określony i zbieżny przynajmniej liniowo do x*. Co więcej,

  • jeśli hk0, to xkx* superliniowo;

  • jeśli hkMxk-x* dla pewnej stałej M, to xkx* przynajmniej kwadratowo;

  • jeśli |hk|MF(xk dla pewnej stałej M, to xkx* przynajmniej kwadratowo.

Dowód

Dla wygody, dowód poprowadzimy w normie 1 — tzw. kolumnowej normie macierzowej (w przestrzeni skończenie wymiarowej i tak wszystkie normy są równoważne). Mamy więc

Ak1=maxjAkj1,

oraz

Ak-Fxk1=maxjAkj-Fxkej1.

Tymczasem, na mocy lematu o różnicowej aproksymacji pochodnej,

Akj-Fxkej1L2ej12hk=L2hk.

Oznaczmy Δk=Ak-Fxk, wtedy Δk1L2hk. Na mocy twierdzenia o lokalnej stabilności metody Newtona z (dla δ,h dostatecznie małych) mamy, że Ak jest nieosobliwa oraz zachodzi

ek+11Cek12+hkek1.

Stąd już wynika teza twierdzenia. Ostatni warunek kwadratowej zbieżności wynika z oszacowania residuum przez błąd,

Fxk12Fx*1ek1,

gdy tylko xk jest dostatecznie blisko x*.

10.2.4. Niedokładna metoda Newtona

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

Fxks=Fxk

mogłaby być, zwłaszcza w przypadku gdy N jest duże, metoda iteracyjna (mielibyśmy zatem do czynienia z iteracją wewnątrz iteracji). Na k-tym kroku metody Newtona moglibyśmy zatrzymywać wewnętrzną iterację stosując np. residualne kryterium stopu z parametrem wymuszającym ηk,

Fxk-FxksηkFxk.

Taką modyfikację metody Newtona nazywa się niedokładną metodą Newtona.

Twierdzenie 10.6 (o błędzie niedokładnej metody Newtona)

Przy standardowych założeniach, istnieją dodatnie stałe C i δ takie, że jeśli xkKx*,δ oraz s spełnia warunek

Fxks-FxkηkFxk,

to następna iteracja niedokładnej metody Newtona dana wzorem

xk+1=xk-s

spełnia

ek+1Cek+ηkek.
Dowód

Niech δ będzie na tyle małe, by zachodził lemat 9.2 o oszacowaniu funkcji i pochodnej, a także by zachodziło twierdzenie 9.3 o zbieżności metody Newtona z punktem startowym xk. Aby udowodnić twierdzenie, najpierw postaramy się wyłuskać związek pomiędzy naszą metodą, a prawdziwą metodą Newtona (o której już sporo wiemy). Mamy bowiem

xk+1=xk-s=xk-Fxk-1Fxk+Fxk-1Fxk-s=xk+1Newton+Fxk-1r,

gdzie r jest residuum rozwiązania równania na poprawkę,

r=Fxk-Fxks.

Stąd wynika, że

xk+1-x*=xk+1Newton-x*+Fxk-1r

i konsekwentnie

xk+1-x*xk+1Newton-x*+Fxk-1r.

Ponieważ na mocy twierdzenia o zbieżności metody Newtona mamy xk+1Newton-x*C~xk-x*2, to wystarczy oszacować ostatni człon nierówności. Z definicji r mamy

Fxk-1rFxk-1Fxk-Fxks2Fx*-1ηkFxk4condFx*ηkxk-x*.

(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 C w oszacowaniu błędu zależała od uwarunkowania Fx*, skąd moglibyśmy wysnuć wniosek, że jeśli Fx* jest źle uwarunkowana, to ηk należy brać patologicznie małe. W rzeczywistości nie jest aż tak źle i można osłabić założenia na ciąg ηk, ale pod warunkiem zmiany normy, w której badamy błąd, tak, by uwzględniać zachowanie się pochodnej: =F(x*) (zob. [9]).

Wniosek 10.1 (twierdzenie o zbieżności niedokładnej metody Newtona)

Przy standardowych założeniach, istnieją δ i η (dostatecznie małe) takie, że jeśli x0Kx*,δ oraz 0ηkη to niedokładna metoda Newtona z parametrem wymuszającym ηk jest zbieżna przynajmniej liniowo do x*. Ponadto,

  • jeśli ηk0, to zbieżność jest superliniowa;

  • jeśli ηkMηFxk dla pewnego ustalonego Mη, to zbieżność jest przynajmniej kwadratowa.

Ćwiczenie 10.6

Udowodnij powyższy wniosek.

Niedokładna metoda Newtona jest bardzo popularną metodą w przypadku, gdy N jest bardzo duże: wówczas trudno myśleć o sposobach rozwiązywania równania poprawki innych niż jakaś metoda iteracyjna. Dodatkowym plusem tej metody jest to, że znakomicie można ją łączyć z przybliżaniem pochodnej kierunkowej ilorazami różnicowymi; rzeczywiście, głównym składnikiem metody iteracyjnej jest mnożenie Fxkw, co można tanio przybliżać w sposób opisany w rozdziale 10.2.3. W ten sposób oszczędzamy na kilku polach na raz:

  • 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ść Fxk+hw;

  • ponieważ po kilku iteracjach zbliżamy się do rozwiązania, że xk+1xk, w ten sposób od razu dysponujemy dobrym przybliżeniem startowym dla iteracji wewnętrznej: w sprzyjających okolicznościach metody Kryłowa mogą z tego zrobić dodatkowy pożytek;

  • 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.

Przykład 10.1 (Numeryczne eksperymenty z wariantami metody Newtona dla równania Allena–Cahna)

Porównamy jakość pracy kilku metod:

  • klasycznej metody Newtona

  • uproszczonej metody Newtona

  • metody Szamańskiego o m=4 krokach

  • metody Newtona z pochodną przybliżoną ilorazami różnicowymi (ze stałym, ale bardzo małym krokiem, hϵ, gdzie ϵ to precyzja arytmetyki.

Do porównania wybierzemy:

  • wykresy uzyskanego rozwiązania, ux, dla każdej z metod

  • wykresy residuum, Fux, dla każdej z metod

  • historię zbieżności metody, Fuj2

  • 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.

Ćwiczenie 10.7

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 δ=1,

  • nieco wzmocnisz nieliniowość, biorąc δ=15,

  • zwiększysz rozmiar zadania N do 400,

  • zmniejszysz N do 20,

  • zmniejszysz tolerancję błędu do 10-12.

Wskazówka: 

Zdaje się, że dla N=20 mamy niejednoznaczność rozwiązania? Jak to zweryfikować?

Ćwiczenie 10.8

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?

Przykład 10.2

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.

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.