Zagadnienia

9. Układy równań nieliniowych. Metoda Newtona

Zajmiemy się teraz nową, trudniejszą klasą zadań: metodami rozwiązywania układów równań nieliniowych

Fx=0,

gdzie F:RNDRN.

W matematyce stosowanej bardzo wiele modeli zyskuje na realizmie, gdy uwzględnić w nich zjawiska nieliniowe. Takie modele są jednak znacznie trudniejsze — zarówno w analizie, jak i w komputerowych symulacjach. Nieustanny wzrost mocy obliczeniowej komputerów, jaki obserwujemy w ciągu ostatnich kilkudziesięciu lat powoduje, że rozwiązywanie dużych układów nawet silnie nieliniowych równań stało się możliwe nawet dla posiadaczy ,,zwykłych” komputerów osobistych.

Od razu zauważmy, że już na poziomie matematycznej poprawności tego zadania możemy napotkać kłopoty, albowiem to zadanie może nie mieć rozwiązań, może mieć dokładnie jedno rozwiązanie, albo skończenie wiele rozwiązań, albo nieskończenie wiele izolowanych rozwiązań, albo… i tak dalej, i tak dalej.

Aby więc szukać jakiegokolwiek rozwiązania powyższego równania, musimy najpierw mieć pewność, że ono istnieje. Nie będziemy się tą kwestią tu zajmować, traktując ją jako domenę matematyki czystej, bez numerycznego zacięcia.

Z kursu Matematyki obliczeniowej I znamy kilka metod rozwiązywania nieliniowego równania skalarnego, fx=0: metodę bisekcji, stycznych, siecznych, …. Okazuje się, że niektóre z nich da się w mniej lub bardziej naturalny sposób uogólnić na przypadek wielowymiarowy. W niniejszym rozdziale wyjaśnimy, jak metodę stycznych (Newtona) uogólnić na przypadek wielowymiarowy.

9.1. Szybkość zbieżności

Rozważmy ciąg xkRN taki, że xkx*RN gdy k.

Definicja 9.1 (Zbieżność wykładnicza)

Powiemy, że xkx* wykładniczo z rzędem co najmniej q>1, jeśli

C0KNxk+1-x*Cxk-x*qkK.(9.1)

Jeśli wykładnik zbieżności q=2, mówimy wtedy o zbieżności kwadratowej; gdy q=3, zbieżność nazywamy sześcienną (albo: kubiczną). W praktyce, zbieżność kwadratową uznaje się za satysfakcjonująco szybką, a zbieżność kubiczną — za bardzo szybką. Jednak nie zawsze taką szybkość zbieżności można uzyskać; rozsądnym praktycznym minimum jest zbieżność liniowa, w której błąd w każdym kroku maleje o stały czynnik:

Definicja 9.2 (Zbieżność liniowa)

Powiemy, że xkx* przynajmniej liniowo, jeśli

0α1KNxk+1-x*αxk-x*kK.

Jednak gdy α1, zbieżność liniowa może być w praktyce nieakceptowalnie wolna.

Oczywiście powyższe nie wyczerpuje wszystkich możliwych szybkości zbieżności. Mianowicie, ciąg może być zbieżny szybciej niż liniowo (choć niekoniecznie zaraz kwadratowo):

Definicja 9.3 (Zbieżność superliniowa)

Powiemy, że xkx* superliniowo, jeśli

lim supkxk+1-x*xk-x*=0.

Czasem trudno o samym ciągu powiedzieć, jaki ma wykładnik zbieżności, natomiast łatwiej jest wskazać ciąg o znanym wykładniku zbieżności, który majoryzuje błąd popełniany na każdej iteracji.

Definicja 9.4 (r–zbieżność)

Powiemy, że xkx* r–wykładniczo/r–liniowo/r–superliniowo, jeśli istnieje ciąg ξkR taki, że

xk-x*ξk

oraz ξk0, odpowiednio, wykładniczo/liniowo/superliniowo.

Aby móc porównywać (jakościowo) różne metody iteracyjne rozwiązywania równań nieliniowych — o różnych kosztach jednej iteracji i o różnych wykładnikach zbieżności — wprowadza się pojęcie wskaźnika efektywności metody.

Definicja 9.5 (Efektywność metody iteracyjnej)

Wskaźnik efektywności E metody iteracyjnej, zbieżnej wykładniczo z wykładnikiem q, której jedna iteracja kosztuje m flopów, definiujemy jako [17]

E=q1/m.

