Metoda siecznych

by Jerry Sky

2020-10-20



Metoda siecznych

Założenia:

Aproksymujemy f(xn)f(xn)f(xn1)xnxn1f'(x_n) \approx \frac{f(x_n) - f(x_{n-1})}{x_n - x_{n-1}}.

xn+1=xnxnxn1f(xn)f(xn1)f(xn)=xn+hn x_{n+1} = x_n - \frac{x_n - x_{n-1}}{f(x_n) - f(x_{n-1})} \cdot f(x_n) = x_n + h_n gdzie:

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


Algorytm

  1. faf(a)fa \gets f(a)
  2. fbf(b)fb \gets f(b)
  3. for k1k \gets 1 to MM:
    1. if fa>fb|fa| > |fb|:
      1. aba \leftrightarrow b
      2. fafbfa \leftrightarrow fb
    2. sbafbfas \gets \frac{b-a}{fb - fa}
    3. bab \gets a
    4. fbfafb \gets fa
    5. aafasa \gets a - fa \cdot s
    6. faf(a)fa \gets f(a)
    7. if ba<δ|b-a| < \delta or fa<ϵ|fa| < \epsilon:
      1. return k,a,fak, a, fa

Powyższy algorytm korzysta z funkcji liczącej f(x)f(x).

Twierdzenie o lokalnej zbieżności metody siecznych

Niech fC2[a;b]f \in C^2[a;b] i rr będzie jednokrotnym pierwiastkiem ff. Wówczas istnieje otoczenie rr i stała KK i jeśli przybliżenia początkowe x0,x1x_0, x_1 należą do otoczenia rr, to ciąg konstruowanych przez metodę siecznych przybliżeń {xn}\{ x_n \} spełnia xn+1rKxnr1+52|x_{n+1} - r| \le K|x_n - r|^{\frac{1 + \sqrt{5}}{2}}.

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

D-d

Wykładnik zbieżności

Przez błąd rozumiemy wielkość en=xnre_n = x_n - r.

en+1=xn+1r=xnf(xn)f(xn)f(xn1)xnxn1r==enf(xn)f(xn)f(xn1)xnxn1=enf(xn)f(xn1)xnxn1f(xn)f(xn)f(xn1)xnxn1 e_{n+1} = x_{n+1} - r = x_n - \frac{f(x_n)}{\frac{f(x_n) - f(x_{n-1})}{x_n - x_{n-1}}} - r =\\ = e_n - \frac{f(x_n)}{\frac{f(x_n) - f(x_{n-1})}{x_n - x_{n-1}}} = \frac{e_n \cdot \frac{f(x_n) - f(x_{n-1})}{x_n - x_{n-1}} - f(x_n)}{\frac{f(x_n) - f(x_{n-1})}{x_n - x_{n-1}}}

Funkcję ff można przedstawić za pomocą wzoru interpolacyjnego Newtona f(r)=f(xn)+f(xn)f(xn1)xnxn1(rxn)+12f(ζn)(rxn1)(rxn)==f(xn)f(xn)f(xn1)xnxn1en+12f(ζn)en1en f(r) = f(x_n) + \frac{f(x_n) - f(x_{n-1})}{x_n - x_{n-1}} \cdot (r - x_n) + \frac{1}{2} f''(\zeta_n)\cdot (r - x_{n-1}) (r - x_n) =\\ = f(x_n) - \frac{f(x_n) - f(x_{n-1})}{x_n - x_{n-1}} \cdot e_n + \frac{1}{2} \cdot f''(\zeta_n) \cdot e_{n-1} \cdot e_n

ζn\zeta_n jest liczbą leżącą między xn1x_{n-1} a xnx_n. 0=f(r)=f(xn)f(xn)f(xn1)xnxn1en+12f(ζn)en1en 0 = f(r) = f(x_n) - \frac{f(x_n) - f(x_{n-1})}{x_n - x_{n-1}} \cdot e_n + \frac{1}{2} \cdot f''(\zeta_n) \cdot e_{n-1} \cdot e_n

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

Z twierdzenia o wartości średniej otrzymujemy f(xn)f(xn)f(xn1)xnxn1=f(ηn) f'(x_n) \approx \frac{f(x_n) - f(x_{n-1})}{x_n - x_{n-1}} = f'(\eta_n) gdzie ηn\eta_n jest leżącą między xn1x_{n-1} a xnx_n.

en+1=enf(xn)f(xn1)xnxn1f(xn)f(xn)f(xn1)xnxn1==12f(ζn)f(ηn)en1en e_{n+1} = \frac{e_n \cdot \frac{f(x_n) - f(x_{n-1})}{x_n - x_{n-1}} - f(x_n)}{\frac{f(x_n) - f(x_{n-1})}{x_n - x_{n-1}}} =\\ = \frac{1}{2} \frac{f''(\zeta_n)}{f'(\eta_n)} \cdot e_{n-1} \cdot e_n

Dla dostatecznie dużych nn jest ζnr\zeta_n \approx r, ηnr\eta_n \approx r. en+112f(r)f(r)en1en=Cen1en |e_{n+1}| \approx \frac{1}{2} \left| \frac{f''(r)}{f'(r)} \right| \cdot |e_{n-1}| \cdot |e_n| = C\cdot |e_{n-1}| \cdot |e_n|

Twierdzimy, że en+1Kenp|e_{n+1}| \approx K|e_n|^p

enKen1p. |e_n| \approx K|e_{n-1}|^p.

Stąd mamy en1en1pK1p |e_{n-1}| \approx |e_n|^{\frac{1}{p}} \cdot K^{-\frac{1}{p}}

Dalej en+1Cen+1enCenen1pK1p=Cen1+1pK1p |e_{n+1}| \approx C\cdot |e_{n+1}| \cdot |e_n| \approx C\cdot |e_n|\cdot |e_n|^{\frac{1}{p}} \cdot K^{-\frac{1}{p}} = C\cdot |e_n|^{1 + \frac{1}{p}} \cdot K^{-\frac{1}{p}}

Przyrównując stronami KenpCen1+1pK1p K\cdot |e_n|^p \approx C\cdot |e_n|^{1 + \frac{1}{p}} \cdot K^{-\frac{1}{p}}

Po pogrupowaniu otrzymujemy K1+1penpCen1+1p K^{1 + \frac{1}{p}} \cdot |e_n|^p \approx C \cdot |e_n|^{1+\frac{1}{p}}

Z powyższej równości dostajemy p=1+1pp = 1 + \frac{1}{p}. Dodatnim pierwiastkiem równanie jest p=1+52p = \frac{1 + \sqrt{5}}{2}. Wyznaczamy KK z równania K1+1p=CK^{1 + \frac{1}{p}} = C.
Z faktu, że 1+1p=p1 + \frac{1}{p} = p otrzymujemy równanie Kp=CK^p = C. Ostatecznie K=C1pK = C^{\frac{1}{p}} oraz en+1Ken1+52. |e_{n+1}| \le K\cdot |e_n|^{\frac{1 + \sqrt{5}}{2}}.

Zbieżność

Jak dla metody Newtona.

\blacksquare