23 Iterazioni di punto fisso
Vogliamo ora dare una formulazione più generale alle iterazioni del tipo Newton-Raphson1.
Definizione 23.1 (Punto fisso) Data una funzione g:\mathbb{R}\mapsto \mathbb{R}, diremo che \alpha è un punto fisso se:
\alpha = g(\alpha).
Cercare gli zeri di una funzione f(x) è equivalente a cercare i punti fissi della funzione g(x) = x-f(x).
Un modo molto naturale per cercare i punti fissi è quello di usare delle iterazioni. Ad esempio dato un punto iniziale x_0 costruendo la successione
\boxed{ x_{k+1} =g(x_k),\qquad k=1,2,\ldots } \tag{23.1}
possiamo chiederci quando la successione \{x_{i}\}_{i=0}^{\infty} è convergente e se converge a \alpha. Ad esempio lo schema di Newton~20.3 può essere messo nella forma 23.1 ponendo
g(x) = x-\dfrac{f(x)}{f'(x)},
fondamentale per lo studio di schemi iterativi della forma 23.1 è il seguente teorema:
Teorema 23.1 (Convergenza punto fisso) Sia g(x) una funzione continua e sia \alpha un suo punto fisso, cioè \alpha=g(\alpha). Sia g(x) soddisfacente la seguente condizione
\left\lvert g(x)-g(x')\right\rvert \leq L \left\lvert x-x'\right\rvert, \tag{23.2}
per ogni x, x' in un intervallo chiuso I\equiv[\alpha-\rho,\alpha+\rho], dove la costante L soddisfa:
0 \leq L < 1,
allora
(i)\quad Posto x_0\in I allora tutte le iterate x_k definite da 23.1 stanno in I, cioè \alpha-\rho \leq x_k \leq \alpha+\rho, \qquad k=1,2,\ldots
(ii)\quad (esistenza) le iterate convergono ad \alpha, \lim_{k\mapsto\infty} x_k = \alpha.
(iii)\quad (unicità) \alpha è l’unico punto fisso di g(x) in [\alpha-\rho,\alpha+\rho].
Dimostrazione.
(i)\quad basta osservare che \begin{aligned} \left\lvert\alpha-x_k\right\rvert & = \left\lvert g(\alpha)-g(x_{k-1})\right\rvert, \\ & \leq L \left\lvert\alpha-x_{k-1}\right\rvert = L \left\lvert g(\alpha)-g(x_{k-2})\right\rvert, \\ & \leq L^{2} \left\lvert\alpha-x_{k-2}\right\rvert = L^{2} \left\lvert g(\alpha)-g(x_{k-3})\right\rvert,\\ & \vdots \\ & \leq L^{k} \left\lvert\alpha-x_0\right\rvert \leq \rho, \end{aligned} \tag{23.3} e quindi x_k è nell’intervallo [\alpha-\rho,\alpha+\rho].
(ii)\quad sempre dalla 23.3 e dal fatto che 0\leq L<1 segue che \lim_{k\mapsto\infty}\left\lvert\alpha-x_k\right\rvert=0.
(iii)\quad siano \alpha e \beta due punti fissi allora dalla 23.2 abbiamo \left\lvert\alpha-\beta\right\rvert = \left\lvert g(\alpha)-g(\beta)\right\rvert \leq L \left\lvert\alpha-\beta\right\rvert < \left\lvert\alpha-\beta\right\rvert. Questa contraddizione implica che \alpha=\beta.
Esempio 23.1 (Esempio) Considerando il metodo di Newton-Raphson come uno schema a punto fisso abbiamo
g(x) = x-\dfrac{f(x)}{f'(x)}, \qquad g'(x) = \dfrac{f(x)f''(x)}{(f'(x))^{2}},
Se \alpha è una radice semplice di f(x) cioè f'(\alpha)\neq 0 allora
g'(\alpha) = \dfrac{f(\alpha)f''(\alpha)}{(f'(\alpha))^{2}} = 0,
se f(x) è una funzione C^{2} allora g'(x) è continua nell’intorno di \alpha e scegliendo un intorno sufficientemente piccolo di \alpha avremo
\left\lvert g'(x)\right\rvert \leq L < 1, \qquad x\in [\alpha-\rho,\alpha+\rho]
Per il teorema precedente, lo schema di Newton-Raphson è quindi convergente, purché si parta da un’approssimazione sufficientemente vicina alla radice e la radice sia semplice.
Esempio 23.2 (Esempio) Nel metodo di Newton-Raphson se \alpha è una radice multipla di f(x) cioè
f(x) = (x-\alpha)^{n} h(x), \qquad n>1
dove h(\alpha)\neq 0 segue che
\begin{aligned} f'(x) &= n(x-\alpha)^{n-1} h(x)+(x-\alpha)^{n} h'(x) \\ f''(x) &= n(n-1)(x-\alpha)^{n-2} h(x)+2n(x-\alpha)^{n-1} h'(x)+(x-\alpha)^{n} h''(x), \end{aligned}
e di conseguenza
\begin{aligned} g'(x) &= \dfrac{f(x)f''(x)}{(f'(x))^{2}} = \dfrac{h(x)\left( n(n-1)h(x)+2n(x-\alpha) h'(x) +(x-\alpha)^{2} h''(x) \right)}{\left(nh(x)+(x-\alpha) h'(x)\right)^{2} }, \\ g'(\alpha) &= \dfrac{n(n-1)h(\alpha)^{2}}{n^{2}h(\alpha)^{2}}= 1-\dfrac{1}{n}, \end{aligned}
quindi
\left\lvert g'(\alpha) \right\rvert = 1-\dfrac{1}{n} < 1
e lo schema iterativo converge localmente anche se ora la convergenza è solo al primo ordine.
23.1 Elenco metodi numerici per zeri di funzione
Newton-Raphson
Ordine 2
\boxed{ x_{k+1} = x_k - \dfrac{f(x_k)}{f'(x_k)},\qquad k=1,2,\ldots }
Newton per radici multiple. Basta applicare Newton alla funzione F(x) = f(x)/f'(x) ottenendo:
\boxed{ x_{k+1} = x_k - \dfrac{F(x_k)}{F'(x_k)}=x_k -\dfrac{f(x_k)f'(x_k)}{f'(x_k)^2-f(x_k)f''(x_k)} ,\qquad k=1,2,\ldots }
- R. L.Burden & J. D. Faires
Numerical Analysis (9th ed.)
Brooks Cole (2010)
Secanti
Ordine \dfrac{1+\sqrt{5}}{2}=1.618\ldots
\boxed{ x_{k+1} = \dfrac{f(x_k)x_{k-1}-f(x_{k-1})x_k} {f(x_k)-f(x_{k-1})}, \qquad k=1,2,\ldots }
Secanti (variante Brent)
\boxed{ x_{k+1} = x_k - \dfrac{f(x_k)}{D_k},\quad D_k=\begin{cases} \dfrac{f(x_k)-f(x_{k-1})}{x_k-x_{k-1}} & \left\lvert x_k-x_{k-1}\right\rvert > h \\ \dfrac{f(x_k)-f(x_k-h)}{h} & \left\lvert x_k-x_{k-1}\right\rvert \leq h \end{cases} \qquad k=1,2,\ldots }
Parabole tangenti
Ordine 3 (si veda Sezione 20.11)
\boxed{ x_{k+1} = x_k -2\dfrac{f(x_k)}{f'(x_k)}\bigg/ \left( 1+\sqrt{1-2\dfrac{f(x_k)f''(x_k)}{f'(x_k)^2}} \right) \qquad k=1,2,\ldots }
Da non confondere con il metodo di Müller3 (Sezione 20.10), che interpola una parabola per tre punti, non usa derivate e ha ordine \approx 1.84:
- D. E. Müller
A method for solving algebraic equations using an automatic computer
Mathematical Tables and Other Aids to Computation, Vol. 10, No. 56, 208-215, (1956)
Metodo di Halley
Ordine 3
\boxed{ x_{k+1} = x_k -\dfrac{f(x_k)f'(x_k)}{f'(x_k)^2-\dfrac{1}{2}f(x_k)f''(x_k)} \qquad k=1,2,\ldots }
- J. F. Traub4
- Iterative Methods for the Solution of Equations*
Prentice-Hall, 1964.
- Iterative Methods for the Solution of Equations*
Metodo di Steffensen
Ordine 2
\boxed{ x_{k+1} = x_k -\dfrac{f(x_k)^2}{f(x_k+f(x_k))-f(x_k)} \qquad k=1,2,\ldots }
- J. F. Steffensen5
Remarks on Iteration
Skandinavisk Aktuarietidskrift, 1933, 16(1), 64-72.
Metodo delle corde tangenti
\boxed{ z = x_k -\dfrac{f(x_k)}{f'(x_k)},\qquad x_{k+1} = z -\dfrac{f(z)}{f'(x_k)}, \qquad k=1,2,\ldots }
Metodo di Ostrowski
Ordine 4
\boxed{ z = x_k -\dfrac{f(x_k)}{f'(x_k)},\qquad x_{k+1} = z -\dfrac{f(z)(z-x_k)}{2f(z)-f(x_k)}, \qquad k=1,2,\ldots }
- A. M. Ostrowski6
Solution of equations and systems of equations
Academic Press, New York, 1960
In sintesi
- Ogni metodo iterativo per f(t)=0 si riscrive come t_{k+1}=g(t_k): la radice diventa un punto fisso di g.
- Se g è una contrazione (|g'|\leq\lambda<1) in un intorno invariante, l’iterazione converge all’unico punto fisso, con errore che decade come \lambda^{k}.
- L’ordine di convergenza è determinato dalla prima derivata non nulla di g nel punto fisso: g'(\xi)=0 dà ordine almeno due, ed è esattamente il caso di Newton.
- |g'(\xi)|>1 rende il punto fisso repulsivo: la stessa equazione, riscritta male, produce un metodo divergente.