18.01.2015 Views

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.7. Instabilità e malcon<strong>di</strong>zionamento<br />

h errore<br />

h<br />

2 |f ′′ (x 0 )|<br />

1.e-8 4.3611e-10 4.6602e-9<br />

1.e-9 5.5947e-8 4.6602e-10<br />

1.e-10 1.6697e-7 4.6602e-11<br />

1.e-11 4.6603e-5 4.6602e-12<br />

1.e-12 1.3006e-4 4.6602e-13<br />

1.e-13 4.2505e-4 4.6602e-14<br />

1.e-16 3.6236e-1 4.6602e-16<br />

1.e-18 3.6236e-1 4.6602e-19<br />

In Figura 3.4 ve<strong>di</strong>amo come la curva dell’errore inizialmente segue la retta descritta dall’errore <strong>di</strong> <strong>di</strong>scretizzazione<br />

ma poi si allontana da essa. Perchè questo <strong>di</strong>verso comportamento per valori <strong>di</strong> h molto<br />

piccoli Dobbiamo tenere presente che l’errore che noi valutiamo non è semplicemente l’errore <strong>di</strong> <strong>di</strong>scretizzazione<br />

ma la somma dell’errore <strong>di</strong> <strong>di</strong>scretizzazione e dell’errore <strong>di</strong> arrotondamento! Per valori<br />

<strong>di</strong> h gran<strong>di</strong>, l’errore <strong>di</strong> <strong>di</strong>scretizzazione descresce al <strong>di</strong>minuire <strong>di</strong> h e domina sull’errore <strong>di</strong> arrotondamento.<br />

Ma quando l’errore <strong>di</strong> <strong>di</strong>scretizzazione <strong>di</strong>venta molto piccolo, per valori <strong>di</strong> h minori <strong>di</strong> 10 −8 ,<br />

allora l’errore <strong>di</strong> arrotondamento inizia a dominare e ad aumentare sempre più al <strong>di</strong>minuire <strong>di</strong> h. Questo<br />

è un motivo per cui si deve cercare <strong>di</strong> far prevalere l’errore <strong>di</strong> <strong>di</strong>scretizzazione in un proce<strong>di</strong>mento<br />

numerico. Nell’errore <strong>di</strong> arrotondamento, per h via via più piccoli, si verifica un errore <strong>di</strong> cancellazione:<br />

f (x 0 + h) è praticamente uguale a f (x 0 ) per h molto piccoli! per cui l’errore che calcoliamo è<br />

|f ′ (x 0 ) − 0| = f ′ (x 0 ) = 0.3623577544....<br />

Una strategia per evitare la cancellazione è <strong>di</strong> scrivere <strong>di</strong>versamente la <strong>di</strong>fferenza f (x 0 + h) −<br />

f (x 0 ). Nel caso <strong>di</strong> f (x) = sin(x) ricorriamo alla formula trigonometrica per cui sin(φ) − sin(ψ) =<br />

2cos( φ + ψ )sin( φ − ψ ).<br />

2 2<br />

Ve<strong>di</strong>amo come migliorano le cose inserendo nel grafico 3.4 anche la curva dell’errore che otteniamo<br />

utilizzando questa espressione trigonometrica. L’errore continua a <strong>di</strong>minuire anche quando la formula<br />

precedente dà un errore crescente. Sempre in Figura 3.4, e in riferimento alla formula “non buona”,<br />

abbiamo considerato la curva dell’errore <strong>di</strong> arrotondamento in modo da confrontare l’andamento effettivo<br />

dell’errore con un limite superiore teorico dell’errore computazionale totale dato dalla somme<br />

<strong>degli</strong> errori <strong>di</strong> <strong>di</strong>scretizzazione e <strong>di</strong> arrotondamento. La rappresentazione <strong>di</strong> f (x) è affetta da errore per<br />

cui avremo: f (x) = f ∗ (x) + e x . L’errore <strong>di</strong> arrotondamento è f (x 0 + h) − f (x 0 )<br />

= f ∗ (x 0 + h) − f ∗ (x 0 )<br />

+<br />

h<br />

h<br />

e x0 +h − e x0<br />

. Maggiorando e x con la precisione <strong>di</strong> macchina ɛ, l’errore <strong>di</strong> arrotondamento è dato da<br />

h<br />

2ɛ/h: per h piccoli è l’errore che predomina!<br />

3.7 Instabilità e malcon<strong>di</strong>zionamento<br />

3.7.1 Instabilità<br />

In generale è impossibile evitare un accumulo lineare <strong>degli</strong> errori <strong>di</strong> arrotondamento durante un calcolo,<br />

ed è accettabile che ci sia una crescita lineare moderata, del tipo<br />

E n ≈ c 0 nE 0<br />

dove E n misura l’errore relativo dell’n-sima operazione dell’algoritmo 5 e c 0 sia una costante non molto<br />

grande.<br />

Se invece avviene una crescita <strong>di</strong> tipo esponenziale<br />

E n ≈ c n 1 E 0<br />

5 Per algoritmo inten<strong>di</strong>amo un proce<strong>di</strong>mento <strong>di</strong> calcolo. Per una definizione più approfon<strong>di</strong>ta si veda pag. al Capitolo .<br />

31

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!