Salta al contenuto
Note per Studenti Esercizio - Propagazione dell'errore in una differenza e riformulazione di sqrt(x2+1) - x

Esercizio - Propagazione dell'errore in una differenza e riformulazione di sqrt(x^2+1) - x

In questa pagina 3

Teoria: Aritmetica di macchina - floating point, precisione di macchina e cancellazioneUn calcolatore rappresenta solo un insieme finito di numeri F(β,t,L,U); ogni numero reale viene arrotondato con errore relativo al più u = ½β^(1−t) (u ≈ 1,1·10⁻¹⁶ in doppia precisione) e ogni operazione è esatta più un errore (1+δ), |δ| ≤ u. Conseguenze: overflow e underflow, somma non associativa, assorbimento, e soprattutto la cancellazione numerica nella differenza di numeri quasi uguali, che si evita riformulando l'espressione.Aritmetica di macchina - floating point, precisione di macchina e cancellazione →.

Testo

  • (a) Due lunghezze sono misurate con un calibro che dà 33 decimali (errore assoluto massimo 5⋅10−4 mm5\cdot 10^{-4}\,\text{mm} per ciascuna): a=12,347 mma = 12{,}347\,\text{mm} e b=12,341 mmb = 12{,}341\,\text{mm}. Si vuole la differenza d=a−bd = a - b. Calcolare dd, l'errore assoluto massimo su dd, l'errore relativo massimo su dd e il fattore di amplificazione rispetto agli errori relativi dei dati.
  • (b) Si calcola f(x)=x2+1−xf(x) = \sqrt{x^2 + 1} - x per x=1000x = 1000 con 66 cifre significative. Mostrare che la formula diretta fallisce.
  • (c) Riscrivere ff in forma stabile e calcolarla di nuovo a 66 cifre. Confrontare con il valore esatto f(1000)=4,99999875⋅10−4f(1000) = 4{,}99999875\cdot 10^{-4}.
  • (d) Domanda teorica: per quali xx la formula diretta è accettabile?

Soluzione

(a) Misure

  • d=12,347−12,341=0,006 mmd = 12{,}347 - 12{,}341 = 0{,}006\,\text{mm}.
  • Errore assoluto massimo: gli errori si possono sommare in modulo, ∣Δd∣≤∣Δa∣+∣Δb∣=5⋅10−4+5⋅10−4=10−3 mm|\Delta d| \le |\Delta a| + |\Delta b| = 5\cdot 10^{-4} + 5\cdot 10^{-4} = 10^{-3}\,\text{mm}.
  • Errore relativo massimo su dd: 10−30,006=0,1667\dfrac{10^{-3}}{0{,}006} = 0{,}1667, cioè circa 17%17\%.
  • Errori relativi dei dati: 5⋅10−412,347≈4,05⋅10−5\frac{5\cdot 10^{-4}}{12{,}347} \approx 4{,}05\cdot 10^{-5} (0,004%0{,}004\%).
  • Fattore di amplificazione: ∣a∣+∣b∣∣a−b∣=24,6880,006≈4115\dfrac{|a| + |b|}{|a - b|} = \dfrac{24{,}688}{0{,}006} \approx 4115; infatti 4115⋅4,05⋅10−5≈0,16674115 \cdot 4{,}05\cdot 10^{-5} \approx 0{,}1667 ✓.

Due misure precise al 0,004%0{,}004\% danno una differenza incerta del 17%17\%: si sono perse quasi 44 cifre significative.

(b) Formula diretta

x2+1=1 000 001x^2 + 1 = 1\,000\,001, la cui radice è 1000,0005…1000{,}0005\ldots (esatto: 1000,000499999…1000{,}000499999\ldots). A 66 cifre significative: x2+1→1000,00,f=1000,00−1000=0.\sqrt{x^2+1} \to 1000{,}00, \qquad f = 1000{,}00 - 1000 = 0. Risultato 00 invece di 4,99999875⋅10−44{,}99999875\cdot 10^{-4}: errore del 100%100\%. La cifra utile era la settima.

(c) Formula stabile