Wskaźnik efektywności metody służy szybkiemu jakościowemu porównywaniu metod. Motywacją dla takiej definicji jest wymaganie, by przy zadanym (tym samym) całkowitym koszcie iteracji W obu metod, porównać uzyskane wykładniki redukcji błędu. Jeśli bowiem metoda jest rzędu q>1, to błąd początkowy po k iteracjach zostanie zredukowany do poziomu x0-x*qk. Ponieważ całkowity koszt k iteracji wynosi W=km, to qk=qW/m=q1/mW=EW. Definiując w ten sposób efektywność metody iteracyjnej, czynimy jednak pewne oproszczenie, polegające na tym, że pomijamy wpływ stałych na redukcję błędu (patrz oszacowanie (9.1)). Z tego powodu na przykład (formalnie) każda metoda zbieżna liniowo formalnie miałaby taką samą efektywność — równą 1 — choć oczywiście realna sprawność różnych metod liniowych może być różna, m.in. właśnie w zależności od stałej redukcji błędu.

Rozważmy dwa przykłady dużych układów równań nieliniowych, motywowanych — podobnie jak już kilka razy wcześniej w trakcie tego przedmiotu — zadaniami z równań różniczkowych cząstkowych.

Przykład 9.1 (stacjonarne równanie Allena–Cahna)

Rozważmy równanie

-Δu+δu1-u2=gx,yΩ,
u=0na Ω.

Dla uproszczenia przyjmiemy, że Ω jest kwadratem jednostkowym. Wprowadzając dyskretyzację tego równania najprostszą11Po raz kolejny przypomnijmy, że (z wyjątkiem trywialnych przypadków) najprostsze metody dyskretyzacji, choć bardzo ułatwiają programowanie, to jednak są zwykle najmniej efektywnym sposobem rozwiązywania równań różniczkowych, jeśli wziąć pod uwagę koszt obliczeniowy potrzebny do uzyskania satysfakcjonującego przybliżenia rozwiązania. metodą — metodą różnic skończonych na jednorodnej siatce — patrz przykład 5.2 — otrzymujemy, po uwzględnieniu warunku brzegowego, nieliniowy układ równań algebraicznych,

PNUN+fUN=0,

gdzie PN jest operatorem liniowym zdefiniowanym w przykładzie 5.2, natomiast dla zadanej macierzy URN×N

fUij=δuij1-uij2-gij.

(Przypomnijmy, że dokonujemy tutaj utożsamienia macierzy N×N z wektorem długości N2, ktorego elementami są kolejne wiersze macierzy.)

Przykład 9.2 (ewolucyjne równanie Allena–Cahna)

Rozważmy równanie

ut-Δu+δu1-u2=gx,yΩ,
u=0na Ω.

