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
Si consideri l'equazione ex=3x, cioè f(x)=ex−3x=0.
- (a) Verificare che [0,1] soddisfa le ipotesi della bisezione e che anche [1,2] le soddisfa. Perché [0,2] non va bene, pur contenendo due radici?
- (b) Eseguire a mano sei iterazioni sull'intervallo [0,1] (da n=0 a n=5), dando cn, f(cn) e il nuovo intervallo.
- (c) Dare il maggiorante dell'errore di c5 e il numero minimo di iterazioni per ottenere ∣cn−α∣≤10−5.
- (d) Domanda teorica: la sequenza degli errori effettivi ∣cn−α∣ è monotona? Cosa si può dire di sicuro?
Soluzione
(a) Ipotesi
f è continua (somma di funzioni continue). Valori: f(0)=1−0=1>0, f(1)=e−3=−0,2817<0, f(2)=e2−6=1,3891>0.
- Su [0,1]: f(0)f(1)<0 ✓, c'è una radice (è α1=0,61906).
- Su [1,2]: f(1)f(2)<0 ✓, c'è un'altra radice (α2=1,51213).
- Su [0,2]: f(0)f(2)=1,39>0. Il prodotto è positivo perché le due radici fanno cambiare segno a f due volte: il segno agli estremi è lo stesso e la condizione non si può verificare. La bisezione richiede un cambio di segno (numero dispari di radici); con due radici si deve prima separarle guardando i segni in un punto intermedio (x=1).
(b) Sei iterazioni su [0,1]
Si usa f(0)>0: se f(cn)>0 la radice è a destra (an+1=cn), se f(cn)<0 è a sinistra (bn+1=cn).
| n |
[an,bn] |
cn |
f(cn) |
nuovo intervallo |
| 0 |
[0,1] |
0,5 |
e0,5−1,5=+0,1487 |
[0,5,1] |
| 1 |
[0,5,1] |
0,75 |
2,1170−2,25=−0,1330 |
[0,5,0,75] |
| 2 |
[0,5,0,75] |
0,625 |
1,8682−1,875=−0,0068 |
[0,5,0,625] |
| 3 |
[0,5,0,625] |
0,5625 |
1,7551−1,6875=+0,0676 |
[0,5625,0,625] |
| 4 |
[0,5625,0,625] |
0,59375 |
1,8108−1,7813=+0,0295 |
[0,59375,0,625] |
| 5 |
[0,59375,0,625] |
0,609375 |
1,8393−1,8281=+0,0112 |
[0,609375,0,625] |
Dopo n=5 si può prendere c5=0,609375, oppure c6=0,6171875.
(c) Errore e numero di iterazioni
- Maggiorante: ∣c5−α1∣≤26b−a=641=0,0156. Errore effettivo: ∣0,609375−0,619061∣=0,0097 ✓ (inferiore al maggiorante).
- Per 10−5: 2n+11≤10−5⟺n+1≥log2105=16,61⟺n≥15,61, quindi nmin=16 (cioè si arriva fino a c16).
(d) Monotonia
L'errore effettivo non è monotono: gli errori sono 0,1191, 0,1309, 0,0059, 0,0566, 0,0253, 0,0097, 0,0019, 0,0020 (cresce da n=0 a n=1, da n=2 a n=3, da n=6 a n=7). Quello che si può garantire è il maggiorante 2n+1b−a, che dimezza ad ogni passo, e la lunghezza dell'intervallo [an,bn].
Risultati. Radici α1=0,61906 in [0,1] e α2=1,51213 in [1,2]; c5=0,609375 con errore ≤0,0156; servono 16 iterazioni per 10−5.
Errori tipici
- Applicare la bisezione a [0,2]: stesso segno agli estremi, quindi il test non si può fare (e il metodo potrebbe non vedere nessuna delle due radici).
- Contare le iterazioni con 2n invece di 2n+1.
- Fermarsi quando ∣f(cn)∣ è piccolo senza guardare la pendenza di f vicino alla radice.
Versione ripasso
(a) f=ex−3x: f(0)=1, f(1)=−0,2817, f(2)=1,3891. Su [0,1] e su [1,2] cambia segno (α1=0,61906, α2=1,51213); su [0,2] (f(0)f(2)>0) due cambi di segno si compensano, si separano le radici con x=1 (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) Su [0,1]:
- c0=0,5, f=+0,1487→[0,5,1]; c1=0,75, f=−0,1330→[0,5,0,75];
- c2=0,625, f=−0,0068→[0,5,0,625]; c3=0,5625, f=+0,0676→[0,5625,0,625];
- c4=0,59375, f=+0,0295; c5=0,609375, f=+0,0112→[0,609375,0,625].
(c) ∣c5−α1∣≤641=0,0156 (effettivo 0,0097). Per 10−5: n+1≥log2105=16,61, nmin=16.
(d) Errori effettivi 0,119, 0,131, 0,006, 0,057, 0,025, 0,0097, 0,0019, 0,0020: non monotoni; garantito è solo il maggiorante 2n+1b−a.
Errori tipici: bisezione su [0,2]; 2n al posto di 2n+1; fermarsi su ∣f∣ piccolo senza guardare f′.