Alcuni concetti di base del Calcolo Numerico

A
Enza Pellegrino
Elisabetta Santi
Calcolo numerico
Metodi ed applicazioni
usando Matlab
Copyright © MMXIV
ARACNE editrice S.r.l.
www.aracneeditrice.it
[email protected]
via Raffaele Garofalo, /A–B
 Roma
() 
 ----
I diritti di traduzione, di memorizzazione elettronica,
di riproduzione e di adattamento anche parziale,
con qualsiasi mezzo, sono riservati per tutti i Paesi.
Non sono assolutamente consentite le fotocopie
senza il permesso scritto dell’Editore.
I edizione: settembre 
Indice
PREFAZIONE............................................................................................ 9
ALCUNI CONCETTI DI BASE DEL CALCOLO NUMERICO ............................. 11
1.1
1.2
1.3
1.4
1.5
1.6
INTRODUZIONE ........................................................................................ 11
I SISTEMI DI NUMERAZIONE ........................................................................ 15
LA RAPPRESENTAZIONE DEI NUMERI SUL CALCOLATORE................................... 16
ARROTONDAMENTO DI UN NUMERO REALE .................................................. 21
OPERAZIONI DI MACCHINA IN ARITMETICA FLOATING POINT ............................ 25
ERRORI NELLA RISOLUZIONE DEI PROBLEMI ................................................... 29
COMPLEMENTI DI ALGEBRA LINEARE ..................................................... 47
2.1
2.2
2.3
2.4
2.5
SPAZI VETTORIALI ..................................................................................... 47
I VETTORI DI n . LE NORME VETTORIALI ..................................................... 53
LE MATRICI. LE NORME DI MATRICI .............................................................. 56
ALCUNI RICHIAMI SU AUTOVALORI ED AUTOVETTORI ...................................... 67
MATRICI CON CARATTERISTICHE PARTICOLARI ............................................... 78
SISTEMI LINEARI.................................................................................... 83
3.1 CONCETTI GENERALI ................................................................................. 83
3.2 CONDIZIONAMENTO DI UN SISTEMA LINEARE ................................................ 88
3.3 METODI DIRETTI: METODO DI GAUSS .......................................................... 96
3.4 FATTORIZZAZIONE DI UNA MATRICE ........................................................... 105
3.4.1 Fattorizzazione di Gauss: A = L U ................................................ 106
3.4.2 Fattorizzazione di Cholesky ............................................................ 110
3.4.3 Fattorizzazione Q R ..................................................................... 112
3.4.4 Fattorizzazione SVD ........................................................................ 114
3.5 RAFFINAMENTO ITERATIVO ...................................................................... 118
5
66
Indice
Indice
Indice
3.6 SISTEMI RETTANGOLARI .......................................................................... 121
3.7 GLI OPERATORI MATLAB \ , / ................................................................ 131
3.8 METODI ITERATIVI (INDIRETTI) DI TIPO PICARD ............................................ 134
3.8.1 Generalità....................................................................................... 134
3.8.2 Criteri d’arresto .............................................................................. 139
3.8.3 I metodi di Jacobi, Gauss-Seidel e le loro generalizzazioni ............ 143
3.8.4 Altri risultati di convergenza .......................................................... 147
EQUAZIONI E SISTEMI NON LINEARI .....................................................155
4.1 CONCETTI GENERALI. CASO MONODIMENSIONALE ....................................... 155
4.2 APPROSSIMAZIONE DELLE SOLUZIONI. ORDINE DI CONVERGENZA ................... 165
4.3 METODO DELLA BISEZIONE (O DI BIPARTIZIONE O DICOTOMICO) .................... 167
4.4 METODI ITERATIVI AD UN PUNTO (O METODI DI PUNTO FISSO)....................... 171
4.5 METODO DI NEWTON O DELLE TANGENTI .................................................. 189
4.6 RADICI MULTIPLE. RADICI VICINE .............................................................. 201
4.6.1 Radici multiple................................................................................ 201
4.6.2 Radici molto vicine ......................................................................... 203
4.7 CRITERI DI ARRESTO. STIMA DELL’ORDINE E DELLA COSTANTE ASINTOTICA ....... 207
4.8 LE FUNZIONI MATLAB FZERO E ROOTS .................................................... 212
4.8.1 La function fzero ............................................................................ 212
4.8.2 La function roots ed altre function relative ai polinomi ............... 215
4.9 SISTEMI NON LINEARI ............................................................................. 218
4.9.1 Metodo del punto fisso .................................................................. 218
4.9.2 Metodo di Newton ......................................................................... 226
4.10 LA FUNZIONE DI MATLAB FSOLVE............................................................ 231
PROBLEMI DIFFERENZIALI DI CAUCHY ..................................................235
5.1
5.2
5.3
5.4
5.5
5.6
5.7
INTRODUZIONE ...................................................................................... 235
IL METODO DI EULERO ............................................................................ 254
GENERALITÀ SUI METODI NUMERICI .......................................................... 256
ERRORI DI TRONCAMENTO, CONSISTENZA, CONVERGENZA ............................ 263
I METODI DI RUNGE-KUTTA ESPLICITI A R STADI ........................................... 268
CONVERGENZA DEI METODI ONE-STEP ESPLICITI. ......................................... 273
CENNO SUI METODI DI RUNGE-KUTTA IMPLICITI A R STADI ............................ 285
Indice
Indice
Indice
77
5.8 METODI MULTISTEP LINEARI..................................................................... 286
5.9 ANALISI DEI METODI MULTISTEP................................................................ 295
5.9.1 Consistenza ..................................................................................... 296
5.9.2 Zero stabilità ................................................................................... 300
5.9.3 Propagazione dell’errore. Assoluta stabilità .................................. 304
5.10 METODI DI TIPO PREDICTOR-CORRECTOR ................................................. 310
5.11 PROBLEMI STIFF ................................................................................... 315
5.12 ODE SUITE ........................................................................................... 321
APPROSSIMAZIONE DI DATI E FUNZIONI .............................................. 329
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
INTRODUZIONE ...................................................................................... 329
INTERPOLAZIONE POLINOMIALE ................................................................ 333
ALCUNE PROPRIETÀ DELLE DIFFERENZE DIVISE ............................................. 343
QUESTIONI NUMERICHE ED ALGORITMI ...................................................... 347
L’ERRORE NELL’INTERPOLAZIONE POLINOMIALE ........................................... 351
FUNZIONI SPLINE INTERPOLANTI ............................................................... 360
LE FUNCTION MATLAB PER L’APPROSSIMAZIONE DI DATI E FUNZIONI ............. 371
APPROSSIMAZIONE DISCRETA AI MINIMI QUADRATI ...................................... 377
APPROSSIMAZIONE POLINOMIALE AI MINIMI QUADRATI ................................ 382
BIBLIOGRAFIA ..................................................................................... 391
Prefazione
Il Calcolo Numerico è quel ramo della Matematica che sviluppa,
analizza ed applica metodi atti a risolvere i modelli matematici proposti nei tempi desiderati e con la precisione richiesta. La simulazione
matematica è divenuta infatti, nel corso degli ultimi anni, strumento
indispensabile per lo studio delle scienze applicate ed in particolare di
fenomeni fisici, a volte sostituendo la stessa sperimentazione fisica,
con notevoli vantaggi in termini di sicurezza, costi e tempi.
La risoluzione dei modelli non può prescindere dall’uso di metodi
di calcolo numerico, anche quando è nota la soluzione analitica, soprattutto quando il modello è complicato e la rappresentazione della
soluzione risulta inutilizzabile o troppo costosa in termini di operazioni aritmetiche.
Il testo è rivolto a studenti delle lauree in Ingegneria, Matematica e
Fisica che affrontano per la prima volta lo studio del Calcolo Numerico. Vengono affrontate le problematiche che ispirano la costruzione
dei metodi numerici di base che sono spesso passi intermedi nella risoluzione di modelli più complessi; si esaminano le proprietà di stabilità ed accuratezza degli algoritmi, i vantaggi e gli svantaggi di un metodo.
Ogni capitolo è corredato di esempi ed esercizi, atti a chiarire la
teoria trattata ed a permettere allo studente di acquisire le conoscenze
necessarie per decidere sulle metodologie numeriche da utilizzare. Essi vengono risolti utilizzando il programma MATLAB che presenta
semplicità di approccio ed ampia diffusione.
9
10
Prefazione
Il contenuto del testo si sviluppa su sei capitoli. Il primo è dedicato
all’introduzione dei concetti generali e degli elementi di base
dell’aritmetica discreta; il secondo è dedicato ai richiami di algebra lineare. I successivi capitoli sono dedicati alla risoluzione di sistemi lineari (Capitolo III), di equazioni e sistemi non lineari (Capitolo IV), di
problemi differenziali di Cauchy alle derivate ordinarie (Capitolo V);
il Capitolo VI, infine, tratta dell’approssimazione di dati e funzioni.
Chi desidera conoscere il codice MATLAB delle function utilizzate
nei vari capitoli del testo, può rivolgere la richiesta ad uno dei seguenti indirizzi:
[email protected]; [email protected].
L’Aquila, luglio 2014
Enza Pellegrino
Elisabetta Santi
Capitolo I
Alcuni concetti di base del Calcolo Numerico
Desideriamo porre, in questo capitolo le basi per poter comprendere meglio le potenzialità del Calcolo Numerico, conoscere come analizzare i risultati evidenziandone soprattutto gli errori, per capire come evitarli e, se ciò non fosse possibile, come ridurli al minimo.
1.1
Introduzione
Molti problemi delle Scienze Applicate, dalla Fisica all’Economia
alla Medicina, possono essere affrontati e risolti attraverso lo studio
del corrispondente modello matematico che in generale si ottiene dando una formulazione matematica del problema reale mediante opportune procedure d’astrazione e semplificazione.
Modello matematico è una relazione in termini logico-matematici
tra le variabili caratteristiche del problema in esame.
La risoluzione del problema matematico così ottenuto, fornirà in
generale, le informazioni riguardanti l’evoluzione del fenomeno dopo
avere effettuato una validazione del risultato ovvero un confronto con
la realtà.
Un operatore di Scienze Applicate procederà secondo il seguente
schema:
11
12
Calcolo Numerico: metodi ed applicazioni usando Matlab
Come si può osservare dallo schema, il Calcolo Numerico (o Analisi Numerica o Calcolo Scientifico) interviene nella risoluzione e
nell’esame della soluzione ottenuta.
Possiamo dire che:
Obiettivo del CALCOLO NUMERICO è trovare gli algoritmi che
risolvono un problema matematico nel minor tempo possibile e con la
massima accuratezza.
La necessità di operare in tal modo è determinata dal fatto che molto spesso i problemi da trattare non possono essere risolti con metodi
esclusivamente analitici; a volte poi, pur possedendo la soluzione in
forma analitica essa è difficile da trattare in ulteriori operazioni quali
ad esempio l’integrazione, e molto spesso inoltre, ha notevole importanza la conoscenza dei valori numerici che essa assume per dati assegnati.
Consideriamo i seguenti due esempi legati alla dinamica di una popolazione.
Un semplice modello di crescita di una popolazione può essere ottenuto considerando tale crescita dipendente dal numero di nascite n(t)
e dal numero delle morti m(t), per unità di tempo.
Per semplificare ulteriormente, indicando con y(t) il numero di individui della popolazione al tempo t, supponiamo che n(t) e m(t) siano
proporzionali ad esso, ossia n(t) =  y(t), m(t) =  y(t) con  e  valori costanti chiamati rispettivamente tasso di natalità e di mortalità.
Alcuni concetti di base del Calcolo Numerico
Alcuni concetti di base del Calcolo Numerico
13
13
Misurando quindi con y t la variazione del numero di individuinell’unità di tempo, otteniamo l’equazione differenziale lineare ed
omogenea proposta da Malthus nel 1798
y t y t y t , è detto tasso di crescita.
Si può considerare quindi, il seguente problema: conoscendo il numero di individui y(0) = y0 , al tempo t = 0, e sapendo che al tempo t
= t , tale numero è diventato y t , si individui il valore del tasso di
crescita .
La soluzione si ottiene allora, risolvendo il problema di Cauchy
y '(t ) y(t )
;
(1.1.1) y (0) y0 y0 0
essa coincide con la funzione y(t ) y0et .
Il richiesto valore di si determina pertanto, risolvendo
t
l’equazione y t y0e la cui soluzione è:
1 yt ln .
t y0 La soluzione del problema in questo caso, è ottenuta nella forma
chiusa (analitica) (1.1.2).
Si supponga ora, che la popolazione non sia isolata ma sia soggetta
a fenomeni di immigrazione od emigrazione nell’unità di tempo, la
variazione y t soddisfa quindi la relazione y(t ) n(t ) m(t ) s(t ),
dove s(t) indica in questo caso, il numero di individui che si aggiungono nell’unità di tempo.
Consideriamo allora un problema analogo al precedente ma relativo
al diverso problema di Cauchy:
y '(t ) y (t ) s(t )
.
(1.1.3) y (0) y0 y0 0
Supponiamo anche, s(t) = d; il valore di s(t) è perciò costante.
(1.1.2) La soluzione del problema (1.1.3) è:
14
14
Calcolo Numerico: metodi ed applicazioni usando Matlab
Calcolo Numerico: metodi ed applicazioni usando Matlab
d
d
d
y(t ) et et 1 y0 y0 et e per determinare , si dovrà risolvere l’equazione non lineare
y t y0 d e t d la cui soluzione, diversamente dal caso pre
cedente, non può essere ottenuta in forma chiusa, come combinazione
di funzioni elementari.
Da questo semplice esempio si deduce quindi la necessità di utilizzare opportune procedure basate su tecniche che risultano efficaci in
più situazioni, come ad esempio i procedimenti iterativi.
Dal momento che uno stesso problema può essere risolto con più
metodi numerici, la scelta di un metodo sarà dettata sia dalle sue caratteristiche (efficienza, velocità di convergenza, ecc.), che dagli obiettivi
che si vogliono raggiungere (approssimazione più o meno raffinata,
costi computazionali ecc.) ed è affidata anche all’abilità ed esperienza
di chi deve risolvere il problema.
Tale scelta è quindi il risultato di:
un’attenta analisi del problema;
un’analisi comparativa dei diversi metodi numerici disponibili,
sulla base del loro costo e della loro accuratezza.
Ai metodi numerici come si è già detto, si associano gli algoritmi:
descrizioni complete e ben definite di operazioni logiche ed aritmetiche che consentono di ottenere in un numero finito di passi i risultati y
dai dati x.
Infine, componente imprescindibile di un progetto di algoritmo è la
disponibilità di un calcolatore e l’uso di un linguaggio di programmazione.
In ciascuna delle fasi che conducono dal problema reale alla determinazione dei risultati, si introducono errori che possono essere classificati e, per quanto possibile, valutati, ridotti o tenuti in debito conto
all’atto della validazione del modello (valutazione della sua attendibilità).
Prima di intraprendere la loro trattazione è conveniente premettere
dei richiami sui sistemi di numerazione e rappresentazione dei numeri.
Alcuni concetti di base del Calcolo Numerico
Alcuni concetti di base del Calcolo Numerico
1.2
15
15
I sistemi di numerazione
Un qualsiasi numero intero B > 1 può essere assunto come base di
un Sistema di Numerazione S, che utilizza quindi i B simboli 0, 1, ...,
B 1.
Anche se dal punto di vista astratto tutte le basi sono tra loro equivalenti, tre sono le basi generalmente usate: base 2 o binaria, base 10
o decimale, base 16 o esadecimale. Potremo quindi assumere che la
base B sia un numero pari.
Nel sistema binario B = 2, si utilizzano i simboli 0, 1 in quello decimale B =10, si utilizzano i simboli 0, 1,...,9; in generale, se B 11, si
utilizzano numeri e lettere. Se ad esempio B = 16, (sistema esadecimale) si utilizzano 0, 1, ..., 9, A, B, C, D, E, F.
In S ogni numero reale x ha la forma detta rappresentazione posizionale
(1.2.1) x cncn1...c0 .c1c2 ..., cn 0
il punto che compare tra c0 e c1 è detto punto decimale se la base è
10, punto binario se la base è 2.
La (1.2.1) si può scrivere nella forma seguente:
x cn B n cn 1B n 1 ... c0 B 0 c1B 1 c2 B 2 ...
(1.2.2)
B n cn i B i
i 0
e gli interi ci , con 0 ci B 1, sono detti Cifre della Rappresentazione.
In generale x 0 , eccetto il caso in cui è presente una successione di infinite cifre ak B 1, k 1, per x si ha un’unica rappresentazione in S nella forma detta normalizzata (il primo coefficiente della somma è diverso da 0):
(1.2.3) x sign( x) B e ak B k
k 1
16
16
Calcolo Numerico: metodi ed applicazioni usando Matlab
Calcolo Numerico: metodi ed applicazioni usando Matlab
con e intero, 0 a1 B 1 , e 0 ak B 1, k 2.
Nella (1.2.3) la serie
a B
k 1
k
k
, è una serie convergente. Le sue ridotte
n
Sn ak B k , per n 1, costituiscono infatti, una successione
k 1
Sn n0
non decrescente e superiormente limitata, e quindi conver-
gente.
Per l’ipotesi di positività dei coefficienti, si verifica che Sn Sn1
n 1
n
k 1
k 1
infatti: Sn1 ak B k ak B k an1B ( n1) Sn .
Per verificare la limitatezza basta considerare che:
n
Sn a B
n
k
( B 1)
B
k
( B 1) B
1
1 B
n
1 B
n
1.
1
B
k 1
k 1
e
k
Il numero verso cui converge la serie B ak B è inoltre positivo
k
1
k 1
essendo a1 1 .
Osservazioni
1 - La serie di tipo (1.2.3) si riduce ad una somma finita se risulta
ak 0, per k n , in questo caso il numero x rappresentato, ha un
numero finito di cifre.
2 - Considerando per semplicità, un numero reale x > 0, esiste un unico esponente e tale che Be1 x Be .
1.3
La rappresentazione dei numeri sul calcolatore
Ogni operazione effettuata su calcolatore è affetta da errori di arrotondamento (round off).
Essi sono dovuti al fatto che su un calcolatore può essere rappresentato solo un sottoinsieme finito dell’insieme dei numeri reali.
Alcuni concetti di base del Calcolo Numerico
Alcuni concetti di base del Calcolo Numerico
17
17
Ma questo non delegittima la rappresentazione dei numeri reali su
calcolatore (dunque con un numero finito di cifre) perché tutti i numeri reali si possono approssimare bene con numeri aventi una rappresentazione finita.
Se si fissa infatti la base B, vale la seguente proprietà
(1.3.1) 0, x , y : x y dove y ha rappresentazione posizionale finita.
Un numero reale x è infatti, sempre compreso tra due numeri razionali cioè:
a
a 1
a a
a a
A p.i. 1 22 nn x p.i. 1 22 n n C ,
B B
B
B B
B
si è indicata con p.i. la parte intera del numero.
Fissato quindi 0 , si può scegliere n in modo che C A e la
relazione (1.3.1) è pertanto dimostrata.
Ricordiamo anche che più piccola è la base, più lunga è la stringa
dei caratteri necessari per rappresentare lo stesso numero.
Ad esempio x = 1/10 si scrive 0.110 , nella base 2 diventa
0.000110011....2 ; il numero x ha quindi un numero finito di cifre in
base 10 ma ne ha infinite (e periodiche) nella base binaria.
Per ogni numero reale viene resa disponibile nel calcolatore una
parola costituita da un numero finito N di bit (binary digit).
Il modo più intuitivo per utilizzare le N posizioni di memoria per la
rappresentazione di un numero x 0 sarebbe quello di fissarne una
per il segno del numero, N – k – 1 per la parte intera, e k per le cifre
dopo il punto cioè:
(1.3.2) x sign x aN 2 aN 3 ak .ak 1 a0 .
Un insieme di numeri di questo tipo è detto sistema dei numeri a
virgola fissa o fixed point.
L’uso della virgola fissa limita però il valore del numero massimo e
minimo rappresentabili sul calcolatore a meno di non avere N molto
grande e quindi viene limitato alla rappresentazione dei numeri interi.
Per superare l’inconveniente suddetto, si utilizza per un numero
reale non nullo, la rappresentazione in virgola mobile o floating point
18
18
Calcolo Numerico: metodi ed applicazioni usando Matlab
Calcolo Numerico: metodi ed applicazioni usando Matlab
data da:
e
e t
(1.3.3) x sign x 0.a1a2 at B sign x m B ,
con e, numero intero, detto esponente; il numero naturale t, fornisce il
numero consentito di cifre significative ai , 0 ai B 1, i 1,..., t ,
con a1 0 (mantissa normalizzata).
Il numero intero m è detto infatti mantissa; esso è definito da:
m : a1a2 at a1Bt 1 a2 Bt 2 at B0 .
t 1
t 1
k
Risulta allora: B m B 1 B B 1
k 0
1 Bt
Bt 1 .
1 B
Se non considerassimo la mantissa normalizzata, non avremmo
un’unica rappresentazione per ogni numero reale, caratteristica importante per evitare qualsiasi ambiguità.
Ad esempio, nella base B = 10, supponendo t = 4, il numero 1 potrebbe avere le seguenti rappresentazioni: 0.1000 101 , 0.0100 102 ,
0.0010 103 , 0.0001104 ed altre ancora.
Nella rappresentazione in virgola mobile, le N posizioni di memoria, che costituiscono una parola, vengono quindi distribuite tra il segno (una posizione), le cifre significative (t posizioni), e le cifre
dell’esponente (N – t – 1 posizioni).
Il numero 0 che non può esprimersi nella forma (1.3.3) ha, pertanto, una rappresentazione a parte.
Tipicamente sui calcolatori sono disponibili due formati per la rappresentazione floating point di un numero: la semplice precisione (N =
32 bit) e la doppia precisione (N = 64 bit). Il MATLAB lavora in
doppia precisione e base B=2 ma è in grado di lavorare in singola precisione utilizzando comandi opportuni.
Rappresentazione floating point in semplice precisione N= 32 bit
s
e ( 8 bit)
m (23 bit)
Alcuni concetti di base del Calcolo Numerico
Alcuni concetti di base del Calcolo Numerico
19
19
Rappresentazione floating point in doppia precisione N = 64 bit
s
e (11 bit)
m (52 bit)
Denotiamo con F(B, t, L, U) l’insieme dei numeri macchina (o numeri floating point), con base B 2 e t cifre significative; si ha inoltre 0 ai B 1, i 1,..., t , a1 0, esponente L e U , dove
L 0, U 0.
Tale insieme è definito da:
t
s
e
F
B
,
t
,
L
,
U
:
0
x
:
x
1
B
(1.3.4)
ai Bi i 1
dove si è indicato con 1 , s 0,1 il segno di x.
s
Con semplici passaggi si trova che il più piccolo numero positivo
nell’insieme dei numeri macchina è xmin B L B 1 B L1 , il più grande
t
è xmax BU B 1B i BU 1 B t .
i 1
N. B. Volendo valutare quest’ultima quantità dovremmo scrivere
BBU 1 1 B t , questo per evitare la situazione di overflow che si
avrebbe calcolando invece la quantità BU che verrebbe scritta in
mantissa normalizzata, BU 0.1BU 1 .
I valori estremi relativamente a MATLAB, si ottengono digitando
rispettivamente:
realmin e si ottiene la risposta: ans = 2.2251e-308,
realmax la risposta in questo caso è: ans = 1.7977e+308.
Naturalmente ogni numero positivo in F ha il suo corrispondente
negativo ancora contenuto in F.
Calcoliamo allora la cardinalità dell’insieme F, cioè il numero degli elementi in esso contenuti, risulta:
t 1
(1.3.5) card F 2 B 1 B U L 1 1,
20
Calcolo Numerico: metodi ed applicazioni usando Matlab
essendo  B  1 B le possibili configurazioni della mantissa, (U – L
+1) le possibili configurazioni dell’esponente; compare il fattore 2
perché ci sono i numeri positivi e negativi, ed infine va aggiunto 1 per
lo zero.
t 1
N. B. Il Matlab lavora di default in doppia precisione (t = 52), in
base binaria, con L=  1021 e U=1024, cioè usa l’insieme
F  2,52, 1021,1024 e visualizza i risultati in formato decimale,
F 10,16, 308, 308 , cioè con 16 cifre significative.
Esempio 1.3.1 Si determinino i numeri positivi contenuti
nell’insieme F(2, 3,  1, 2): B = 2, t = 3, L =  1, U = 2.
Nella Figura 1.3.1 sono visualizzati i punti corrispondenti ai valori
trovati per l’insieme considerato al fine di evidenziarne la distribuzione.
-0.2
0
0.2
0
0.5
1
1.5
2
2.5
3
3.5
4
Figura 1.3.1 Distribuzione dei valori positivi di F sulla retta reale
Tali numeri sono complessivamente
 2 1 231  2  1  1  16 ,


