PKow: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Przykry (dyskusja | edycje)
Przemo (dyskusja | edycje)
Linia 1: Linia 1:
===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
<center><math>\displaystyle
f(x) = 0
</math></center>
przekształcamy (dobierając odpowiednią funkcję <math>\displaystyle \phi</math>) do równania równoważnego
(tzn. mającego te same rozwiązania)
<center><math>\displaystyle
  x\,=\,\phi( x).
</math></center>
Następnie, startując z pewnego przybliżenia
początkowego <math>\displaystyle  x_0</math>, konstruujemy ciąg kolejnych
przybliżeń <math>\displaystyle  x_k</math> według wzoru
<center><math>\displaystyle x_k\,=\,\phi( x_{k-1}),\qquad k\ge 1.
</math></center>
{{twierdzenie|Banacha, o zbieżności iteracji prostej||
Niech <math>\displaystyle D_0</math> będzie domkniętym
podzbiorem dziedziny <math>\displaystyle D</math>,
<center><math>\displaystyle \overline D_0\,=\,D_0\subset D,
</math></center>
w którym <math>\displaystyle \phi</math> jest odwzorowaniem zwężającym.
To znaczy, <math>\displaystyle \phi(D_0)\subset D_0</math>, oraz istnieje stała
<math>\displaystyle 0\le L<1</math> taka, że
<center><math>\displaystyle \|\phi( x)-\phi( y)\|\,\le\,L\,\| x- y\|,
    \qquad\forall x, y\in D_0. 
</math></center>
Wtedy równanie
<center><math>\displaystyle
  x\,=\,\phi( x).
</math></center>
ma dokładnie jedno
rozwiązanie <math>\displaystyle  x^*</math>, oraz
<center><math>\displaystyle x^*\,=\,\lim_{k\to\infty} x_k,
</math></center>
dla dowolnego przybliżenia początkowego
<math>\displaystyle  x_0\in D_0</math>.
}}
{{dowod|||
Wobec
<center><math>\begin{matrix} \| x_k- x_{k-1}\| & = &
  \|\phi( x_{k-1})-\phi( x_{k-2})\|
  & \le & L\| x_{k-1}- x_{k-2}\| \\
\ &\le& \cdots\;&\le&\;L^{k-1}\| x_1- x_0\|,
\end{matrix}</math></center>
dla <math>\displaystyle k\ge s</math> mamy
<center><math>\begin{matrix}  \| x_k- x_s\|
  & \le & \sum_{j=s+1}^k\| x_j- x_{j-1}\| 
    & \le & \sum_{j=s+1}^k L^{j-1}\| x_1- x_0\|
  & = & L^s(1+L+\cdots+L^{k-s-1})\| x_1- x_0\| \\ \
    & \le & \frac{L^s}{1-L}\| x_1- x_0\|.
\end{matrix}</math></center>
Ciąg <math>\displaystyle \{ x_k\}_k</math> jest więc ciągiem Cauchy'ego.
Stąd istnieje granica
<math>\displaystyle \vec\alpha=\lim_{k\to\infty} x_k</math>, która należy do
<math>\displaystyle D_0</math>, wobec domkniętości tego zbioru. Ponieważ
lipschitzowskość <math>\displaystyle \phi</math> implikuje jej ciągłość,
mamy też 
<center><math>\displaystyle \phi(\vec\alpha)\,=\,\phi\Big(\lim_{k\to\infty} x_k\Big)
  \,=\,\lim_{k\to\infty}\phi( x_k)
  \,=\,\lim_{k\to\infty} x_k\,=\,\vec\alpha,
</math></center>
tzn. <math>\displaystyle \vec\alpha</math> jest punktem stałym odwzorowania <math>\displaystyle \phi</math>.
Dla jednoznaczności zauważmy, że jeśliby istniał
drugi, różny od <math>\displaystyle \vec\alpha</math>, punkt stały <math>\displaystyle \vec\beta</math>,
to mielibyśmy
<center><math>\displaystyle \|\vec\alpha-\vec\beta\|\,=\,
  \|\phi(\vec\alpha)-\phi(\vec\beta)\|
  \,\le\,L\,\|\vec\alpha-\vec\beta\|.
</math></center>
Stąd <math>\displaystyle 1<L</math>, co jest sprzeczne z założeniem, że
<math>\displaystyle \phi</math> jest zwężająca. }}
Z powyższych rozważań otrzymujemy natychmiastowy
wniosek dotyczący zbieżności iteracji prostych.
{{wniosek|||
Przy założeniach [[twit|Uzupe�nij: twierdzenia Banacha]],
metoda iteracji prostych jest zbieżna co
najmniej liniowo z ilorazem <math>\displaystyle L</math>, tzn.
<center><math>\displaystyle \| x_k- x^*\|\,\le\,L^k\,\| x_0- x^*\|.
</math></center>
}}
{{przyklad|||
Dla ilustracji, rozpatrzmy natępujące proste
równanie skalarne:
<center><math>\displaystyle
  x\,=\,\cos(x), \qquad \mbox{dla} \qquad x\in D= R.
</math></center>
W tym przypadku <math>\displaystyle \phi(x)=\cos(x)</math>. Zauważamy, że w
przedziale <math>\displaystyle [0,1]</math> funkcja <math>\displaystyle \phi</math> jest zwężająca ze
stałą
<center><math>\displaystyle L\,=\,\max_{0\le x\le 1}|\cos'(x)|\,=\,\sin(1)\,<\,1.
</math></center>
Stąd istnieje dokładnie jedno rozwiązanie naszego równania
w przedziale <math>\displaystyle [0,1]</math>. 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 <math>\displaystyle  x_0\in [0,1]</math>.
}}
Zaletą iteracji prostych jest fakt, że zbieżność
nie zależy od wymiaru <math>\displaystyle n</math> zadania, ale tylko od stałej
Lipschitza <math>\displaystyle L</math> (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 <math>\displaystyle \phi</math> jest zwężająca na całym
zbiorze <math>\displaystyle D</math>, tzn. <math>\displaystyle D_0=D</math>. Jeśli ponadto <math>\displaystyle D</math> ma
skończoną średnicę <math>\displaystyle  \mbox{diam} (D)</math>, to dla
osiągnięcia <math>\displaystyle \epsilon</math>-aproksymacji zera funkcji <math>\displaystyle f</math>
wystarczy wykonać
<center><math>\displaystyle k\,=\,k(\epsilon)\,=\,\Big\lceil\frac
  {\log(\| x_0- x^*\|/\epsilon)}{\log(1/L)}\Big\rceil
  \,=\,\Big\lceil\frac
  {\log( \mbox{diam} (D)/\epsilon)}{\log(1/L)}\Big\rceil
</math></center>
iteracji, niezależnie od <math>\displaystyle x_0</math>. 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==
==Wyznaczanie wektorów i wartości własnych==



Wersja z 20:23, 29 sie 2006

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

f(x)=0

przekształcamy (dobierając odpowiednią funkcję ϕ) do równania równoważnego (tzn. mającego te same rozwiązania)

x=ϕ(x).

Następnie, startując z pewnego przybliżenia początkowego x0, konstruujemy ciąg kolejnych przybliżeń xk według wzoru

xk=ϕ(xk1),k1.

Twierdzenie Banacha, o zbieżności iteracji prostej

Niech D0 będzie domkniętym podzbiorem dziedziny D,

D0=D0D,

w którym ϕ jest odwzorowaniem zwężającym. To znaczy, ϕ(D0)D0, oraz istnieje stała 0L<1 taka, że

ϕ(x)ϕ(y)Lxy,x,yD0.

Wtedy równanie

x=ϕ(x).

ma dokładnie jedno rozwiązanie x*, oraz

x*=limkxk,

dla dowolnego przybliżenia początkowego x0D0.

Dowód

Wobec

xkxk1=ϕ(xk1)ϕ(xk2)Lxk1xk2 Lk1x1x0,

dla ks mamy

Parser nie mógł rozpoznać (nieznana funkcja „\begin{matrix}”): {\displaystyle \begin{matrix} \| x_k- x_s\| & \le & \sum_{j=s+1}^k\| x_j- x_{j-1}\| & \le & \sum_{j=s+1}^k L^{j-1}\| x_1- x_0\| & = & L^s(1+L+\cdots+L^{k-s-1})\| x_1- x_0\| \\ \ & \le & \frac{L^s}{1-L}\| x_1- x_0\|. \end{matrix}}

Ciąg {xk}k jest więc ciągiem Cauchy'ego. Stąd istnieje granica α=limkxk, która należy do D0, wobec domkniętości tego zbioru. Ponieważ lipschitzowskość ϕ implikuje jej ciągłość, mamy też

ϕ(α)=ϕ(limkxk)=limkϕ(xk)=limkxk=α,

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

αβ=ϕ(α)ϕ(β)Lαβ.

Stąd 1<L, 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 L, tzn.

xkx*Lkx0x*.

Przykład

Dla ilustracji, rozpatrzmy natępujące proste równanie skalarne:

x=cos(x),dlaxD=R.

W tym przypadku ϕ(x)=cos(x). Zauważamy, że w przedziale [0,1] funkcja ϕ jest zwężająca ze stałą

L=max0x1|cos(x)|=sin(1)<1.

Stąd istnieje dokładnie jedno rozwiązanie naszego równania w przedziale [0,1]. 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 x0[0,1].

Zaletą iteracji prostych jest fakt, że zbieżność nie zależy od wymiaru n zadania, ale tylko od stałej Lipschitza L (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 D, tzn. D0=D. Jeśli ponadto D ma skończoną średnicę diam(D), to dla osiągnięcia ϵ-aproksymacji zera funkcji f wystarczy wykonać

k=k(ϵ)=log(x0x*/ϵ)log(1/L)=log(diam(D)/ϵ)log(1/L)

iteracji, niezależnie od x0. 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

Tekst

Algorytm Nie robiący nic


 Leż
Wersja A
Wersja B
Wersja A
Wersja B

Ćwiczenie: Ciag dalszy

Spróbuj obniżyć koszt wyznaczania exp(x) dla dużych x!

Wskazówka
Rozwiązanie