Metoda Newtona

by Jerry Sky

2020-10-20



1. Metoda Newtona (metoda stycznych)

Założenia:

Warunek końca: xn+1xnδ,f(xn+1)ϵ|x_{n+1} - x_n| \le \delta, \enspace |f(x_{n+1})| \le \epsilon.

2. Algorytm

  1. vf(x0)v \gets f(x_0)
  2. if v<ϵ|v| < \epsilon:
    1. return 0,x0,v0, x_0, v
  3. for k1k \gets 1 to MM:
    1. x1x0vf(x0)x_1 \gets x_0 - \frac{v}{f'(x_0)}
    2. vf(x1)v \gets f(x_1)
    3. if x1x0<δ|x_1 - x_0| < \delta or v<ϵ|v| < \epsilon:
      1. return k,x1,vk, x_1, v
    4. x0x1x_0 \gets x_1

Powyższy algorytm korzysta z funkcji liczących f(x)f(x) oraz f(x)f'(x).


3. Twierdzenie o lokalnej zbieżności metody Newtona

Niech fC2[a,b]f \in C^2[a,b] oraz rr będzie jednokrotnym pierwiastkiem ff.
Wówczas istnieje otoczenie rr i stała CC i jeśli przybliżenie początkowe x0x_0 należy do otoczenia rr, to ciąg konstruowanych przez metodę Newtona przybliżeń {xn}\{ x_n \} spełnia xn+1rC(xnr)2. |x_{n+1} - r| \le C\cdot (x_n - r)^2.

Ponadto limnxn=r\lim_{n \to \infty} x_n = r.

3.1. D-d

3.1.1. Wykładnik zbieżności

Przez błąd rozumiemy wielkość en=xnre_n = x_n - r. en+1=xn+1r=xnf(xn)f(xn)r=enf(xn)f(xn)=enf(xn)f(xn)f(xn). e_{n+1} = x_{n+1} - r = x_n - \frac{f(x_n)}{f'(x_n)} - r = e_n - \frac{f(x_n)}{f'(x_n)} = \frac{e_n \cdot f'(x_n) - f(x_n)}{f'(x_n)}.

Rozwijamy ff w szereg Taylora w otoczeniu xnx_n: f(r)=f(xn)+f(xn)(rxn)+12f(ζn)(rxn)2==f(xn)f(xn)en+12f(ζn)en2 f(r) = f(x_n) + f'(x_n) \cdot (r-x_n) + \frac{1}{2} f''(\zeta_n) \cdot (r - x_n)^2 =\\ = f(x_n) - f'(x_n) e_n + \frac{1}{2} f''(\zeta_n) \cdot e_n^2 gdzie ζn\zeta_n jest liczbą leżącą między rr oraz xnx_n.

0=f(r)=f(xn)f(xn)en+12f(ζn)en2 0 = f(r) = f(x_n) - f'(x_n) \cdot e_n + \frac{1}{2} \cdot f''(\zeta_n) \cdot e_n^2

Przekształcając powyższe równanie otrzymujemy f(xn)enf(xn)=12f(ζn)en2 f'(x_n) \cdot e_n - f(x_n) = \frac{1}{2} \cdot f''(\zeta_n) \cdot e_n^2

en+1=enf(xn)f(xn)f(xn)=12f(ζn)f(xn)en212f(r)f(r)en2=Cen2 e_{n+1} = \frac{e_n \cdot f'(x_n) - f(x_n)}{f'(x_n)} = \frac{1}{2} \frac{f''(\zeta_n)}{f'(x_n)} \cdot e_n^2 \approx\\ \approx \frac{1}{2} \frac{f''(r)}{f'(r)} \cdot e_n^2 = C\cdot e_n^2 (zakładamy, że xnrx_n \to r)

3.1.2. Zbieżność

Zdefiniujmy c(δ)c(\delta): c(δ)=12maxxrδf(x)minxrδf(x)(δ>0) c(\delta) = \frac{1}{2} \frac{\max_{|x-r| \le \delta} |f''(x)|}{\min_{|x-r| \le \delta} |f'(x)|} \quad (\delta > 0)

Wybierzmy δ\delta (zmniejszając wartość), takie, że δc(δ)<1\delta \cdot c(\delta) < 1. Można to zrobić, ponieważ jak δ0,c(δ)12f(r)f(r)\delta \to 0,\enspace c(\delta) \to \frac{1}{2} \frac{|f''(r)|}{|f'(r)|}, to δc(δ)0\delta \cdot c(\delta) \to 0.
Ustalmy δ\delta i połóżmy ρ=δc(δ)\rho = \delta \cdot c(\delta). Załóżmy, że x0x_0 jest punktem startowym metody Newtona spełniającym x0rδ|x_0 - r| \le \delta.
Wówczas e0δ|e_0| \le \delta oraz ζ0rδ|\zeta_0 - r| \le \delta.
Stąd 12f(ζ0)f(x0)c(δ). \frac{1}{2} \left| \frac{f''(\zeta_0)}{f'(x_0)} \right| \le c(\delta).

Pokażemy, że kolejne przybliżenie x1x_1 leży w otoczeniu rr. x1r=e1e02c(δ)=e0e0c(δ)e0δc(δ)=e0ρ<e0δ |x_1 - r| = |e_1| \le e_0^2 \cdot c(\delta) = |e_0|\cdot |e_0| \cdot c(\delta) \le |e_0| \delta\cdot c(\delta) = |e_0| \rho < |e_0| \le \delta

Stąd mamy e1ρe0.|e_1| \le \rho|e_0|.
Uogólniając enρen1ρ2en2ρne0. |e_n| \le \rho|e_{n-1}| \le \rho^2 |e_{n-2}| \le \dotsb \le \rho^n |e_0|.

Z faktu, że ρ<1\rho < 1 wynika limnρn=0\lim_{n\to \infty} \rho^n = 0, w konsekwencji limnen=0\lim_{n \to \infty} e_n = 0. \blacksquare


3.2. Przykład

f(x)=(x2)2+sinxf(x) = \left( \frac{x}{2} \right)^2 + \sin x

Wyznaczyć metodą Newtona miejsce zerowe funkcji ff w przedziale [1.5;2][1.5; 2] z dokładnością δ=0.510\delta = 0.5_{10} a x0=1.5x_0 = 1.5.

nn xnx_n hnh_n xnr\lvert x_n - r \rvert
00 1.51.5 0.64390.6439 0.43374-0.43374
11 2.140392.14039 0.18838-0.18838 0.266440.26644
22 1.952011.95201 0.018808-0.018808 0.01118250.0111825
33 1.933931.93393 0.00018-0.00018 0.000180.00018
44 1.9333751.933375 <5106< 5_10 - 6 <5106< 5_10 - 6

Metoda bisekcji wykonała 1717 iteracji dla a=1.5a = 1.5 oraz b=2b = 2.


4. Twierdzenie#3

Niech [a;b][a;b] będzie przedziałem takim, że:

Wówczas ff ma dokładnie jedno zero w [a;b][a;b] i metoda Newtona jest zbieżna do rr dla dowolnego punktu startowego x0[a;b]x_0 \in [a;b].