Zajmiemy się teraz nową, trudniejszą klasą zadań: metodami rozwiązywania układów równań nieliniowych
gdzie
.
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,
: 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.
Rozważmy ciąg
taki, że
gdy
.
Powiemy, że
wykładniczo z rzędem co najmniej
, jeśli
| (9.1) |
Jeśli wykładnik zbieżności
, mówimy wtedy o zbieżności kwadratowej; gdy
, 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:
Powiemy, że
przynajmniej liniowo, jeśli
Jednak gdy
, 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):
Powiemy, że
superliniowo, jeśli
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.
Powiemy, że
r–wykładniczo/r–liniowo/r–superliniowo, jeśli istnieje ciąg
taki, że
oraz
, 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.
Wskaźnik efektywności
metody iteracyjnej, zbieżnej wykładniczo z wykładnikiem
, której jedna iteracja kosztuje
flopów, definiujemy jako [17]
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
obu metod, porównać uzyskane wykładniki redukcji błędu. Jeśli bowiem metoda jest rzędu
, to błąd początkowy po
iteracjach zostanie zredukowany do poziomu
. Ponieważ całkowity koszt
iteracji wynosi
, to
.
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.
Rozważmy równanie
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,
gdzie
jest operatorem liniowym zdefiniowanym w przykładzie 5.2, natomiast dla zadanej macierzy ![]()
(Przypomnijmy, że dokonujemy tutaj utożsamienia macierzy
z wektorem długości
, ktorego elementami są kolejne wiersze macierzy.)
Rozważmy równanie
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ą
,
![]() |
gdzie
jest operatorem liniowym zdefiniowanym w przykładzie 5.2, a
jest zadane jak w poprzednim przykładzie. (Przypomnijmy, że dokonujemy tutaj utożsamienia macierzy
z wektorem długości
, ktorego elementami są kolejne wiersze macierzy.)
Zostawiając po lewej stronie tylko wyrazy z niewiadomymi, dostajemy równanie
a więc takie, w którym — dla dostatecznie małych
— część nieliniowa staje się mała w porównaniu z
.
Wiele równań nieliniowych można w naturalny sposób sformułować jako zagadnienie punktu stałego,
dla którego najprostszą metodą iteracyjną jest doskonale nam znana metoda Banacha (iteracji prostej),
Przypomnijmy (bez dowodu) twierdzenie o zbieżności tej metody:
Niech
będzie niepusty, ograniczony i domknięty, i niech
będzie kontrakcją, tzn.
Wtedy
ma dokładnie jeden punkt stały
oraz dla dowolnego
iteracja
jest zbieżna do
, przy czym dla każdego
,
Z powyższego twierdzenia wynika więc, że iteracja Banacha jest zbieżna przynajmniej liniowo ze współczynnikiem redukcji błędu
.
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.
do przybliżonego rozwiązania układu równań różniczkowych zwyczajnych
musimy dla znanego
znaleźć
jako punkt stały odwzorowania
Jeśli
jest lipschitzowska ze stałą
w normie
ze względu na drugi argument (por. twierdzenie Picarda–Lindelöfa), to
zatem
jet kontrakcją na
, gdy
, czyli gdy krok czasowy
schematu Eulera jest dostatecznie mały względem
.
Czasami wygodniej jest skorzystać z ,,lokalnej” wersji twierdzenia o zbieżności metody Banacha:
Niech
, gdzie
jest otwarty i niepusty, i niech dla zadanego
istnieje kula
taka, że
oraz
jest na
kontrakcją ze stałą
.
Jeśli dodatkowo
, to w
istnieje dokładnie jeden punkt stały
odwzorowania
, a metoda iteracji prostej jest doń zbieżna przynajmniej liniowo ze stałą redukcji błędu
.
Wystarczy wykazać, że
i skorzystać z poprzedniego twierdzenia. Na mocy warunku kontrakcji w
, dla
mamy
zatem faktycznie
.
W przypadku równania skalarnego,
, metoda stycznych (zwana też metodą Newtona) rozwiązywania równania
jest zadana wzorem
Przez analogię, gdy
można więc byłoby zdefiniować wielowymiarową metodę Newtona wzorem
| (9.2) |
gdzie
oznaczałoby macierz pochodnej
w punkcie
. 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!
Wielowymiarową metodę Newtona i różne jej warianty będziemy analizowali przy pewnych dość ogólnych założeniach dotyczących funkcji
. W skrócie, będziemy je nazywali za [9] założeniami standardowymi:
Zbiór
jest otwarty i niepusty, a
jest różniczkowalna w
.
Istnieje rozwiązanie
:
Pochodna
jest lipschitzowska ze stałą
:
przy czym norma po lewej stronie nierówności jest normą operatorową indukowaną przez normę wektorową w
obecną po prawej stronie, tzn. dla liniowego operatora
,
Macierz pochodnej w rozwiązaniu,
, jest nieosobliwa.
Przez
będziemy oznaczali kulę otwartą o środku w
i promieniu
,
Niech będą spełnione założenia standardowe i niech
będzie otwartą kulą w
. Wtedy dla każdego
,
![]() |
Ustalmy
. Ponieważ
jest wypukły, to
dla
i dla
jest dobrze określona funkcja
.
Na mocy założeń standardowych
jest ciągła na
, zatem także
jest ciągła na
(i całkowalna). Teza lematu wynika więc z podstawowego twierdzenia rachunku różniczkowego, że
![]() |
Przy założeniach standardowych, istnieje dostatecznie małe
takie, że dla dowolnego
zachodzi:
,
,
,
Wykaż, że przy założeniach standardowych
musi być izolowanym rozwiązaniem równania
.
Z lematu 9.2 o oszacowaniu funkcji, istnieje otoczenie
takie, że
Jeśli więc dla
leżącego w tym otoczeniu
, to znaczyłoby to, że
, a więc
. Czyli w
nie ma innych rozwiązań niż
.
Przy standardowych założeniach, istnieją
(dostatecznie duże) i
(dostatecznie małe) takie, że jeśli
, to ciąg
zadany metodą Newtona (9.2) jest dobrze określony,
, oraz
. Co więcej, ciąg ten jest zbieżny kwadratowo:
| (9.3) |
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
mamy ze wzoru Newtona
Na mocy założeń standardowych i lematu o wartości średniej,
![]() |
zatem
![]() |
Korzystając z lipschitzowskości pochodnej i raz jeszcze z lematu 9.2 o oszacowaniu pochodnej, dostajemy
![]() |
|||
![]() |
Stąd wynika, że jeśli
oraz
, to także
, a więc ciąg
jest dobrze określony. Co więcej, gdy
to
a więc ciąg
jest zbieżny (co najmniej liniowo — a w rzeczywistości co najmniej kwadratowo) do zera.
Wykaż, że jeśli w założeniach standardowych zastąpić warunek lipschitzowskości pochodnej warunkiem
(czyli założyć, że
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
.
Wystarczy powielić dowód twierdzenia przy standardowych założeniach, modyfikując oszacowanie
.
Jak, przy założeniach standardowych, oszacować normę błędu,
, przez normę residuum,
?
Implementując metodę Newtona, nie będziemy rzecz jasna nigdy explicite wyznaczali macierzy odwrotnej
, tylko rozwiązywali układ równań z macierzą
— 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:
| function Newton(x, F, stop) |
| while not stop do begin |
| oblicz macierz pochodnej |
| rozwiąż |
| x = x - s; |
| end |
| return(x); |
Macierzowe zadanie własne dla symetrycznej macierzy
, znajdowania pary
spełniającej
można potraktować jako kwadratowe równanie nieliniowe dla
danej na przykład wzorem
Zdefiniuj metodę Newtona dla
. Wykaż, że jeśli
jest jednokrotną wartością własną, to metoda Newtona dla
będzie lokalnie zbieżna kwadratowo.
Mamy
Zatem metodę Newtona można — jeśli tylko
nieosobliwa — zaimplementować, korzystając na przykład ze wzoru Shermana–Morrisona (por. ćwiczenie 5.23).
Zauważmy, że
jest funkcją gładką, jej pochodna jest lipschitzowska ze stałą Lipschitza równą… no właśnie, ile? Mamy
zatem
A więc — w normie indukowanej normą
—
jest lipschitzowska ze stałą równą 1.
Pozostaje jeszcze sprawdzić, czy w rozwiązaniu — parze własnej
— macierz pochodnej jest nieosobliwa. Ponieważ dla macierzy symetrycznej
, gdzie
jest macierzą diagonalną z wartościami własnymi macierzy
, a kolumny macierzy ortogonalnej
są wektorami własnymi odpowiadającymi tym wartościom własnym, to
Niech
. Wtedy
dla pewnej stałej
. Mamy więc, że
jest macierzą diagonalną, która na diagonali ma zero jedynie na
-tej pozycji (na mocy założenia, że
jest pojedynczą wartością własną) oraz
, gdzie
oznacza
-ty wektor jednostkowy. Nietrudno sprawdzić wprost, że taka macierz jest pełnego rzędu.
Niech
będzie macierzą nieosobliwą i rozważmy iterację
startującą z macierzy kwadratowej
. Wykaż, że jeśli
, to
gdy
.
Wykaż, że
, a metoda jest w rzeczywistości metodą Newtona zastosowaną do równania macierzowego
.
Przypomnijmy (zob. przykład 9.1), że równanie nieliniowe, które nas interesuje w przypadku stacjonarnym ma postać
a w przypadku ewolucyjnym —
Oba przypadki możemy zatem ogarnąć, definiując funkcję
która dla
i
daje nam przypadek ewolucyjny, a dla
i
redukuje się do przypadku stacjonarnego równania Allena–Cahna.
Wystarczy więc tylko wyznaczyć pochodną
.
Ponieważ (traktując
jako funkcję na
)
to
![]() |
zatem ostatecznie
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,
gdzie
oraz
.
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.
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.