PKow: Różnice pomiędzy wersjami
m Zastępowanie tekstu – „,↵</math>” na „</math>,” |
|||
(Nie pokazano 7 wersji utworzonych przez 2 użytkowników) | |||
Linia 1: | Linia 1: | ||
== Flash == | |||
<flash>file=Test19.swf|width=750|height=530</flash> | |||
http://osilek.mimuw.edu.pl/images/2/29/Test19.swf | |||
===Metoda iteracji prostej Banacha=== | ===Metoda iteracji prostej Banacha=== | ||
 |  | ||
Linia 6: | Linia 10: | ||
Najpierw nasze równanie nieliniowe | Najpierw nasze równanie nieliniowe | ||
<center><math> | <center><math> | ||
f(x) = 0 | f(x) = 0 | ||
</math></center> | </math></center> | ||
przekształcamy (dobierając odpowiednią funkcję <math> | przekształcamy (dobierając odpowiednią funkcję <math>\phi</math>) do równania równoważnego | ||
(tzn. mającego te same rozwiązania) | (tzn. mającego te same rozwiązania) | ||
<center><math> | <center><math> | ||
x\,=\,\phi( x). | x\,=\,\phi( x). | ||
</math></center> | </math></center> | ||
Następnie, startując z pewnego przybliżenia | Następnie, startując z pewnego przybliżenia | ||
początkowego <math> | początkowego <math>x_0</math>, konstruujemy ciąg kolejnych | ||
przybliżeń <math> | przybliżeń <math>x_k</math> według wzoru | ||
<center><math> | <center><math>x_k\,=\,\phi( x_{k-1}),\qquad k\ge 1</math></center> | ||
</math></center> | |||
{{twierdzenie|Banacha, o zbieżności iteracji prostej|| | {{twierdzenie|Banacha, o zbieżności iteracji prostej|| | ||
Niech <math> | Niech <math>D_0</math> będzie domkniętym | ||
podzbiorem dziedziny <math> | podzbiorem dziedziny <math>D</math>, | ||
<center><math> | <center><math>\overline D_0\,=\,D_0\subset D, | ||
</math></center> | </math></center> | ||
w którym <math> | w którym <math>\phi</math> jest odwzorowaniem zwężającym. | ||
To znaczy, <math> | To znaczy, <math>\phi(D_0)\subset D_0</math>, oraz istnieje stała | ||
<math> | <math>0\le L<1</math> taka, że | ||
<center><math> | <center><math>\|\phi( x)-\phi( y)\|\,\le\,L\,\| x- y\|, | ||
\qquad\forall x, y\in D_0. | \qquad\forall x, y\in D_0. | ||
</math></center> | </math></center> | ||
Linia 42: | Linia 45: | ||
Wtedy równanie | Wtedy równanie | ||
<center><math> | <center><math> | ||
x\,=\,\phi( x). | x\,=\,\phi( x). | ||
</math></center> | </math></center> | ||
ma dokładnie jedno | ma dokładnie jedno | ||
rozwiązanie <math> | rozwiązanie <math>x^*</math>, oraz | ||
<center><math> | <center><math>x^*\,=\,\lim_{k\to\infty} x_k, | ||
</math></center> | </math></center> | ||
dla dowolnego przybliżenia początkowego | dla dowolnego przybliżenia początkowego | ||
<math> | <math>x_0\in D_0</math>. | ||
}} | }} | ||
Linia 65: | Linia 68: | ||
\end{matrix}</math></center> | \end{matrix}</math></center> | ||
dla <math> | dla <math>k\ge s</math> mamy | ||
<center><math>\begin{matrix} \| x_k- x_s\| | <center><math>\begin{matrix} \| x_k- x_s\| | ||
Linia 74: | Linia 77: | ||
\end{matrix}</math></center> | \end{matrix}</math></center> | ||
Ciąg <math> | Ciąg <math>\{ x_k\}_k</math> jest więc ciągiem Cauchy'ego. | ||
Stąd istnieje granica | Stąd istnieje granica | ||
<math> | <math>\vec\alpha=\lim_{k\to\infty} x_k</math>, która należy do | ||
<math> | <math>D_0</math>, wobec domkniętości tego zbioru. Ponieważ | ||
lipschitzowskość <math> | lipschitzowskość <math>\phi</math> implikuje jej ciągłość, | ||
mamy też | mamy też | ||
<center><math> | <center><math>\phi(\vec\alpha)\,=\,\phi\Big(\lim_{k\to\infty} x_k\Big) | ||
\,=\,\lim_{k\to\infty}\phi( x_k) | \,=\,\lim_{k\to\infty}\phi( x_k) | ||
\,=\,\lim_{k\to\infty} x_k\,=\,\vec\alpha | \,=\,\lim_{k\to\infty} x_k\,=\,\vec\alpha</math>,</center> | ||
</math></center> | |||
tzn. <math> | tzn. <math>\vec\alpha</math> jest punktem stałym odwzorowania <math>\phi</math>. | ||
Dla jednoznaczności zauważmy, że jeśliby istniał | Dla jednoznaczności zauważmy, że jeśliby istniał | ||
drugi, różny od <math> | drugi, różny od <math>\vec\alpha</math>, punkt stały <math>\vec\beta</math>, | ||
to mielibyśmy | to mielibyśmy | ||
<center><math> | <center><math>\|\vec\alpha-\vec\beta\|\,=\, | ||
\|\phi(\vec\alpha)-\phi(\vec\beta)\| | \|\phi(\vec\alpha)-\phi(\vec\beta)\| | ||
\,\le\,L\,\|\vec\alpha-\vec\beta\|. | \,\le\,L\,\|\vec\alpha-\vec\beta\|. | ||
</math></center> | </math></center> | ||
Stąd <math> | Stąd <math>1<L</math>, co jest sprzeczne z założeniem, że | ||
<math> | <math>\phi</math> jest zwężająca. }} | ||
Z powyższych rozważań otrzymujemy natychmiastowy | Z powyższych rozważań otrzymujemy natychmiastowy | ||
Linia 105: | Linia 107: | ||
Przy założeniach [[twit|Uzupe�nij: twierdzenia Banacha]], | Przy założeniach [[twit|Uzupe�nij: twierdzenia Banacha]], | ||
metoda iteracji prostych jest zbieżna co | metoda iteracji prostych jest zbieżna co | ||
najmniej liniowo z ilorazem <math> | najmniej liniowo z ilorazem <math>L</math>, tzn. | ||
<center><math> | <center><math>\| x_k- x^*\|\,\le\,L^k\,\| x_0- x^*\|</math></center> | ||
</math></center> | |||
}} | }} | ||
Linia 116: | Linia 117: | ||
równanie skalarne: | równanie skalarne: | ||
<center><math> | <center><math> | ||
x\,=\,\cos(x), \qquad \mbox{dla} \qquad x\in D= R. | x\,=\,\cos(x), \qquad \mbox{dla} \qquad x\in D= R. | ||
</math></center> | </math></center> | ||
W tym przypadku <math> | W tym przypadku <math>\phi(x)=\cos(x)</math>. Zauważamy, że w | ||
przedziale <math> | przedziale <math>[0,1]</math> funkcja <math>\phi</math> jest zwężająca ze | ||
stałą | stałą | ||
<center><math> | <center><math>L\,=\,\max_{0\le x\le 1}|\cos'(x)|\,=\,\sin(1)\,<\,1</math></center> | ||
</math></center> | |||
Stąd istnieje dokładnie jedno rozwiązanie naszego równania | Stąd istnieje dokładnie jedno rozwiązanie naszego równania | ||
w przedziale <math> | w przedziale <math>[0,1]</math>. Rozwiązanie to może | ||
być aproksymowane z dowolnie małym błędem przy pomocy | być aproksymowane z dowolnie małym błędem przy pomocy | ||
iteracji prostych, startując z dowolnego przybliżenia | iteracji prostych, startując z dowolnego przybliżenia | ||
początkowego <math> | początkowego <math>x_0\in [0,1]</math>. | ||
}} | }} | ||
Zaletą iteracji prostych jest fakt, że zbieżność | Zaletą iteracji prostych jest fakt, że zbieżność | ||
nie zależy od wymiaru <math> | nie zależy od wymiaru <math>n</math> zadania, ale tylko od stałej | ||
Lipschitza <math> | Lipschitza <math>L</math> (jednak w praktyce czasem sama stała Lipschitza może zależeć od | ||
wymiaru zadania...). Metoda Banacha ma szczególne zastosowanie w | wymiaru zadania...). Metoda Banacha ma szczególne zastosowanie w | ||
przypadku, gdy funkcja <math> | przypadku, gdy funkcja <math>\phi</math> jest zwężająca na całym | ||
zbiorze <math> | zbiorze <math>D</math>, tzn. <math>D_0=D</math>. Jeśli ponadto <math>D</math> ma | ||
skończoną średnicę <math> | skończoną średnicę <math>\mbox{diam} (D)</math>, to dla | ||
osiągnięcia <math> | osiągnięcia <math>\epsilon</math>-aproksymacji zera funkcji <math>f</math> | ||
wystarczy wykonać | wystarczy wykonać | ||
<center><math> | <center><math>k\,=\,k(\epsilon)\,=\,\Big\lceil\frac | ||
{\log(\| x_0- x^*\|/\epsilon)}{\log(1/L)}\Big\rceil | {\log(\| x_0- x^*\|/\epsilon)}{\log(1/L)}\Big\rceil | ||
\,=\,\Big\lceil\frac | \,=\,\Big\lceil\frac | ||
Linia 150: | Linia 150: | ||
</math></center> | </math></center> | ||
iteracji, niezależnie od <math> | iteracji, niezależnie od <math>x_0</math>. Metody zbieżne dla | ||
dowolnego przybliżenia początkowego, nazywamy | dowolnego przybliżenia początkowego, nazywamy | ||
''zbieżnymi globalnie''. Obie przedstawione dotychczas metody: bisekcji i | ''zbieżnymi globalnie''. Obie przedstawione dotychczas metody: bisekcji i | ||
Linia 177: | Linia 177: | ||
<div class="exercise"> | <div class="exercise"> | ||
Spróbuj obniżyć koszt wyznaczania <math> | Spróbuj obniżyć koszt wyznaczania <math>\exp(x)</math> dla dużych <math>x</math>! | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka </span><div class="mw-collapsible-content" style="display:none"> | <div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka </span><div class="mw-collapsible-content" style="display:none"> | ||
<div style="font-size:smaller; background-color:#efe"> Rzecz w tym, że dla dużych <math> | <div style="font-size:smaller; background-color:#efe"> Rzecz w tym, że dla dużych <math>x</math>, trzeba wziąć bardzo dużo wyrazów w szeregu | ||
Taylora. Czy można tak wykombinować, by w rezultacie wziąć ich mniej? </div> | Taylora. Czy można tak wykombinować, by w rezultacie wziąć ich mniej? </div> | ||
</div></div> | </div></div> | ||
Linia 188: | Linia 188: | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none"><div style="margin-left:1em"> | <div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none"><div style="margin-left:1em"> | ||
Bez zmieniejszenia ogólności, załóżmy, że <math> | Bez zmieniejszenia ogólności, załóżmy, że <math>x\geq 0</math>. | ||
Jeśli <math> | Jeśli <math>x = k + t</math>, gdzie <math>t \in [0,1)</math>, a <math>k</math> jest całkowite, to oczywiście | ||
<center><math> | <center><math> | ||
e^x = e^{k+t} = e^k e^t = e^k \exp(t) | e^x = e^{k+t} = e^k e^t = e^k \exp(t)</math></center> | ||
</math></center> | |||
Tak więc zadanie redukuje się do wyznaczenia <math> | Tak więc zadanie redukuje się do wyznaczenia <math>\exp(t)</math> dla ''małego'' <math>t</math> oraz | ||
do co najwyżej <math> | do co najwyżej <math>k</math> dodatkowych mnożeń potrzebnych do wyznaczenia całkowitej | ||
potęgi <math> | potęgi <math>e^k</math> (ile mnożeń ''naprawdę'' wystarczy?). Pamiętaj, przyjęliśmy, że | ||
znamy reprezentację numeryczną liczby <math> | znamy reprezentację numeryczną liczby <math>e</math>. | ||
<div class="code" style="background-color:#e8e8e8; padding:1em"><pre> | <div class="code" style="background-color:#e8e8e8; padding:1em"><pre> |
Aktualna wersja na dzień 21:48, 11 wrz 2023
Flash
<flash>file=Test19.swf|width=750|height=530</flash> http://osilek.mimuw.edu.pl/images/2/29/Test19.swf
Metoda iteracji prostej Banacha
 Zupełnie inne, i jak się okaże --- przy odrobinie sprytu bardzo skuteczne --- podejście do wyznaczania miejsca zerowego jest oparte na metodzie Banacha.
