Salta al contenuto
Note per Studenti Metodo di Newton, metodo delle secanti e ordine di convergenza

Metodo di Newton, metodo delle secanti e ordine di convergenza

In questa pagina 5

Prerequisiti: Metodo di bisezione e iterazioni di punto fissoBisezione: se f è continua e f(a)f(b) < 0 si dimezza l'intervallo tenendo la metà con il cambio di segno; dopo n passi |c_n − α| ≤ (b−a)/2^(n+1), cioè un bit di precisione per iterazione (convergenza lineare, sempre garantita). Punto fisso x = g(x): se g manda [a,b] in sé con |g'| ≤ L < 1 (contrazione) il punto fisso è unico, l'iterazione x_{k+1} = g(x_k) converge da ogni x_0 e |x_k − α| ≤ L^k/(1−L)·|x_1−x_0|; l'errore si moltiplica per circa g'(α) a ogni passo. Una stessa equazione ha molte riscritture x = g(x), alcune convergenti e altre no.Metodo di bisezione e iterazioni di punto fisso → (iterazioni xk+1=g(xk)x_{k+1} = g(x_k) e convergenza lineare), Formula di Taylor con resto di LagrangeSe f ha n+1 derivate continue su [a,b], l'errore tra f e il suo polinomio di Taylor si scrive esattamente come f^(n+1)(c)(x-x0)^(n+1)/(n+1)! per un c opportuno: serve a stimare l'errore su tutto un intervallo e a scegliere il grado del polinomio.Formula di Taylor con resto di Lagrange →, Derivata - definizione e significatoLa derivata è il limite del rapporto incrementale; geometricamente è la pendenza della retta tangente. f è derivabile in x0 se e solo se f(x) = f(x0) + f'(x0)(x − x0) + o(x − x0); derivabile implica continua, non viceversa. Derivata destra e sinistra, punti angolosi, flessi a tangente verticale, cuspidi.Derivata - definizione e significato → (retta tangente).

La bisezione converge sempre, ma lentamente (un bit per passo). Per avere molte cifre in poche iterazioni si sfrutta la forma della funzione vicino alla radice: la sua derivata.

Ordine di convergenza

Sia xk→αx_k \to \alpha e ek=xk−αe_k = x_k - \alpha.

Definizione (ordine di convergenza). La successione converge con ordine p≥1p \ge 1 e costante asintotica CC se lim⁡k→∞∣ek+1∣∣ek∣p=C,0<C<∞(con C<1 se p=1).\lim_{k\to\infty}\frac{|e_{k+1}|}{|e_k|^p} = C, \qquad 0 < C < \infty \quad(\text{con } C<1 \text{ se } p=1).

  • p=1p = 1: convergenza lineare (tasso CC): l'errore si moltiplica per CC a ogni passo (bisezione: C=12C=\frac12; punto fisso: C=∣g′(α)∣C = |g'(\alpha)|).
  • p=2p = 2: convergenza quadratica. Se ∣ek∣≈10−s|e_k| \approx 10^{-s} allora ∣ek+1∣≈C 10−2s|e_{k+1}| \approx C\,10^{-2s}: il numero di cifre corrette raddoppia a ogni iterazione.
  • 1<p<21<p<2: convergenza superlineare.

Perché conta: da un errore di 10−110^{-1} per arrivare a 10−1610^{-16} servono circa 1616 iterazioni lineari con tasso 0,10{,}1, ma solo 44 iterazioni quadratiche (10−1→10−2→10−4→10−8→10−1610^{-1} \to 10^{-2} \to 10^{-4} \to 10^{-8} \to 10^{-16}).

Stima numerica dell'ordine. Da ∣ek+1∣≈C∣ek∣p|e_{k+1}| \approx C|e_k|^p e ∣ek∣≈C∣ek−1∣p|e_k| \approx C|e_{k-1}|^p, dividendo, p≈ln⁡(∣ek+1∣/∣ek∣)ln⁡(∣ek∣/∣ek−1∣).p \approx \frac{\ln\left(|e_{k+1}|/|e_k|\right)}{\ln\left(|e_k|/|e_{k-1}|\right)}. Se α\alpha non è noto si usano gli incrementi ∣xk+1−xk∣|x_{k+1}-x_k| al posto degli errori (per un metodo superlineare l'incremento ∣xk+1−xk∣≈∣ek∣|x_{k+1}-x_k| \approx |e_k|).

Il metodo di Newton

Idea. In xkx_k si sostituisce ff con la sua retta tangente y=f(xk)+f′(xk)(x−xk)y = f(x_k) + f'(x_k)(x - x_k) e si prende come nuova approssimazione lo zero della tangente: 0=f(xk)+f′(xk)(xk+1−xk)⟹xk+1=xk−f(xk)f′(xk)0 = f(x_k) + f'(x_k)(x_{k+1} - x_k) \quad\Longrightarrow\quad \boxed{x_{k+1} = x_k - \frac{f(x_k)}{f'(x_k)}} È un'iterazione di punto fisso con g(x)=x−f(x)f′(x)g(x) = x - \frac{f(x)}{f'(x)} (richiede f′(xk)≠0f'(x_k) \ne 0).

Grafico interattivo: Newton per f(x) = x² − 2 da x₀ = 2: la tangente in x₀ taglia l'asse in x₁ = 1,5, quella in x₁ in x₂ = 1,4167

Teorema (convergenza locale quadratica). Sia f∈C2f \in C^2 in un intorno di α\alpha, con f(α)=0f(\alpha) = 0 e f′(α)≠0f'(\alpha) \ne 0 (radice semplice). Allora esiste δ>0\delta > 0 tale che per ogni x0x_0 con ∣x0−α∣<δ|x_0 - \alpha| < \delta il metodo di Newton converge ad α\alpha e lim⁡k→∞ek+1ek2=f′′(α)2f′(α).\lim_{k\to\infty}\frac{e_{k+1}}{e_k^2} = \frac{f''(\alpha)}{2f'(\alpha)}. L'ordine è 22 se f′′(α)≠0f''(\alpha) \ne 0 (se f′′(α)=0f''(\alpha) = 0 l'ordine è maggiore).

Dimostrazione. Per Taylor con resto di Lagrange (Formula di Taylor con resto di LagrangeSe f ha n+1 derivate continue su [a,b], l'errore tra f e il suo polinomio di Taylor si scrive esattamente come f^(n+1)(c)(x-x0)^(n+1)/(n+1)! per un c opportuno: serve a stimare l'errore su tutto un intervallo e a scegliere il grado del polinomio.Formula di Taylor con resto di Lagrange →) centrato in xkx_k: 0=f(α)=f(xk)+f′(xk)(α−xk)+f′′(ξk)2(α−xk)2,ξk tra xk e α.0 = f(\alpha) = f(x_k) + f'(x_k)(\alpha - x_k) + \frac{f''(\xi_k)}{2}(\alpha - x_k)^2,\quad \xi_k \text{ tra } x_k \text{ e } \alpha. Dividendo per f′(xk)f'(x_k) e portando i primi due termini a sinistra: xk−f(xk)f′(xk)⏟xk+1−α=f′′(ξk)2f′(xk)(xk−α)2⟹ek+1=f′′(ξk)2f′(xk) ek2.\underbrace{x_k - \frac{f(x_k)}{f'(x_k)}}_{x_{k+1}} - \alpha = \frac{f''(\xi_k)}{2f'(x_k)}(x_k - \alpha)^2 \quad\Longrightarrow\quad e_{k+1} = \frac{f''(\xi_k)}{2f'(x_k)}\,e_k^2. Poiché f′(α)≠0f'(\alpha) \ne 0 e f′f' è continua, in un intorno ∣f′∣≥m>0|f'| \ge m > 0 e ∣f′′∣≤M|f''| \le M, quindi ∣ek+1∣≤M2mek2|e_{k+1}| \le \frac{M}{2m}e_k^2. Se ∣e0∣<δ:=min⁡{raggio dell’intorno, mM}|e_0| < \delta := \min\{\text{raggio dell'intorno},\ \frac{m}{M}\} allora ∣e1∣≤M2m∣e0∣⋅∣e0∣<12∣e0∣|e_1| \le \frac{M}{2m}|e_0|\cdot|e_0| < \frac12|e_0| e per induzione l'errore tende a zero (superlinearmente). Passando al limite (ξk→α\xi_k \to \alpha, xk→αx_k\to\alpha) si ottiene la costante ∎.

Si vede anche da g(x)=x−ff′g(x) = x - \frac{f}{f'}: g′=ff′′f′2g' = \frac{f f''}{f'^2} e g′(α)=0g'(\alpha) = 0, quindi il tasso lineare è nullo (vedi la nota sul punto fisso) e la convergenza è più che lineare.

Esempio 1: radice di 22 (metodo di Erone)

f(x)=x2−2f(x) = x^2 - 2, f′=2xf' = 2x: xk+1=xk−xk2−22xk=12(xk+2xk)x_{k+1} = x_k - \frac{x_k^2 - 2}{2x_k} = \dfrac12\left(x_k + \dfrac{2}{x_k}\right). Da x0=1x_0 = 1: la costante attesa è f′′2f′=22⋅22=122=0,35355\frac{f''}{2f'} = \frac{2}{2\cdot 2\sqrt2} = \frac{1}{2\sqrt2} = 0{,}35355.

kk xkx_k ek=xk−2e_k = x_k - \sqrt2 ek/ek−12e_k / e_{k-1}^2
00 11 −4,14⋅10−1-4{,}14\cdot 10^{-1}
11 32=1,5\frac32 = 1{,}5 +8,58⋅10−2+8{,}58\cdot 10^{-2} 0,50000{,}5000
22 1712=1,416667\frac{17}{12} = 1{,}416667 +2,45⋅10−3+2{,}45\cdot 10^{-3} 0,33330{,}3333
33 577408=1,414215686\frac{577}{408} = 1{,}414215686 +2,12⋅10−6+2{,}12\cdot 10^{-6} 0,35290{,}3529
44 1,4142135623751{,}414213562375 +1,60⋅10−12+1{,}60\cdot 10^{-12} 0,35350{,}3535

(Ad esempio x1=12(1+2)=1,5x_1 = \frac12(1 + 2) = 1{,}5 e x2=12(1,5+21,5)=12(1,5+1,3333)=1,41667x_2 = \frac12\left(1{,}5 + \frac{2}{1{,}5}\right) = \frac12(1{,}5 + 1{,}3333) = 1{,}41667.) Le cifre corrette passano da 00 a 11, 22, 55, 1111: raddoppiano. Il rapporto ek/ek−12e_k/e_{k-1}^2 tende a 0,35350{,}3535. Stima dell'ordine con e1,e2,e3,e4e_1, e_2, e_3, e_4: p≈ln⁡(e4/e3)ln⁡(e3/e2)=ln⁡(7,5⋅10−7)ln⁡(8,66⋅10−4)=−14,10−7,05=2,00p \approx \frac{\ln(e_4/e_3)}{\ln(e_3/e_2)} = \frac{\ln(7{,}5\cdot 10^{-7})}{\ln(8{,}66\cdot 10^{-4})} = \frac{-14{,}10}{-7{,}05} = 2{,}00.

Esempio 2: x3−x−2=0x^3 - x - 2 = 0 da x0=1,5x_0 = 1{,}5

f′=3x2−1f' = 3x^2 - 1. Costante attesa: f′′(α)2f′(α)=6α2(3α2−1)=9,128311,8876=0,7679\frac{f''(\alpha)}{2f'(\alpha)} = \frac{6\alpha}{2(3\alpha^2 - 1)} = \frac{9{,}1283}{11{,}8876} = 0{,}7679.

kk xkx_k f(xk)f(x_k) f′(xk)f'(x_k) eke_k ek/ek−12e_k/e_{k-1}^2
00 1,51{,}5 −0,1250-0{,}1250 5,75005{,}7500 −2,14⋅10−2-2{,}14\cdot 10^{-2}
11 1,52173911{,}5217391 +2,137⋅10−3+2{,}137\cdot 10^{-3} 5,94715{,}9471 +3,59⋅10−4+3{,}59\cdot 10^{-4} 0,7860{,}786
22 1,521379811{,}52137981 +5,89⋅10−7+5{,}89\cdot 10^{-7} 5,94385{,}9438 +9,92⋅10−8+9{,}92\cdot 10^{-8} 0,7680{,}768
33 1,52137970681{,}5213797068 +4,5⋅10−14+4{,}5\cdot 10^{-14} 5,94385{,}9438 +7,6⋅10−15+7{,}6\cdot 10^{-15} 0,7680{,}768

Per esempio x1=1,5−−0,1255,75=1,5+0,0217391=1,5217391x_1 = 1{,}5 - \frac{-0{,}125}{5{,}75} = 1{,}5 + 0{,}0217391 = 1{,}5217391. Confronto: per x3−x−2x^3 - x - 2 con precisione 10−1010^{-10} servono 3333 passi di bisezione, 1111 di punto fisso con x+23\sqrt[3]{x+2} e 44 di Newton.

Criteri di arresto

Dato che ek+1≪eke_{k+1} \ll e_k, si ha ∣xk+1−xk∣≈∣ek∣|x_{k+1} - x_k| \approx |e_k|: l'incremento è una buona stima dell'errore del passo precedente, e l'errore di xk+1x_{k+1} è molto più piccolo. Un criterio tipico è ∣xk+1−xk∣≤tol max⁡(1,∣xk+1∣)|x_{k+1} - x_k| \le \text{tol}\,\max(1,|x_{k+1}|) più un numero massimo di iterazioni.

Quando Newton fallisce o rallenta

  1. f′(xk)=0f'(x_k) = 0 o molto piccola: la tangente è orizzontale e il passo è enorme o indefinito.
  2. x0x_0 lontano da α\alpha: la convergenza è solo locale. Per f(x)=x3−2x+2f(x) = x^3 - 2x + 2 da x0=0x_0 = 0: f(0)=2f(0) = 2, f′(0)=−2f'(0) = -2, x1=0+1=1x_1 = 0 + 1 = 1; f(1)=1f(1) = 1, f′(1)=1f'(1) = 1, x2=0x_2 = 0. L'iterazione cicla 0→1→0→…0 \to 1 \to 0 \to \ldots senza mai arrivare alla radice α≈−1,77\alpha \approx -1{,}77. Per f(x)=arctan⁡xf(x) = \arctan x (radice 00) da x0=1,5x_0 = 1{,}5: x1=−1,694x_1 = -1{,}694, x2=2,321x_2 = 2{,}321, x3=−5,114x_3 = -5{,}114, x4=32,3…x_4 = 32{,}3\ldots diverge, mentre da x0=1,3x_0 = 1{,}3 converge (−1,16; 0,859; −0,374; 0,034; −2,6⋅10−5-1{,}16;\ 0{,}859;\ -0{,}374;\ 0{,}034;\ -2{,}6\cdot 10^{-5}). Rimedio pratico: partire da un'approssimazione ottenuta con qualche passo di bisezione.
  3. Radici multiple: se f(α)=f′(α)=0f(\alpha) = f'(\alpha) = 0 il teorema non vale.

Radici multiple

Se α\alpha ha molteplicità m≥2m \ge 2, cioè f(x)=(x−α)mh(x)f(x) = (x-\alpha)^m h(x) con h(α)≠0h(\alpha) \ne 0, Newton converge ma solo linearmente, con tasso m−1m\frac{m-1}{m}.

Verifica per f(x)=(x−1)mf(x) = (x-1)^m: ff′=x−1m\frac{f}{f'} = \frac{x-1}{m}, quindi ek+1=ek−ekm=m−1meke_{k+1} = e_k - \frac{e_k}{m} = \frac{m-1}{m}e_k.

Esempio. f(x)=(x−1)2(x+2)f(x) = (x-1)^2(x+2) ha una radice doppia in 11. Da x0=2x_0 = 2 Newton dà x1=2−f(2)f′(2)=2−49=1,5556x_1 = 2 - \frac{f(2)}{f'(2)} = 2 - \frac49 = 1{,}5556 (f(2)=4f(2) = 4, f′(2)=2⋅1⋅4+1=9f'(2) = 2\cdot1\cdot 4 + 1 = 9), poi 1,2979, 1,1554, 1,0796, 1,0403, 1,0203, 1,01021{,}2979,\ 1{,}1554,\ 1{,}0796,\ 1{,}0403,\ 1{,}0203,\ 1{,}0102, con errori 0,556, 0,298, 0,155, 0,080, 0,040, 0,020, 0,0100{,}556,\ 0{,}298,\ 0{,}155,\ 0{,}080,\ 0{,}040,\ 0{,}020,\ 0{,}010 e rapporto ek/ek−1→0,5=2−12e_{k}/e_{k-1} \to 0{,}5 = \frac{2-1}{2}.

Newton modificato: se si conosce mm, xk+1=xk−mf(xk)f′(xk)x_{k+1} = x_k - m\dfrac{f(x_k)}{f'(x_k)} ripristina la convergenza quadratica. Per l'esempio con m=2m = 2: x1=2−2⋅49=1,1111x_1 = 2 - 2\cdot\frac49 = 1{,}1111, x2=1,0019493x_2 = 1{,}0019493, x3=1,0000006327x_3 = 1{,}0000006327, x4=1,0000000000x_4 = 1{,}0000000000 (errori 0,111, 1,95⋅10−3, 6,3⋅10−7, 6,7⋅10−140{,}111,\ 1{,}95\cdot10^{-3},\ 6{,}3\cdot10^{-7},\ 6{,}7\cdot10^{-14}). Una radice multipla è anche mal condizionata (vedi Condizionamento di un problema e stabilità di un algoritmoL'errore finale ha tre origini (dati, troncamento, arrotondamento). Un problema è ben posto se la soluzione esiste, è unica e dipende con continuità dai dati; il numero di condizionamento K = |x f'(x)/f(x)| misura di quanto un errore relativo sui dati si amplifica nel risultato (si perdono circa log10 K cifre). La stabilità riguarda invece l'algoritmo: un algoritmo instabile amplifica gli errori anche su un problema ben condizionato (ricorrenza I_n = 1 − n I_{n−1}); un problema mal condizionato non si salva con nessun algoritmo. Uno schema numerico converge se è consistente e stabile (derivata numerica: troncamento contro arrotondamento).Condizionamento di un problema e stabilità di un algoritmo →): oltre una certa precisione contano solo gli arrotondamenti.

Il metodo delle secanti

Newton richiede f′f', che può essere costosa o non disponibile. Si sostituisce f′(xk)f'(x_k) con il rapporto incrementale sugli ultimi due punti: xk+1=xk−f(xk) xk−xk−1f(xk)−f(xk−1)\boxed{x_{k+1} = x_k - f(x_k)\,\frac{x_k - x_{k-1}}{f(x_k) - f(x_{k-1})}} Geometricamente xk+1x_{k+1} è lo zero della secante per (xk−1,f(xk−1))(x_{k-1}, f(x_{k-1})) e (xk,f(xk))(x_k, f(x_k)) (la retta che interpola ff in due punti, vedi Interpolazione polinomiale - forma di Lagrange, differenze divise ed erroreDati n+1 punti con ascisse distinte esiste un unico polinomio p_n di grado ≤ n che passa per tutti. Forma di Lagrange p = Σ y_i L_i(x) (L_i(x_j) = δ_ij); forma di Newton p = Σ f[x_0..x_k] Π_{j<k}(x − x_j) con le differenze divise (si aggiunge un nodo senza rifare tutto). Errore f(x) − p_n(x) = f^(n+1)(ξ)/(n+1)! · ω(x), ω(x) = Π(x − x_i): dipende da f e dalla scelta dei nodi. Nodi equispaziati con n grande danno il fenomeno di Runge; i nodi di Chebyshev minimizzano max|ω| = 2^(−n) su [−1,1].Interpolazione polinomiale - forma di Lagrange, differenze divise ed errore →). Servono due valori iniziali x0,x1x_0, x_1 e una sola valutazione di ff per passo.

Ordine. L'errore di interpolazione fornisce ek+1≈f′′(α)2f′(α) ek ek−1.e_{k+1} \approx \frac{f''(\alpha)}{2f'(\alpha)}\,e_k\,e_{k-1}. (Il prodotto ekek−1e_ke_{k-1} è l'errore del polinomio di interpolazione in α\alpha: ω(α)=(α−xk)(α−xk−1)\omega(\alpha) = (\alpha-x_k)(\alpha-x_{k-1}).) Se ∣ek+1∣≈A∣ek∣p|e_{k+1}| \approx A|e_k|^p, allora ∣ek−1∣≈(∣ek∣/A)1/p|e_{k-1}| \approx (|e_k|/A)^{1/p} e la relazione diventa A∣ek∣p≈C∣ek∣1+1/p A−1/pA|e_k|^p \approx C|e_k|^{1+1/p}\,A^{-1/p}, quindi p=1+1p  ⟺  p2−p−1=0  ⟺  p=1+52≈1,618,p = 1 + \frac1p \iff p^2 - p - 1 = 0 \iff p = \frac{1+\sqrt5}{2} \approx 1{,}618, il rapporto aureo. Convergenza superlineare ma non quadratica.

Dalla stessa relazione si ricava anche la costante asintotica nel senso della definizione: uguagliando i coefficienti, A=C A−1/pA = C\,A^{-1/p}, cioè A1+1/p=Ap=CA^{1+1/p} = A^{p} = C (perché 1+1p=p1 + \frac1p = p), quindi lim⁡k→∞∣ek+1∣∣ek∣1,618=A=∣f′′(α)2f′(α)∣1/p=∣f′′(α)2f′(α)∣0,618.\lim_{k\to\infty}\frac{|e_{k+1}|}{|e_k|^{1{,}618}} = A = \left|\frac{f''(\alpha)}{2f'(\alpha)}\right|^{1/p} = \left|\frac{f''(\alpha)}{2f'(\alpha)}\right|^{0{,}618}. Attenzione a non confondere le due costanti: C=∣f′′2f′∣C = \left|\frac{f''}{2f'}\right| è quella del prodotto ekek−1e_ke_{k-1}, A=C0,618A = C^{0{,}618} è quella rispetto a ∣ek∣p|e_k|^{p}.

Efficienza. Per valutazione di ff (supponendo f′f' costosa quanto ff): Newton usa 22 valutazioni per passo e ordine 22, cioè 21/2=1,412^{1/2} = 1{,}41 "ordine per valutazione"; le secanti 11 valutazione e ordine 1,6181{,}618, cioè 1,6181{,}618. Quando f′f' è costosa conviene la secante.

Esempio svolto: x3−x−2=0x^3 - x - 2 = 0 con x0=1x_0 = 1, x1=2x_1 = 2. f(1)=−2f(1) = -2, f(2)=4f(2) = 4.

  • x2=2−4⋅2−14−(−2)=2−46=1,33333x_2 = 2 - 4\cdot\frac{2-1}{4-(-2)} = 2 - \frac46 = 1{,}33333.
  • f(x2)=2,37037−1,33333−2=−0,96296f(x_2) = 2{,}37037 - 1{,}33333 - 2 = -0{,}96296.
  • x3=x2−f(x2) x2−x1f(x2)−f(x1)x_3 = x_2 - f(x_2)\,\dfrac{x_2 - x_1}{f(x_2) - f(x_1)}. Il rapporto vale 1,33333−2−0,96296−4=−0,66667−4,96296=0,134328\dfrac{1{,}33333 - 2}{-0{,}96296 - 4} = \dfrac{-0{,}66667}{-4{,}96296} = 0{,}134328, e quindi x3=1,33333−(−0,96296)(0,134328)=1,33333+0,12935=1,46269x_3 = 1{,}33333 - (-0{,}96296)(0{,}134328) = 1{,}33333 + 0{,}12935 = 1{,}46269.
kk xkx_k eke_k
00 11 −5,21⋅10−1-5{,}21\cdot 10^{-1}
11 22 +4,79⋅10−1+4{,}79\cdot 10^{-1}
22 1,33333331{,}3333333 −1,88⋅10−1-1{,}88\cdot 10^{-1}
33 1,46268661{,}4626866 −5,87⋅10−2-5{,}87\cdot 10^{-2}
44 1,53116941{,}5311694 +9,79⋅10−3+9{,}79\cdot 10^{-3}
55 1,52092641{,}5209264 −4,53⋅10−4-4{,}53\cdot 10^{-4}
66 1,52137631{,}5213763 −3,39⋅10−6-3{,}39\cdot 10^{-6}
77 1,52137970801{,}5213797080 +1,18⋅10−9+1{,}18\cdot 10^{-9}
88 1,52137970681{,}5213797068 −3,1⋅10−15-3{,}1\cdot 10^{-15}

La costante ek+1ekek−1\frac{e_{k+1}}{e_ke_{k-1}} si stabilizza attorno a 0,760{,}76 (teorica 0,76790{,}7679), e gli ordini stimati sono 1,51{,}5–1,71{,}7, compatibili con 1,6181{,}618. Il rapporto ∣ek+1∣∣ek∣1,618\frac{|e_{k+1}|}{|e_k|^{1{,}618}} oscilla invece tra 0,810{,}81 e 0,870{,}87, attorno al valore teorico A=0,76790,618=0,849A = 0{,}7679^{0{,}618} = 0{,}849. Servono 88 passi (8 valutazioni di ff oltre alle due iniziali) contro i 44 passi di Newton (4 valutazioni di ff più 4 di f′f').

Codice

python
import math

def newton(f, df, x0, tol=1e-12, nmax=50):
    x = x0
    for k in range(1, nmax + 1):
        dx = f(x) / df(x)
        x -= dx
        if abs(dx) <= tol * max(1.0, abs(x)):
            return x, k
    return x, nmax

def secanti(f, x0, x1, tol=1e-12, nmax=50):
    for k in range(1, nmax + 1):
        x2 = x1 - f(x1) * (x1 - x0) / (f(x1) - f(x0))
        if abs(x2 - x1) <= tol * max(1.0, abs(x2)):
            return x2, k
        x0, x1 = x1, x2
    return x1, nmax

f = lambda x: x**3 - x - 2
df = lambda x: 3 * x**2 - 1
print(newton(f, df, 1.5))
print(secanti(f, 1.0, 2.0))

x, e = 1.0, []                         # radice di 2 con Newton: x -> (x + 2/x)/2
for _ in range(4):
    x = (x + 2 / x) / 2
    e.append(abs(x - math.sqrt(2)))
for k in range(1, 4):
    print(k, e[k] / e[k-1]**2)         # e_{k+1}/e_k^2 -> 1/(2 sqrt 2) = 0.3535...
print(math.log(e[3] / e[2]) / math.log(e[2] / e[1]))   # ordine stimato

Output:

(1.5213797068045676, 4)
(1.5213797068045676, 8)
1 0.33333333333330084
2 0.35294117643144196
3 0.35352238456116425
1.999766671041752

In MATLAB: fzero(@(x) x^3-x-2, 1.5) combina bisezione, secanti e interpolazione inversa; il metodo di Newton si scrive in un ciclo con la derivata analitica; fsolve per sistemi.

Errori tipici

  • Dimenticare di verificare f′(α)≠0f'(\alpha) \neq 0: con radici multiple il metodo è lineare, non quadratico.
  • Applicare la costante f′′2f′\frac{f''}{2f'} con i valori in xkx_k invece che in α\alpha, o scambiarla con ∣g′(α)∣|g'(\alpha)| (che è nullo).
  • Dire che "Newton converge sempre": è un metodo locale; x0x_0 va scelto vicino alla radice.
  • Calcolare l'ordine delle secanti come 22: è 1,6181{,}618.
  • Usare un incremento piccolo come criterio senza controllare ∣f′∣|f'| nella zona (radici quasi multiple).

Domande d'esame

  1. Definire l'ordine di convergenza di un metodo iterativo. Risposta: pp tale che ∣ek+1∣/∣ek∣p→C∈ ]0,∞[|e_{k+1}|/|e_k|^p \to C \in\,]0,\infty[.
  2. Dimostrare che Newton ha ordine 22 per una radice semplice. Risposta: Taylor di ff centrato in xkx_k calcolata in α\alpha, dividere per f′(xk)f'(x_k): ek+1=f′′(ξk)2f′(xk)ek2e_{k+1} = \frac{f''(\xi_k)}{2f'(x_k)}e_k^2.
  3. Cosa succede a Newton con una radice di molteplicità mm? Risposta: convergenza lineare con tasso m−1m\frac{m-1}{m}; con x−mf/f′x - m f/f' torna quadratica.
  4. Perché le secanti hanno ordine 1+52\frac{1+\sqrt5}{2}? Risposta: ek+1≈Cekek−1e_{k+1} \approx C e_ke_{k-1} implica p=1+1pp = 1 + \frac1p.

Versione ripasso

Ordine pp: ∣ek+1∣∣ek∣p→C\frac{|e_{k+1}|}{|e_k|^p}\to C; p=1p=1 lineare (tasso C<1C<1), p=2p=2 quadratica (cifre corrette raddoppiano), 1<p<21<p<2 superlineare. Stima: p≈ln⁡(∣ek+1∣/∣ek∣)ln⁡(∣ek∣/∣ek−1∣)p\approx\frac{\ln(|e_{k+1}|/|e_k|)}{\ln(|e_k|/|e_{k-1}|)}, con gli incrementi se α\alpha è ignoto.

Newton: xk+1=xk−f(xk)f′(xk)x_{k+1}=x_k-\frac{f(x_k)}{f'(x_k)} (zero della tangente; punto fisso con g=x−ff′g=x-\frac f{f'}, g′(α)=ff′′f′2=0g'(\alpha)=\frac{ff''}{f'^2}=0).

  • Teorema: f∈C2f\in C^2, f(α)=0f(\alpha)=0, f′(α)≠0f'(\alpha)\ne0 ⇒\Rightarrow convergenza locale, ek+1ek2→f′′(α)2f′(α)\frac{e_{k+1}}{e_k^2}\to\frac{f''(\alpha)}{2f'(\alpha)} (Formula di Taylor con resto di LagrangeSe f ha n+1 derivate continue su [a,b], l'errore tra f e il suo polinomio di Taylor si scrive esattamente come f^(n+1)(c)(x-x0)^(n+1)/(n+1)! per un c opportuno: serve a stimare l'errore su tutto un intervallo e a scegliere il grado del polinomio.Formula di Taylor con resto di Lagrange →).
  • Dimostrazione: 0=f(xk)+f′(xk)(α−xk)+f′′(ξ)2(α−xk)20=f(x_k)+f'(x_k)(\alpha-x_k)+\frac{f''(\xi)}2(\alpha-x_k)^2, si divide per f′(xk)f'(x_k): ek+1=f′′(ξk)2f′(xk)ek2e_{k+1}=\frac{f''(\xi_k)}{2f'(x_k)}e_k^2; ∣ek+1∣≤M2mek2|e_{k+1}|\le\frac M{2m}e_k^2 con δ=min⁡{⋅,mM}\delta=\min\{\cdot,\frac mM\}.
  • 2\sqrt2 (Erone x→12(x+2x)x\to\frac12(x+\frac2x)) da 11: 1, 32, 1712, 5774081,\ \frac32,\ \frac{17}{12},\ \frac{577}{408}; errori −0,414, 8,6⋅10−2, 2,5⋅10−3, 2,1⋅10−6, 1,6⋅10−12-0{,}414,\ 8{,}6\cdot10^{-2},\ 2{,}5\cdot10^{-3},\ 2{,}1\cdot10^{-6},\ 1{,}6\cdot10^{-12}; ekek−12=0,500, 0,333, 0,353, 0,3535→122\frac{e_k}{e_{k-1}^2}=0{,}500,\ 0{,}333,\ 0{,}353,\ 0{,}3535\to\frac1{2\sqrt2}; p≈2,00p\approx2{,}00.
  • x3−x−2x^3-x-2 da 1,51{,}5: x1=1,5+0,1255,75=1,5217391x_1=1{,}5+\frac{0{,}125}{5{,}75}=1{,}5217391, errori −2,1⋅10−2, 3,6⋅10−4, 9,9⋅10−8, 7,6⋅10−15-2{,}1\cdot10^{-2},\ 3{,}6\cdot10^{-4},\ 9{,}9\cdot10^{-8},\ 7{,}6\cdot10^{-15}, costante 6α2(3α2−1)=0,7679\frac{6\alpha}{2(3\alpha^2-1)}=0{,}7679; 44 passi contro 1111 (punto fisso) e 3333 (bisezione) per 10−1010^{-10}.
  • Arresto: ∣xk+1−xk∣≈∣ek∣|x_{k+1}-x_k|\approx|e_k| (metodo superlineare).

Fallimenti: f′(xk)=0f'(x_k)=0; x0x_0 lontano: x3−2x+2x^3-2x+2 da 00 cicla 0→1→00\to1\to0; arctan⁡x\arctan x da 1,51{,}5 diverge (−1,694, 2,321, −5,114, 32,3-1{,}694,\ 2{,}321,\ -5{,}114,\ 32{,}3), da 1,31{,}3 converge.

Radici multiple (f=(x−α)mhf=(x-\alpha)^mh): Newton lineare con tasso m−1m\frac{m-1}m (per (x−1)m(x-1)^m: ek+1=m−1meke_{k+1}=\frac{m-1}me_k). (x−1)2(x+2)(x-1)^2(x+2) da 22: 1,5556, 1,2979, 1,1554, …1{,}5556,\ 1{,}2979,\ 1{,}1554,\ \dots, rapporto →0,5\to0{,}5. Modificato x−mff′x-m\frac f{f'} (m=2m=2): 1,1111, 1,0019493, 1,00000063271{,}1111,\ 1{,}0019493,\ 1{,}0000006327 (quadratico). Radici multiple mal condizionate.

Secanti: xk+1=xk−f(xk)xk−xk−1f(xk)−f(xk−1)x_{k+1}=x_k-f(x_k)\frac{x_k-x_{k-1}}{f(x_k)-f(x_{k-1})} (zero della retta per due punti, Interpolazione polinomiale - forma di Lagrange, differenze divise ed erroreDati n+1 punti con ascisse distinte esiste un unico polinomio p_n di grado ≤ n che passa per tutti. Forma di Lagrange p = Σ y_i L_i(x) (L_i(x_j) = δ_ij); forma di Newton p = Σ f[x_0..x_k] Π_{j<k}(x − x_j) con le differenze divise (si aggiunge un nodo senza rifare tutto). Errore f(x) − p_n(x) = f^(n+1)(ξ)/(n+1)! · ω(x), ω(x) = Π(x − x_i): dipende da f e dalla scelta dei nodi. Nodi equispaziati con n grande danno il fenomeno di Runge; i nodi di Chebyshev minimizzano max|ω| = 2^(−n) su [−1,1].Interpolazione polinomiale - forma di Lagrange, differenze divise ed errore →); ek+1≈f′′2f′ekek−1e_{k+1}\approx\frac{f''}{2f'}e_ke_{k-1}, quindi p=1+1pp=1+\frac1p, p=1+52=1,618p=\frac{1+\sqrt5}2=1{,}618, con costante asintotica ∣ek+1∣∣ek∣p→∣f′′2f′∣1/p\frac{|e_{k+1}|}{|e_k|^p}\to\left|\frac{f''}{2f'}\right|^{1/p} (0,8490{,}849 per x3−x−2x^3-x-2); una valutazione di ff per passo (efficienza 1,6181{,}618 contro 2=1,41\sqrt2=1{,}41 di Newton).

  • x3−x−2x^3-x-2 con x0=1x_0=1, x1=2x_1=2: x2=2−46=1,33333x_2=2-\frac46=1{,}33333, f(x2)=−0,96296f(x_2)=-0{,}96296, x3=1,46269x_3=1{,}46269, 1,53117, 1,52093, 1,521376, 1,521379711{,}53117,\ 1{,}52093,\ 1{,}521376,\ 1{,}52137971; 88 passi; ek+1ekek−1≈0,76\frac{e_{k+1}}{e_ke_{k-1}}\approx0{,}76 (teorica 0,76790{,}7679).
  • MATLAB: fzero, fsolve.

Passaggi principali.

  • Perché le cifre raddoppiano: ∣ek∣≈10−s⇒∣ek+1∣≈C 10−2s|e_k|\approx10^{-s}\Rightarrow|e_{k+1}|\approx C\,10^{-2s}; da 10−110^{-1} a 10−1610^{-16} servono 44 passi quadratici (10−1,10−2,10−4,10−8,10−1610^{-1},10^{-2},10^{-4},10^{-8},10^{-16}) contro 1616 lineari con tasso 0,10{,}1.
  • Costante di Newton per x2−2x^2-2: f′′2f′=22⋅22=0,35355\frac{f''}{2f'}=\frac{2}{2\cdot2\sqrt2}=0{,}35355; per x3−x−2x^3-x-2: 6α2(3α2−1)=9,128311,8876=0,7679\frac{6\alpha}{2(3\alpha^2-1)}=\frac{9{,}1283}{11{,}8876}=0{,}7679.
  • Primo passo di Erone: x1=12(1+2)=1,5x_1=\frac12(1+2)=1{,}5, x2=12(1,5+21,5)=12(1,5+1,3333)=1,41667x_2=\frac12(1{,}5+\frac2{1{,}5})=\frac12(1{,}5+1{,}3333)=1{,}41667.
  • Secanti, relazione tra gli ordini: ∣ek−1∣≈(∣ek∣/A)1/p|e_{k-1}|\approx(|e_k|/A)^{1/p} inserito in A∣ek∣p≈C∣ek∣∣ek−1∣A|e_k|^p\approx C|e_k||e_{k-1}| dà l'esponente 1+1p1+\frac1p, cioè p2−p−1=0p^2-p-1=0.
  • Il prodotto ekek−1e_ke_{k-1} viene dall'errore di interpolazione lineare in α\alpha, ω(α)=(α−xk)(α−xk−1)\omega(\alpha)=(\alpha-x_k)(\alpha-x_{k-1}).
  • Secanti sul cubico: errori −0,521, +0,479, −0,188, −5,87⋅10−2, +9,79⋅10−3, −4,53⋅10−4, −3,39⋅10−6, +1,18⋅10−9-0{,}521,\ +0{,}479,\ -0{,}188,\ -5{,}87\cdot10^{-2},\ +9{,}79\cdot10^{-3},\ -4{,}53\cdot10^{-4},\ -3{,}39\cdot10^{-6},\ +1{,}18\cdot10^{-9}.
  • Criterio d'arresto per Newton: ∣xk+1−xk∣≤tol max⁡(1,∣xk+1∣)|x_{k+1}-x_k|\le\text{tol}\,\max(1,|x_{k+1}|) più un numero massimo di iterazioni.

Errori tipici: supporre f′(α)≠0f'(\alpha)\ne0 senza controllare; confondere CC con ∣g′(α)∣|g'(\alpha)| (nullo); "Newton converge sempre"; ordine delle secanti 22.

Esercizi su questo argomento

Teoria collegata