Si considera l'iterazione xk+1=g(xk) con g(x)=0,9x+0,1 da x0=2, il cui punto fisso è α=1.
(a) Trovare L, scrivere l'errore ek=xk−α in forma chiusa e calcolare x1,…,x5.
(b) Calcolare il rapporto tra errore e incremento ∣xk−xk−1∣ e confrontarlo con 1−LL.
(c) Si ferma l'iterazione quando ∣xk−xk−1∣≤10−3. A quale k ci si ferma e quanto vale l'errore vero? Come si deve scegliere la soglia sull'incremento per garantire un errore ≤10−3?
(d) Domanda teorica: la funzione f(x)=(x−1)3 ha lo zero α=1. Se si usa come criterio ∣f(xk)∣≤10−6, quale errore si può avere? Perché?
Soluzione
(a) Errore in forma chiusa
g′(x)=0,9 costante, quindi L=0,9 (qui il tasso è esattamente 0,9 ovunque). Poiché α=g(α),
ek+1=xk+1−α=g(xk)−g(α)=0,9(xk−α)=0,9ek⟹ek=0,9ke0=0,9k.
Iterazioni: x1=0,9⋅2+0,1=1,9; x2=0,9⋅1,9+0,1=1,81; x3=1,729; x4=1,6561; x5=1,59049. Gli errori sono 0,9,0,81,0,729,0,6561,0,59049: lenti, perché L è vicino a 1.
(b) Errore contro incremento
L'incremento è ∣xk−xk−1∣=∣ek−ek−1∣=∣0,9k−0,9k−1∣=0,1⋅0,9k−1. Quindi
∣xk−xk−1∣∣ek∣=0,1⋅0,9k−10,9k=0,10,9=9=1−LL.
Tabella per k=1,…,5: incrementi 0,1,0,09,0,081,0,0729,0,06561; errori 0,9,0,81,0,729,0,6561,0,59049; rapporto sempre 9. In questo caso la stima a posteriori ∣xk−α∣≤1−LL∣xk−xk−1∣ è un'uguaglianza.
(c) Soglia sull'incremento
Incremento ≤10−3: 0,1⋅0,9k−1≤10−3⟺0,9k−1≤0,01⟺k−1≥ln0,9ln0,01=43,7, quindi k=45. L'incremento vale 9,7⋅10−4, ma l'errore vero è 0,945=8,7⋅10−3: quasi 9 volte la tolleranza. L'iterazione si ferma troppo presto.
Per garantire ∣xk−α∣≤10−3 occorre 1−LL∣xk−xk−1∣≤10−3, cioè incremento ≤L1−L10−3=1,11⋅10−4: la prima volta che succede è a k=66 (incremento 0,1⋅0,965=1,06⋅10−4, mentre a k=65 era 1,18⋅10−4), con errore vero 0,966=9,55⋅10−4≤10−3 ✓. Qui la stima a posteriori è un'uguaglianza, quindi l'errore è esattamente 9 volte l'incremento.
(d) Il residuo
Per f(x)=(x−1)3: ∣f(xk)∣≤10−6 equivale a ∣xk−1∣≤(10−6)1/3=10−2. Quindi con residuo 10−6 l'errore può essere 10−2 (esempio: x=1,01 ha f=10−6). In generale vale ∣xk−α∣≈∣f′(α)∣∣f(xk)∣ se f′(α)=0; qui f′(1)=0 (radice tripla), e il problema è molto mal condizionato: l'errore è la radice cubica del residuo. Anche con residuo 10−9 l'errore resta 10−3.
Risultati.L=0,9, ek=0,9k; rapporto errore/incremento 9; con soglia 10−3 sull'incremento si ferma a k=45 con errore 8,7⋅10−3; la soglia corretta è 1,1⋅10−4 (k=66).
Errori tipici
Pensare che "incremento piccolo" significhi "errore piccolo": serve il fattore 1−LL (qui 9; vale 99 se L=0,99).
Pensare che "residuo piccolo" significhi "errore piccolo": dipende da f′(α).
(d)f=(x−1)3: ∣f∣≤10−6⇔∣x−1∣≤10−2 (es. x=1,01). In generale errore ≈∣f′(α)∣∣f∣; qui f′(1)=0 (radice tripla), errore =3∣f∣; con residuo 10−9 errore 10−3.
Errori tipici: incremento piccolo = errore piccolo (fattore 1−LL, 99 se L=0,99); residuo piccolo = errore piccolo (dipende da f′(α)).