Dla uproszczenia przyjmiemy, że Ω jest kwadratem jednostkowym. Wprowadzając dyskretyzację tego równania najprostszą metodą — metodą różnic skończonych na jednorodnej siatce po zmiennej przestrzennej oraz niejawnym schematem Eulera po zmiennej czasowej (patrz wykład z Numerycznych równań różniczkowych, otrzymujemy, po uwzględnieniu warunku brzegowego, nieliniowy układ równań algebraicznych z niewiadomą UNk,

UNk-UNk-1τ+PNUNk+fUNk=0,

gdzie PN jest operatorem liniowym zdefiniowanym w przykładzie 5.2, a f jest zadane jak w poprzednim przykładzie. (Przypomnijmy, że dokonujemy tutaj utożsamienia macierzy N×N z wektorem długości N2, ktorego elementami są kolejne wiersze macierzy.) Zostawiając po lewej stronie tylko wyrazy z niewiadomymi, dostajemy równanie

I+τPNUNk+τfUNk=UNk-1,

a więc takie, w którym — dla dostatecznie małych τ — część nieliniowa staje się mała w porównaniu z UN.

9.2. Metoda Banacha

Wiele równań nieliniowych można w naturalny sposób sformułować jako zagadnienie punktu stałego,

x=Φx,

dla którego najprostszą metodą iteracyjną jest doskonale nam znana metoda Banacha (iteracji prostej),

xk+1=Φxk.

Przypomnijmy (bez dowodu) twierdzenie o zbieżności tej metody:

Twierdzenie 9.1 (o zbieżności metody Banacha)

Niech DRN będzie niepusty, ograniczony i domknięty, i niech Φ:DD będzie kontrakcją, tzn.

γ<1Φx-Φyγx-yx,yD.

Wtedy Φ ma dokładnie jeden punkt stały x*=Φx*D oraz dla dowolnego x0D iteracja

xk+1=Φxk

jest zbieżna do x*, przy czym dla każdego k=0,1,,

xk+1-x*γxk-x*.

Z powyższego twierdzenia wynika więc, że iteracja Banacha jest zbieżna przynajmniej liniowo ze współczynnikiem redukcji błędu γ<1.

Przykład 9.3

Stosując niejawny schemat Eulera12Por. np. wykład z Numerycznych równań różniczkowych. Podobna metoda — pod nazwą metody łamanych Eulera — bywa wykorzystywana w dowodzie twierdzenia o istnieniu rozwiązania równania różniczkowego. Nas tutaj interesuje ona wyłącznie jako metoda numeryczna.

yn+1=yn+τFtn+1,yn+1

do przybliżonego rozwiązania układu równań różniczkowych zwyczajnych yt=Ft,yRN musimy dla znanego yn znaleźć yn+1 jako punkt stały odwzorowania

Φx=yn+τFtn+1,x.

Jeśli F jest lipschitzowska ze stałą L w normie ze względu na drugi argument (por. twierdzenie Picarda–Lindelöfa), to

Φx-Φy=τFx-FyτLx-yx,yRN,

zatem Φ jet kontrakcją na RN, gdy τL<1, czyli gdy krok czasowy τ schematu Eulera jest dostatecznie mały względem h.

Czasami wygodniej jest skorzystać z ,,lokalnej” wersji twierdzenia o zbieżności metody Banacha:

Twierdzenie 9.2 (o lokalnej zbieżności metody Banacha)

Niech Φ:RNDRN, gdzie D jest otwarty i niepusty, i niech dla zadanego x0D istnieje kula B=xRN:x-x0r taka, że BD oraz Φ jest na B kontrakcją ze stałą γ.

Jeśli dodatkowo x0-Φx01-γr, to w B istnieje dokładnie jeden punkt stały x*B odwzorowania Φ, a metoda iteracji prostej jest doń zbieżna przynajmniej liniowo ze stałą redukcji błędu γ.

Dowód

Wystarczy wykazać, że ΦBB i skorzystać z poprzedniego twierdzenia. Na mocy warunku kontrakcji w B, dla xB mamy

Φx-x0Φx-Φx0+Φx0-x0γx-x0+1-γrγr+1-γr=r,

zatem faktycznie ΦxB.

9.3. Metoda Newtona

W przypadku równania skalarnego, f:RR, metoda stycznych (zwana też metodą Newtona) rozwiązywania równania fx=0 jest zadana wzorem

xk+1=xk-fxkfxk.

Przez analogię, gdy F:RNDRN można więc byłoby zdefiniować wielowymiarową metodę Newtona wzorem

xk+1=xk-Fxk-1Fxk,(9.2)

gdzie Fxk oznaczałoby macierz pochodnej F w punkcie xk. Jak za chwilę się przekonamy, jest to rzeczywiście bardzo dobry pomysł, a tak określona metoda zachowuje (z zachowaniem właściwych proporcji) wszystkie cechy metody Newtona znane nam z przypadku skalarnego!

9.3.1. Analiza zbieżności metody Newtona

Wielowymiarową metodę Newtona i różne jej warianty będziemy analizowali przy pewnych dość ogólnych założeniach dotyczących funkcji F:RNDRN. W skrócie, będziemy je nazywali za [9] założeniami standardowymi:

  1. Zbiór D jest otwarty i niepusty, a F jest różniczkowalna w D.

  2. Istnieje rozwiązanie x*D:

    Fx*=0.
  3. Pochodna F:DLRN jest lipschitzowska ze stałą L:

    L>0Fx-FyLx-yx,yD,

    przy czym norma po lewej stronie nierówności jest normą operatorową indukowaną przez normę wektorową w RN obecną po prawej stronie, tzn. dla liniowego operatora A:RNRN,

    A=supx0Axx.
  4. Macierz pochodnej w rozwiązaniu, Fx*, jest nieosobliwa.

9.3.1.1. Lematy techniczne

Przez Kx*,δ będziemy oznaczali kulę otwartą o środku w x* i promieniu δ,

Kx*,δ=xRN:x-x*<δ.
Lemat 9.1 (użyteczna wersja twierdzenia o wartości średniej)

Niech będą spełnione założenia standardowe i niech K będzie otwartą kulą w D. Wtedy dla każdego x,yK,

Fy-Fx=01Fx+ty-xy-xdt.
Dowód

Ustalmy x,yK. Ponieważ KD jest wypukły, to x+ty-x dla t0,1 i dla t0,1 jest dobrze określona funkcja gt=Fx+ty-x.

Na mocy założeń standardowych F() jest ciągła na K¯, zatem także gt=Fx+ty-xy-x jest ciągła na 0,1 (i całkowalna). Teza lematu wynika więc z podstawowego twierdzenia rachunku różniczkowego, że

01gtdt=g1-g0.
Lemat 9.2 (o lokalnym oszacowaniu funkcji i pochodnej)

Przy założeniach standardowych, istnieje dostatecznie małe δ>0 takie, że dla dowolnego xKx*,δ zachodzi:

  1. Fx2Fx*,

  2. Fx-12Fx*-1,

  3. 12Fx*-1x-x*Fx2Fx*x-x*,

Ćwiczenie 9.1

Wykaż, że przy założeniach standardowych x* musi być izolowanym rozwiązaniem równania Fx=0.

Rozwiązanie: 

Z lematu 9.2 o oszacowaniu funkcji, istnieje otoczenie Ux* takie, że

12Fx*-1x-x*Fx.

Jeśli więc dla x~ leżącego w tym otoczeniu Fx~=0, to znaczyłoby to, że x~-x*0, a więc x~=x*. Czyli w U nie ma innych rozwiązań niż x*.

Twierdzenie 9.3 (o zbieżności metody Newtona)

Przy standardowych założeniach, istnieją C>0 (dostatecznie duże) i δ>0 (dostatecznie małe) takie, że jeśli x0Kx*,δ, to ciąg xk zadany metodą Newtona (9.2) jest dobrze określony, xkKx*,δ, oraz xkx*. Co więcej, ciąg ten jest zbieżny kwadratowo:

xk+1-x*Cxk-x*2kN.(9.3)
Dowód

Dowód będzie opierał się na wykazaniu oszacowania (9.3), pozostałe elementy tezy będą jego konsekwencją.

Na wstępie wybierzmy δ takie, by zachodził lemat 9.2 o oszacowaniu funkcji i pochodnej. Oznaczając ek=xk-x* mamy ze wzoru Newtona

ek+1=ek-Fxk-1Fxk.

Na mocy założeń standardowych i lematu o wartości średniej,

Fxk=Fxk-Fx*=01Fx*+txk-x*xk-x*dt=01Fx*+tekekdt,

zatem

ek+1=ek-Fxk-101Fx*+tekekdt=Fxk-101Fxk-Fx*+tekekdt.

Korzystając z lipschitzowskości pochodnej i raz jeszcze z lematu 9.2 o oszacowaniu pochodnej, dostajemy

ek+1Fxk-101Fxk-Fx*+tekekdt
2F(x*)-1Lek201(1-t)dt=:Cek2.

Stąd wynika, że jeśli Cδ<1 oraz xkKx*,δ, to także xk+1Kx*,δ, a więc ciąg xk jest dobrze określony. Co więcej, gdy Cδ<1 to

ek+1Cek2=CekekCδek,

a więc ciąg ek jest zbieżny (co najmniej liniowo — a w rzeczywistości co najmniej kwadratowo) do zera.

Ćwiczenie 9.2

Wykaż, że jeśli w założeniach standardowych zastąpić warunek lipschitzowskości pochodnej warunkiem

α0,1L>0Fx-FyLx-yαx,yD,

(czyli założyć, że F jest w swej dziedzinie hölderowska z wykładnikiem α), to metoda Newtona będzie lokalnie zbieżna z wykładnikiem zbieżności co najmniej 1+α.

Wskazówka: 

Wystarczy powielić dowód twierdzenia przy standardowych założeniach, modyfikując oszacowanie Fxk-Fx*+tek.

Ćwiczenie 9.3

Jak, przy założeniach standardowych, oszacować normę błędu, xk-x*, przez normę residuum, Fxk?

9.3.2. Implementacja metody Newtona

Implementując metodę Newtona, nie będziemy rzecz jasna nigdy explicite wyznaczali macierzy odwrotnej Fxk-1, tylko rozwiązywali układ równań z macierzą Fxk — tę jednak będziemy już musieli wyznaczyć. Pamiętając także o tym, że metoda Newtona jest metodą iteracyjną, stosując ją będziemy musieli zadbać o postawienie sensownego kryterium zatrzymania metody. Odkładając na bok pytanie o konkretny warunek stopu (por. rozdział 7.5), możemy schematycznie zapisać algorytm realizujący metodę Newtona w następujący sposób:

Schemat metody Newtona
function Newton(x, F, stop)
while not stop do begin
  oblicz macierz pochodnej Fx;
  rozwiąż Fxs=Fx;
  x = x - s;
end
return(x);
Ćwiczenie 9.4

Macierzowe zadanie własne dla symetrycznej macierzy ARN×N, znajdowania pary x,λRN×R spełniającej

Ax=λx,x0

można potraktować jako kwadratowe równanie nieliniowe dla F:RN+1RN+1 danej na przykład wzorem

Fx,λ=Ax-λx1-12xTx.

Zdefiniuj metodę Newtona dla F. Wykaż, że jeśli λ jest jednokrotną wartością własną, to metoda Newtona dla F będzie lokalnie zbieżna kwadratowo.

Rozwiązanie: 

Mamy

Fx,λ=A-λI-x-xT0.

Zatem metodę Newtona można — jeśli tylko Fx,λ nieosobliwa — zaimplementować, korzystając na przykład ze wzoru Shermana–Morrisona (por. ćwiczenie 5.23).

Zauważmy, że F jest funkcją gładką, jej pochodna jest lipschitzowska ze stałą Lipschitza równą… no właśnie, ile? Mamy

Fx,λ-Fy,μ=μ-λIy-xy-xT0,

zatem

Fx,λ-Fy,μ1=maxμ-λ+y-x1,,y-x1
y-x1+|μ-λ|=xλ-yμ1.

A więc — w normie indukowanej normą 1F jest lipschitzowska ze stałą równą 1.

Pozostaje jeszcze sprawdzić, czy w rozwiązaniu — parze własnej x*,λ* — macierz pochodnej jest nieosobliwa. Ponieważ dla macierzy symetrycznej A=QΛQT, gdzie Λ jest macierzą diagonalną z wartościami własnymi macierzy A, a kolumny macierzy ortogonalnej Q są wektorami własnymi odpowiadającymi tym wartościom własnym, to

QT1Fx,λQ1=Λ-λIQTxxTQ0.

Niech λ*=λi. Wtedy x*=Cqi dla pewnej stałej C. Mamy więc, że Λ-λ*I jest macierzą diagonalną, która na diagonali ma zero jedynie na i-tej pozycji (na mocy założenia, że λ* jest pojedynczą wartością własną) oraz QTx=Cei, gdzie ei oznacza i-ty wektor jednostkowy. Nietrudno sprawdzić wprost, że taka macierz jest pełnego rzędu.

Ćwiczenie 9.5 (Metoda Schultza wyznaczania macierzy odwrotnej, [15])

Niech A będzie macierzą nieosobliwą i rozważmy iterację

Xk+1=Xk+XkI-AXk,

startującą z macierzy kwadratowej X0. Wykaż, że jeśli I-AX0<1, to XkA-1 gdy k.

Wskazówka: 

Wykaż, że I-AXk+1=I-AXk2, a metoda jest w rzeczywistości metodą Newtona zastosowaną do równania macierzowego FX=A-X-1=0.

Przykład 9.4 (Metoda Newtona dla równania Allena–Cahna)

Przypomnijmy (zob. przykład 9.1), że równanie nieliniowe, które nas interesuje w przypadku stacjonarnym ma postać

FUN=PNUN+fUN,

a w przypadku ewolucyjnym —

FUN=UN+τPNUN+fUN.

Oba przypadki możemy zatem ogarnąć, definiując funkcję

Fτ,αUN=αUN+τPNUN+fUN,

która dla α=1 i τ1 daje nam przypadek ewolucyjny, a dla α=0 i τ=1 redukuje się do przypadku stacjonarnego równania Allena–Cahna.

Wystarczy więc tylko wyznaczyć pochodną Fτ,αUN. Ponieważ (traktując f jako funkcję na RN2)

fUNj=δuj1-uj2+gj,

to

fjukUN=1-3uj2,k=j,0,kj,

zatem ostatecznie

Fτ,αUNV=αI+τPN+diag1-3uj2V.
Przykład 9.5 (Numeryczne eksperymenty z metodą Newtona dla równania Allena–Cahna)

Dla uproszczenia, w eksperymentach numerycznych dotyczących działania różnych metod rozwiązywania równania Allena–Cahna opisywanego w przykładzie 9.1, będziemy rozważać dyskretyzacje jednowymiarowego stacjonarnego równania Allena–Cahna,

TNuj+δuj1-uj2=gj,j=1,,N,

gdzie δ=10 oraz gj=j/N+1.


Ćwiczenie 9.6

Przeprowadź podobne eksperymenty numeryczne dla równania Allena–Cahna w kwadracie, jak to opisywano we wcześniejszych przykładach.

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.