Si moltiplica e si divide per x2+1+x\sqrt{x^2+1} + x: x2+1−x=(x2+1)−x2x2+1+x=1x2+1+x.\sqrt{x^2+1} - x = \frac{(x^2 + 1) - x^2}{\sqrt{x^2+1} + x} = \frac{1}{\sqrt{x^2+1} + x}. Con 66 cifre: x2+1+x=1000,00+1000=2000,00\sqrt{x^2+1} + x = 1000{,}00 + 1000 = 2000{,}00, quindi f(1000)=12000,00=5,00000⋅10−4.f(1000) = \frac{1}{2000{,}00} = 5{,}00000\cdot 10^{-4}. Errore relativo rispetto a 4,99999875⋅10−44{,}99999875\cdot 10^{-4}: 1,25⋅10−104,99999875⋅10−4≈2,5⋅10−7\frac{1{,}25\cdot 10^{-10}}{4{,}99999875\cdot 10^{-4}} \approx 2{,}5\cdot 10^{-7}. Tutte le 66 cifre sono corrette, perché al denominatore c'è una somma di numeri positivi (nessuna cancellazione).

(d) Quando la formula diretta va bene

L'amplificazione è x2+1+xx2+1−x≈4x2\frac{\sqrt{x^2+1} + x}{\sqrt{x^2+1} - x} \approx 4x^2 per xx grande: cresce come x2x^2. Per xx piccolo (ad esempio x≤1x \le 1) vale poco più di 11 e la formula diretta è accettabile. Con x=1000x = 1000 l'amplificazione è 4⋅1064\cdot 10^6: servono più di 66 cifre per sopravvivere. Per x<0x < 0 non c'è problema: i due termini x2+1\sqrt{x^2+1} e −x-x hanno lo stesso segno e si sommano.

Risultati. (a) d=0,006 mmd = \mathbf{0{,}006\,\text{mm}} con errore massimo 17%\mathbf{17\%} e amplificazione ≈4115\mathbf{\approx 4115}. (b) la formula diretta dà 0\mathbf{0}. (c) f(1000)=5,00000⋅10−4f(1000) = \mathbf{5{,}00000\cdot 10^{-4}}.

Errori tipici

  • Sommare gli errori relativi dei dati senza tenere conto del denominatore ∣a−b∣|a-b|.
  • Aggiungere cifre al calcolo intermedio come soluzione: sposta il problema, non lo risolve.
  • Razionalizzare nel verso sbagliato (moltiplicare per x2+1−x\sqrt{x^2+1} - x riporta alla stessa formula).

Versione ripasso

(a) a=12,347a=12{,}347, b=12,341b=12{,}341 (errore assoluto 5⋅10−45\cdot10^{-4} ciascuna): d=0,006 mmd=0{,}006\,\text{mm}, ∣Δd∣≤10−3|\Delta d|\le10^{-3}, errore relativo 10−30,006≈17%\frac{10^{-3}}{0{,}006}\approx17\%. Dati: 4,05⋅10−54{,}05\cdot10^{-5}. Amplificazione ∣a∣+∣b∣∣a−b∣=24,6880,006≈4115\frac{|a|+|b|}{|a-b|}=\frac{24{,}688}{0{,}006}\approx4115 (controllo: 4115⋅4,05⋅10−5≈0,1674115\cdot4{,}05\cdot10^{-5}\approx0{,}167).

(b) x=1000x=1000, 66 cifre: 1000001=1000,0005…→1000,00\sqrt{1000001}=1000{,}0005\ldots\to1000{,}00, f=1000,00−1000=0f=1000{,}00-1000=0 invece di 4,99999875⋅10−44{,}99999875\cdot10^{-4}.

(c) x2+1−x=1x2+1+x\sqrt{x^2+1}-x=\frac{1}{\sqrt{x^2+1}+x}: 12000,00=5,00000⋅10−4\frac1{2000{,}00}=5{,}00000\cdot10^{-4}, errore relativo 2,5⋅10−72{,}5\cdot10^{-7} (somma, nessuna cancellazione).

(d) Amplificazione x2+1+xx2+1−x≈4x2\frac{\sqrt{x^2+1}+x}{\sqrt{x^2+1}-x}\approx4x^2: per x≤1x\le1 la formula diretta va, per x=1000x=1000 vale 4⋅1064\cdot10^6. Per x<0x<0 nessun problema (termini concordi).

Errori tipici: ignorare il denominatore ∣a−b∣|a-b| nell'errore relativo; aggiungere cifre intermedie (sposta il problema); razionalizzare nel verso sbagliato.

Teoria collegata