




























































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
slide propedeutiche per l'utilizzo del software matlab
Tipologia: Slide
1 / 68
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





























































Letizia SCUDERI
Dipartimento di Scienze Matematiche, Politecnico di Torino [email protected]
A.A. 2018/
Il Calcolo Numerico `e una disciplina della matematica, che propone e analizza metodi che consentono di ottenere una soluzione numerica di problemi matematici, per i quali metodi di risoluzione analitica non esistono oppure sono eccessivamente onerosi.
Per ottenere la soluzione numerica si utilizzano algoritmi, eseguibili da un calcolatore e dedotti dai metodi stessi.
In seguito verranno mostrati metodi per risolvere numericamente alcuni problemi di Approssimazione e di Algebra Lineare.
Per gli algoritmi, che implementano i suddetti metodi, verr`a usato il linguaggio di programmazione Matlabr.
Un esempio con conseguenze meno catastrofiche, ma comunque “inquietanti”, `e costituito dalla seguente successione:
x 1 = 2 xn = 2n−^1 /^2
1 − 41 −nx n^2 − 1 n ≥ 2
convergente a π.
In teoria, per definizione di limite di una successione, xn deve avvicinarsi sempre di pi`u a π al crescere di n.
Nella pratica, se si implementa l’algoritmo per il calcolo dei termini della successione, al crescere di n, accade che dapprima i termini della successione si avvicinano a π ma, successivamente, a partire da n = 16, cominciano ad allontanarsene, come mostrano i valori riportati in tabella. n π ≈ 3. 141592653589793 1 2. 000000000000000 2 2. 828427124746190 3 3. 061467458920717 4 3. 121445152258050 5 3. 136548490545931 6 3. 140331156954739 7 3. 141277250932756 8 3. 141513801144145 9 3. 141572940365566 10 3. 141587725279960 11 3. 141591421504635 12 3. 141592345611076 13 3. 141592576545004 14 3. 141592633463248 15 3. 141592654807589
n π ≈ 3. 141592653589793 16 3. 141592645321215 17 3. 141592607375720 18 3. 141592910939672 19 3. 141594125195191 20 3. 141596553704819 21 3. 141596553704819 22 3. 141674265021757 23 3. 141829681889201 24 3. 142451272494133 25 3. 142451272494133 26 3. 162277660168379 27 3. 162277660168379 28 3. 464101615137754 29 4. 000000000000000 30 0 Addirittura si ha che x 30 = 0!!
Per N = 10, si ha a = 0. 015 · 10 −^1 = 0. 15 · 10 −^2 = 0. 0015 · 100.
L’esempio evidenzia che ogni numero reale (non nullo) non ammette un’unica rappresentazione floating-point. Tale rappresentazione `e univocamente determinata, se si impone la seguente condizione
N−^1 ≤ p < 1
cio`e se si impone che la prima cifra di p, dopo il punto decimale, sia diversa da zero.
Per N = 10, la condizione precedente diventa 0. 1 ≤ p < 1.
La rappresentazione floating-point a = (−1)s^ pNq^ del numero reale a si dice normalizzata se p soddisfa la condizione
N−^1 ≤ p < 1
In tal caso, p e q sono univocamente determinati e
il numero reale non negativo p si definisce mantissa di a; l’intero q si definisce esponente oppure caratteristica di a.
Fissata la base N del sistema di numerazione, i valori di s, p, q della rappresentazione floating-point normalizzata a = (−1)s^ pNq^ individuano univocamente il numero reale a. Pertanto, per memorizzare a, `e sufficiente memorizzare s, p e q.
Poich´e un calcolatore riserva per la memorizzazione di tali quantita uno spazio finito di memoria, esso puo memorizzare solo mantisse con un numero finito di cifre ed esponenti appartenenti a un certo intervallo.
Si supponga, per esempio, che
le mantisse p rappresentabili possano avere al massimo t cifre nel sistema di numerazione scelto; l’esponente q debba soddisfare le limitazioni L ≤ q ≤ U con L < 0 e U > 0 interi.
`E evidente che non tutti i numeri reali soddisfino le suddette condizioni. Pertanto, non tutti i numeri reali sono esattamente rappresentabili su di un calcolatore.
Si definiscono numeri di macchina i numeri con mantissa ed esponente esattamente rappresentabili negli spazi a loro riservati dal calcolatore.
Siano N = 10, t = 5, L = −127, U = 128. Nell’aritmetica floating-point fissata, (^1) a = 1. 58291 · 100 = 0. 158291 · 101 non e un numero di macchina; (^2) a = 0. 0038245 · 100 = 0. 38245 · 10 −^2e un numero di macchina; (^3) a = 12. 29 · 10128 = 0. 1229 · 10130 non `e un numero di macchina.
Di seguito verr`a descritto come un calcolatore tratti i numeri reali che non soddisfano le limitazioni sull’esponente.
La limitazione inferiore L ≤ q sull’esponente q comporta che il pi`u piccolo numero positivo, rappresentabile come numero di macchina, sia
m = 0. (^10000000) ︸ ︷︷ ︸ t cifre
Si definisce regione di underflow l’insieme dei numeri reali diversi da zero e appartenenti a (−m, m).
Per N = 10, t = 8 e L = −125, il piu piccolo numero positivo rappresentabilee m = 0. 10000000 · 10 −^125.
Anche se i dati iniziali e il risultato finale di un processo di calcolo sono numeri di macchina, o comunque arrotondabili a numeri di macchina, le operazioni intermedie possono dare origine a numeri che appartengono alla regione di underflow oppure di overflow.
Quando cio succede il calcolatore invia all’utente una segnalazione dell’evento: nel primo caso, il risultato parziale viene approssimato con lo zero; nel secondo caso, invece, il risultato viene approssimato con il simbolo Inf. Pertanto, in quest’ultimo caso, per ottenere il risultato finalee necessario evitare la regione di overflow.
Gli esempi che seguono mostrano situazioni nelle quali `e possibile evitare il verificarsi di fenomeni di overflow.
Si consideri la media aritmetica
M + M 2
di M = M/2 e M, ove M e il piu grande numero di macchina.
Il risultato e minore di M e quindi puo essere rappresentato, eventualmente in maniera approssimata, come numero di macchina. Se pero si calcola la media come somma M + M seguita dalla divisione per 2, allora M + Me maggiore di M, e dunque non `e rappresentabile come numero di macchina.
Per ovviare a questo problema, basta calcolare la media aritmetica come
M 2
oppure M +
Si esamina ora come vengano rappresentati i numeri reali, la cui mantissa ha pi`u di t cifre.
Sia a = (−1)s^ pNq^ , con N−^1 ≤ p < 1 e L ≤ q ≤ U, e si supponga che p abbia pi`u di t cifre.
Per rappresentare a in un sistema floating-point con t cifre per la mantissa, occorre in qualche modo “accorciare” o, meglio, arrotondare p a t cifre.
Generalmente si ricorre alla seguente tecnica.
Tecnica di arrotondamento “rounding to even”: la mantissa p viene approssimata con la mantissa di macchina ¯p piu vicina e se pe equidistante da due mantisse di macchina consecutive allora p viene approssimata con quella delle due che ha l’ultima cifra pari.
Il numero di macchina corrispondente al numero reale a = (−1)s^ pNq nell’aritmetica floating-point fissata `e allora dato da ¯a = (−1)s^ ¯pNq^.