il
1
7
ed il più grande è 22 1  23  .
4
2
Calcoliamo tutti i numeri positivi contenuti in F. Essi sono:
numero più piccolo è 211 
Alcuni concetti di base del Calcolo Numerico
Alcuni concetti di base del Calcolo Numerico
7
,
2
7
.111 21 ,
4
7
.111 20 ,
8
7
.111 21 ,
16
.111 22 1.4
5
,
2
3
5
.110 21 , .101 21 ,
2
4
3
5
.110 20 , .101 20 ,
4
8
3
5
.110 21 , .101 21 ,
8
16
.110 22 3,
.101 22 21
21
.100 22 2,
.100 21 1,
1
,
2
1
.100 21 .
4
.100 20 Arrotondamento di un numero reale
Su un calcolatore è quindi disponibile solo l’insieme discreto F(B,
t, L, U ) che è un sottoinsieme di ; questo pone alcuni problemi pratici, primo fra tutti quello della rappresentazione interna di un generico numero reale x e delle conseguenze nell’esecuzione delle operazioni. Se xF (B, t, L, U ) si pone allora il problema di associare, in modo
adeguato, a x un numero macchina che indichiamo con fl x .
Supponiamo per semplicità x > 0 (analoghi risultati si hanno, ovviamente, se x < 0), e B numero pari (ipotesi verificata per le basi utilizzate in questo contesto). Si possono verificare le seguenti situazioni
una volta che si sia scritto x nella forma floating point (1.2.3):
a) l’esponente e[L, U]. Possiamo distinguere due casi:
a1 e < L situazione di underflow. Solitamente si assume come
valore approssimato del numero x il valore zero. In generale
viene segnalata una warning ma il calcolo prosegue.
a2 e > U situazione di overflow. Tale situazione viene segnalata ed il calcolo si arresta.
b) e L,U ma xF (B, t, L, U) perché le cifre ai , con i > t, non
sono tutte nulle.
Allora, l’approssimazione di x con il numero fl x F (B, t, L, U)
può essere effettuata mediante due procedimenti: