Teoria: 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 →.
Testo
L'equazione x2−5x+4=0 ha le radici α1=1 e α2=4. Si considerano le tre riscritture x=g(x):
g1(x)=5x2+4,g2(x)=5−x4,g3(x)=5x−4.
- (a) Verificare che ciascuna ha per punti fissi le radici dell'equazione.
- (b) Calcolare g′(α1) e g′(α2) per ciascuna e dire a quale radice (se una) l'iterazione converge localmente.
- (c) Eseguire cinque iterazioni di g1 da x0=0 e di g2 da x0=2, e verificare il rapporto tra gli errori.
- (d) Domanda teorica: cosa succede a g1 partendo da x0=3,9 (vicino a 4) e da x0=4,1?
Soluzione
(a) Punti fissi
- x=5x2+4⟺5x=x2+4⟺x2−5x+4=0 ✓.
- x=5−x4⟺x2=5x−4⟺x2−5x+4=0 ✓ (per x=0).
- x=5x−4⟺x2=5x−4 con x≥0 ✓ (per x≥54).
(b) Derivate nei punti fissi
|
g′(x) |
g′(1) |
g′(4) |
| g1 |
52x |
0,4 |
1,6 |
| g2 |
x24 |
4 |
0,25 |
| g3 |
25x−45 |
2,5 |
0,625 |
Convergenza locale se ∣g′(α)∣<1:
- g1 converge a α1=1 (tasso 0,4), non a 4 (1,6>1, repulsivo).
- g2 converge a α2=4 (tasso 0,25), non a 1 (4>1).
- g3 converge a α2=4 (tasso 0,625), non a 1 (2,5>1).
La stessa equazione fornisce tre metodi diversi, ciascuno capace di "trovare" una sola delle due radici.
(c) Iterazioni
g1 da x0=0 (errore ek=xk−1):
| k |
xk |
ek |
ek/ek−1 |
| 0 |
0 |
−1 |
|
| 1 |
0,8 |
−0,2 |
0,200 |
| 2 |
0,928 |
−0,072 |
0,360 |
| 3 |
0,97224 |
−0,02776 |
0,386 |
| 4 |
0,98905 |
−0,01095 |
0,394 |
| 5 |
0,99564 |
−0,00436 |
0,398 |
(Ad esempio x1=50+4=0,8, x2=50,64+4=0,928.) Il rapporto tende a g1′(1)=0,4.
g2 da x0=2 (errore ek=xk−4):
| k |
xk |
ek |
ek/ek−1 |
| 0 |
2 |
−2 |
|
| 1 |
3 |
−1 |
0,500 |
| 2 |
3,66667 |
−0,33333 |
0,333 |
| 3 |
3,90909 |
−0,09091 |
0,273 |
| 4 |
3,97674 |
−0,02326 |
0,256 |
| 5 |
3,99415 |
−0,00585 |
0,251 |
(x1=5−24=3, x2=5−34=3,6667.) Il rapporto tende a g2′(4)=0,25: più veloce, guadagna circa 0,6 cifre decimali per iterazione.
(d) Vicino alla radice repulsiva
Con g1 da x0=3,9: 3,9, 3,842, 3,752, 3,616, 3,415, 3,132, 2,762, 2,326,… si allontana da 4 e scende verso 1 (dove g1′(1)=0,4<1 lo cattura). Da x0=4,1: 4,162, 4,264, 4,437, 4,738,… cresce senza limite (diverge). Il valore 4 è un punto fisso "instabile": solo partendo esattamente da 4 si resta lì. Una zona di convergenza garantita dal teorema delle contrazioni è [0,2]: g1 è crescente, g1(0)=0,8 e g1(2)=1,6, quindi g1([0,2])=[0,8,1,6]⊂[0,2], e ∣g1′∣=52x≤0,8=L<1 su [0,2]. Un metodo più veloce (con g′(α)=0) è quello di Newton (Metodo di Newton, metodo delle secanti e ordine di convergenzaOrdine di convergenza p: |e_{k+1}| ≈ C|e_k|^p (p = 1 lineare, p = 2 quadratica: le cifre corrette raddoppiano a ogni passo). Newton x_{k+1} = x_k − f(x_k)/f'(x_k): zero della tangente, ordine 2 per radici semplici con e_{k+1} ≈ f''(α)/(2f'(α)) e_k²; per radici di molteplicità m è solo lineare con tasso (m−1)/m (si recupera con x − m f/f'). Secanti: sostituisce f' con un rapporto incrementale, ordine (1+√5)/2 ≈ 1,618, una sola valutazione di f per passo. Newton richiede un x_0 abbastanza vicino: può ciclare o divergere.Metodo di Newton, metodo delle secanti e ordine di convergenza →).
Risultati. g1→1 (tasso 0,4); g2→4 (tasso 0,25); g3→4 (tasso 0,625).
Errori tipici
- Dire che una riscrittura "converge" senza specificare a quale punto fisso: l'esito dipende da g′ nel punto fisso.
- Dimenticare di controllare il dominio di g (g2 in x=0, g3 per x<54).
Versione ripasso
(a) Radici 1 e 4; ciascuna g ha come punti fissi le radici (g1=5x2+4, g2=5−x4, g3=5x−4; 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 →).
(b) Convergenza locale se ∣g′(α)∣<1:
|
g′ |
g′(1) |
g′(4) |
| g1 |
52x |
0,4 |
1,6 |
| g2 |
x24 |
4 |
0,25 |
| g3 |
25x−45 |
2,5 |
0,625 |
g1→1 (tasso 0,4); g2→4 (0,25); g3→4 (0,625).
(c) g1 da 0: 0,8, 0,928, 0,97224, 0,98905, 0,99564, rapporti 0,2, 0,36, 0,386, 0,394, 0,398→0,4. g2 da 2: 3, 3,6667, 3,90909, 3,97674, 3,99415, rapporti 0,5, 0,333, 0,273, 0,256, 0,251→0,25.
(d) g1 da 3,9: 3,842, 3,752, 3,616, 3,415,… si allontana da 4 e va verso 1; da 4,1: 4,162, 4,264, 4,437,… diverge. Newton ha g′(α)=0.
Errori tipici: parlare di convergenza senza dire a quale punto fisso; trascurare il dominio di g (g2 in 0, g3 per x<54).