Najpierw nasze równanie nieliniowe
przekształcamy (dobierając odpowiednią funkcję ) do równania równoważnego (tzn. mającego te same rozwiązania)
Następnie, startując z pewnego przybliżenia początkowego , konstruujemy ciąg kolejnych przybliżeń według wzoru
Twierdzenie Banacha, o zbieżności iteracji prostej
Niech będzie domkniętym podzbiorem dziedziny ,
w którym jest odwzorowaniem zwężającym. To znaczy, , oraz istnieje stała taka, że
Wtedy równanie
ma dokładnie jedno rozwiązanie , oraz
dla dowolnego przybliżenia początkowego .
Dowód
Wobec
dla mamy
Ciąg jest więc ciągiem Cauchy'ego. Stąd istnieje granica , która należy do , wobec domkniętości tego zbioru. Ponieważ lipschitzowskość implikuje jej ciągłość, mamy też
tzn. jest punktem stałym odwzorowania . Dla jednoznaczności zauważmy, że jeśliby istniał drugi, różny od , punkt stały , to mielibyśmy
Stąd , co jest sprzeczne z założeniem, że
jest zwężająca.
Z powyższych rozważań otrzymujemy natychmiastowy wniosek dotyczący zbieżności iteracji prostych.
Wniosek
Przy założeniach Uzupe�nij: twierdzenia Banacha, metoda iteracji prostych jest zbieżna co najmniej liniowo z ilorazem , tzn.
Przykład
Dla ilustracji, rozpatrzmy natępujące proste równanie skalarne:
W tym przypadku . Zauważamy, że w przedziale funkcja jest zwężająca ze stałą
Stąd istnieje dokładnie jedno rozwiązanie naszego równania w przedziale . Rozwiązanie to może być aproksymowane z dowolnie małym błędem przy pomocy iteracji prostych, startując z dowolnego przybliżenia początkowego .
Zaletą iteracji prostych jest fakt, że zbieżność nie zależy od wymiaru zadania, ale tylko od stałej Lipschitza (jednak w praktyce czasem sama stała Lipschitza może zależeć od wymiaru zadania...). Metoda Banacha ma szczególne zastosowanie w przypadku, gdy funkcja jest zwężająca na całym zbiorze , tzn. . Jeśli ponadto ma skończoną średnicę , to dla osiągnięcia -aproksymacji zera funkcji wystarczy wykonać
iteracji, niezależnie od . Metody zbieżne dla dowolnego przybliżenia początkowego, nazywamy zbieżnymi globalnie. Obie przedstawione dotychczas metody: bisekcji i Banacha, przy rozsądnych założeniach, są zbieżne globalnie.
Okazuje się, że metoda iteracji prostej może być --- w bardzo szczególnych przypadkach --- zbieżna szybciej niż liniowo. Z taką sytuacją będziemy mieli, gdy korzystać będziemy z metody Newtona.
Wyznaczanie wektorów i wartości własnych
Przykład Moj przykład
Algorytm Nie robiący nic
Leż




Ćwiczenie: Ciag dalszy
Spróbuj obniżyć koszt wyznaczania dla dużych !