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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3. RAPPRESENTAZIONE DEI NUMERI NEL CALCOLATORE<br />

La pagina web è del prof. Douglas N. Arnold, dell’Università del Minnesota, e viene introdotta con la<br />

seguente frase (traducendo): Stai seguendo con attenzione il tuo corso <strong>di</strong> analisi numerica o <strong>di</strong> calcolo scientifico<br />

Se no, potrebbe essere un caro errore. Nel seguito, ci sono esempi dalla vita reale <strong>di</strong> ciò che può succedere<br />

quando gli algoritmi numerici non sono applicati correttamente.<br />

Ve<strong>di</strong>amo alcuni <strong>di</strong> questi <strong>di</strong>sastri numerici.<br />

Esempio sul<br />

<strong>di</strong>sastro del<br />

missile<br />

Patriot<br />

Il 25 febbraio 1991, durante la prima Guerra del Golfo, un missile Patriot fallì l’intercettazione <strong>di</strong> un<br />

missile Scud iracheno. Questo errore costò la vita <strong>di</strong> 28 soldati, un centinaio <strong>di</strong> feriti e la <strong>di</strong>struzione <strong>di</strong><br />

un capannone americano. La causa del <strong>di</strong>sastro fu dovuto ad errori <strong>di</strong> arrotondamento nel sistema operativo<br />

del Patriot: ad ogni secondo che passava si introduceva un ritardo infinitesimo che comportava un<br />

errore nella valutazione della traiettoria del missile Scud. Col passare delle ore il ritardo accumulato fu<br />

tale da far intercettare una posizione del tutto <strong>di</strong>versa da quella in cui si trovava il missile da abbattere.<br />

Difatti, il computer usato per controllare il missile Patriot era basato su<br />

un’aritmetica a 24 bit. Per i calcoli, il tempo veniva registrato dall’orologio<br />

interno del sistema in decine <strong>di</strong> secon<strong>di</strong> e successivamente moltiplicato<br />

per 1/10 per ottenere i secon<strong>di</strong>, utilizzando 24 bit in virgola fissa. Il<br />

numero 1/10 in base 2 ha infinite cifre decimali: la sua espansione binaria<br />

è infatti 0.0001100110011001100110011001100.... In 24 bit esso veniva<br />

registrato come 0.00011001100110011001100 introducendo un errore<br />

<strong>di</strong> 0.0000000000000000000000011001100..., che, in base 10, significa<br />

circa 0.000000095.<br />

Gli errori <strong>di</strong> arrotondamento nella conversione del tempo<br />

causarono un errore nel calcolo della traiettoria: il tempo<br />

<strong>di</strong> 100 ore calcolato in secon<strong>di</strong> <strong>di</strong>ede il valore 359999.6567<br />

Figura 3.1: Il <strong>di</strong>sastro del missile invece <strong>di</strong> 360000, un errore <strong>di</strong> 0.3433 secon<strong>di</strong> che portò<br />

Patriot<br />

il Patriot 687 metri fuori della traiettoria del missile Scud!<br />

L’esplosione<br />

dell’Ariane 5<br />

Il <strong>di</strong>sastro del<br />

Mars Climate<br />

Orbiter<br />

Il 4 giugno 1996, dopo una spesa <strong>di</strong> 7 miliar<strong>di</strong> <strong>di</strong> dollari, e dopo appena 40<br />

secon<strong>di</strong> dal suo lancio, esplose il razzo Ariane 5, nella Guiana Francese. Il razzo<br />

e il suo carico erano valutati per oltre 500 milioni <strong>di</strong> dollari. Perciò il costo<br />

totale della missione era stato <strong>di</strong> oltre 7 miliar<strong>di</strong> e mezzo <strong>di</strong> dollari. Fu scoperto<br />

che l’errore era nel software e, in particolare, nella componente del Sistema <strong>di</strong><br />

Riferimento Inerziale, che era stato preso dal software dell’Ariane 4. Certe parti<br />

del software dell’Ariane 5 erano state aggiornate rispetto al software dell’Ariane<br />

4, ma non si era aggiornato quanto preso dal software dell’Ariane 4.<br />

In particolare, il fallimento dell’Ariane 5 è dovuto ad un errore <strong>di</strong> conversione<br />

da un sistema a 64 bit a virgola mobile ad uno a 16 bit a virgola<br />

fissa.<br />

La velocità orizzontale del razzo rispetto alla piattaforma misurato in 64 bit<br />

era un numero più grande del massimo consentito nell’aritmetica a 16 bit. Si<br />

ebbe quin<strong>di</strong> un errore <strong>di</strong> overflow che causò l’arresto del software <strong>di</strong> controllo<br />

del volo 37 secon<strong>di</strong> dopo il lancio del razzo. Dopo 3 secon<strong>di</strong> il razzo si <strong>di</strong>strusse.<br />

Figura 3.2: L’esplosione <strong>di</strong><br />

Ariane 5<br />

Il <strong>di</strong>sastro, invece, del veicolo spaziale della missione Mars Climate Orbiter<br />

non si trova sulla pagina web del prof. Douglas, ma i dettagli della storia si<br />

possono trovare, ad esempio, sul sito http://marsprogram.jpl.nasa.<br />

gov/msp98/orbiter.<br />

Il 23 settembre 1999 si perdono le tracce del veicolo spaziale<br />

Mars Climate Orbiter. Gli obiettivi <strong>di</strong> questa missione della NASA erano sia <strong>di</strong> monitoraggio<br />

dei cambiamenti climatici sia <strong>di</strong> supporto per la missione Mars Polar Lander. I costi<br />

della Climate Orbiter e della Polar Lander erano <strong>di</strong> un totale <strong>di</strong> oltre 320 milioni <strong>di</strong> dollari.<br />

20

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

Saved successfully!

Ooh no, something went wrong!