Esercizi di Analisi Numerica -...
Transcript of Esercizi di Analisi Numerica -...
Esercizi di Analisi Numerica
Errori, Cambi di base, Numeri macchina, Aritmetica finita
ERRORI - es. 1
Calcolare il numero di decimali esatti e di cifre significative nei seguenti
numeri scritti in base 10:
numero decimali corretti cifre significative123.0456± 0.0001 3 70.001234± 0.00005 4 40.007856± 0.000004 5 40.001234± 0.00006 3 4
1
CAMBI DI BASE - es. 1
Determinare x in modo che sia verificata l’uguaglianza:
(419)10 = (643)x
Sappiamo che
419 = 6x2 + 4x + 3
6x2 + 4x− 416 = 0
3x2 + 2x− 208 = 0
Per trovare x basta risolvere l’equazione di II grado.
2
3x2 + 2x− 208 = 0
Utilizziamo la formula risolutiva ridotta:
�243 = 8
x1,2 = −1±√1+6243 = −1±√625
3 = −1±253 =
�− 263 Non accettabile
Quindi la base cercata e x = 8.
3
CAMBI DI BASE - es. 1 bis
Determinare x in modo che sia verificata l’uguaglianza:
(35)6 = (212)x
Sappiamo che
3 · 6 + 5 = 2x2 + 1x + 2
23 = 2x2 + x + 2
2x2 + x− 21 = 0
Risolviamo l’equazione di II grado in x.
4
2x2 + x− 21 = 0
Utilizziamo la formula risolutiva delle equazioni di II grado:
�124 = 3
x1,2 = −1±√1+1684 = −1±√169
4 = −1±134 =
�− 144 Non accettabile
Quindi la base cercata e x = 3.
5
CAMBI DI BASE - es. 2
Determinare x in modo che sia verificata l’uguaglianza:
(22223.1313)6 = (1973.31)x
Uguagliando la parte intera
2 · 64 + 2 · 63 + 2 · 62 + 2 · 6 + 3 = x3 + 9x2 + 7x + 3
3111 = x3 + 9x2 + 7x + 3
x3 + 9x2 + 7x− 3108 = 0
abbiamo ottenuto un’equazione di III grado.
6
Proviamo allora ad uguagliare la parte frazionaria:
16 + 3
62 + 163 + 3
64 = 3x + 1
x2
37144 = 3x+1
x2
37x2 − 432x− 144 = 0
Uguagliando la parte frazionaria abbiamo un’equazione di II grado.
Per trovare x basta risolverla.
7
37x2 − 432x− 144 = 0
Utilizziamo la formula risolutiva ridotta:
�44437 = 12
x1,2 = 216±√46656+532837 = 216±√51984
37 = 216±22837 =
�− 1237
Non accettabile
Quindi la base cercata e x = 12.
8
Facciamo una verifica, sostituendo x = 12 nell’uguaglianza fra le parti
intere x3 + 9x2 + 7x− 3108 = 0:
123 + 9 · 122 + 7 · 12− 3108 == 1728 + 9 · 144 + 7 · 12− 3108 == 1728 + 1296 + 84− 3108 = 0
9
CAMBI DI BASE - es. 2 bis
Determinare x in modo che sia verificata l’uguaglianza:
(152.2343)6 = (1010.13)x
Uguagliando la parte intera
62 + 5 · 6 + 2 = x3 + x
68 = x3 + x
x3 + x− 68 = 0
abbiamo ottenuto un’equazione di III grado.
10
Proviamo allora ad uguagliare la parte frazionaria:
26 + 3
62 + 463 + 3
64 = 1x + 3
x2
716 = x+3
x2
7x2 − 16x− 48 = 0
Uguagliando la parte frazionaria abbiamo un’equazione di II grado.
Per trovare x basta risolverla.
11
7x2 − 16x− 48 = 0
Utilizziamo la formula risolutiva ridotta:
�287 = 4
x1,2 = 8±√64+3367 = 8±√400
7 = 8±207 =
�− 127
Non accettabile
Quindi la base cercata e x = 4.
Facciamo una verifica, sostituendo x = 4 nell’uguaglianza fra le parti
intere x3 + x− 68 = 0:
43 + 4− 68 = 60 + 4− 68 = 0
12
CAMBI DI BASE - es. 3
Determinare x e y in modo che sia verificata l’uguaglianza:
(3456.78)12 = (x)10 = (y)6
Per ottenere la rappresentazione in base 10, basta sommare i prodotti
di ciascuna cifra per la potenza della base 12 corrispondente alla
posizione:
x = 3 · 123 + 4 · 122 + 5 · 12 + 6 + 712 + 8
122 =
= 5826.638
Ora passiamo dalla base 10 alla base 6. Si procede separatamente
per la parte intera e quella frazionaria.
13
Dividiamo la parte intera per 6 e prendiamo nota dei resti, finche il
quoziente sara 0.
5826 : 6 = 971 r.0971 : 6 = 161 r.5161 : 6 = 26 r.526 : 6 = 4 r.24 : 6 = 0 r.4
Moltiplichiamo la parte decimale per 6 e prendiamo nota delle parti
intere, finche la parte frazionaria sara 0 o si ripetera:
0.638 · 6 = 3.830.83 · 6 = 5.0
Quindi y = 42550.35.
14
CAMBI DI BASE - es. 3 bis
Determinare x in modo che sia verificata l’uguaglianza:
(123.65)8 · (110100.1)3 = (x)6
Per prima cosa dobbiamo trovare la rappresentazione in base 10 di
ciascun fattore:
(123.65)8 = 82 + 2 · 8 + 3 + 68 + 5
82 = (83.828125)10
(110100.1)3 = 35 + 34 + 32 + 13 =
(333.3
)10
Ora eseguiamo semplicemente il calcolo in base 10:
83.828125 · 333.3 = 27942.7083
15
Ora portiamo il risultato(27942.7083
)10
nella base 6.
Dividiamo la parte intera per 6 e prendiamo nota dei resti, finche il
quoziente sara 0.
27942 : 6 = 4657 r.04657 : 6 = 776 r.1776 : 6 = 129 r.2129 : 6 = 21 r.321 : 6 = 3 r.33 : 6 = 0 r.3
La parte intera di x sara 333210.
16
Moltiplichiamo la parte decimale per 6 e prendiamo nota delle parti
intere, finche la parte frazionaria sara 0 o si ripetera:
0.7083 · 6 = 4.250.25 · 6 = 1.50.5 · 6 = 3.0
Allora x = 333210.413.
17
CAMBI DI BASE - es. 4
Determinare la frazione generatrice in base 10 del seguente numero
periodico:(0.7A
)16
(0.7A
)16
= 7A−7F0 =
= 7·16+10−715·16+0 = 115
240
18
CAMBI DI BASE - es. 4 bis
Determinare la frazione generatrice in base 10 del seguente numero
periodico:(0.3B
)16
(0.3B
)16
= 3BFF =
= 3·16+1115·16+15 =
= 59255
19
CAMBI DI BASE - es. 4 ter
Determinare la frazione generatrice in base 10 del seguente numero
periodico:(1.7A
)16
(1.7A
)16
= 17A−17F0 =
= 162+7·16+10−(16+7)15·16+0 = 355
240
20
ARITMETICA FINITA - es. 1
Usando l’aritmetica finita e con mantissa normalizzata di 5 cifre, som-
mare i seguenti numeri e calcolare l’errore da cui e affetto il risultato.
Cambiando l’ordine in cui e eseguita la somma cambia il risultato?
a = 0.12345 · 103 + 0.25492 · 10−1 + 0.33266 · 10
Si scrivono tutti gli addendi in mantissa moltiplicata per 10 all’esponente
piu alto, cioe 103:
21
a = 0.12345 · 103 + 0.25492 · 10−1 · 10−3 · 103 + 0.33266 · 10 · 10−3 · 103
a = 0.12345 · 103 + 0.25492 · 10−4 · 103 + 0.33266 · 10−2 · 103
a = 0.12345 · 103 + 0.000025492 · 103 + 0.0033266 · 103
Sommiamo dapprima i due primi addendi, poi aggiungeremo l’ultimo:
0.12345 ·103
+ 0.000025492 ·103
0.123475492 ·103
I 0.12348 ·103
+ 0.0033266 ·103
= 0.1268066 ·103
I 0.12681 ·103
22
Ora invece sommiamo prima gli ultimi due, che sono di grandezze piuvicine, poi aggiungeremo il primo:
0.000025492 ·103
+ 0.0033266 ·103
0.003352092 ·103
I 0.335521 · 10−2 ·103
0.0033521 ·103
+ 0.12345 ·103
= 0.1268021 ·103
I 0.12680 ·103
Poiche i due risultati sono diversi, l’ordine cambia. Il secondo pro-cedimento e piu corretto, perche vanno prima sommati i termini dellostesso ordine di grandezza.L’errore e ε = 0.1 · 10−4 · 103 = 0.1 · 10−1 ≤ 0.5 · 10−1
23
ARITMETICA FINITA - es. 1 bis
Usando l’aritmetica finita e con mantissa normalizzata di 5 cifre, som-
mare i seguenti numeri e calcolare l’errore da cui e affetto il risultato.
Cambiando l’ordine in cui e eseguita la somma cambia il risultato?
a = 0.69241 · 103 + 0.31296 · 10−2 + 0.12394 · 10−4
Si scrivono tutti gli addendi in mantissa moltiplicata per 10 all’esponente
piu alto, cioe 103:
24
a = 0.69241 · 103 + 0.31296 · 10−2 · 10−3 · 103 + 0.12394 · 10−4 · 10−3 · 103
a = 0.69241 · 103 + 0.31296 · 10−5 · 103 + 0.12394 · 10−7 · 103
a = 0.69241 · 103 + 0.0000031296 · 103 + 0.000000012394 · 103
Sommiamo dapprima i due primi addendi, poi aggiungeremo l’ultimo:
0.69241 ·103
+ 0.0000031296 ·103
0.6924131296 ·103
I 0.69241 ·103
+ 0.000000012394 ·103
= 0.692410012394 ·103
I 0.69241 ·103
25
Ora invece sommiamo prima gli ultimi due, che sono di grandezze piu
vicine, poi aggiungeremo il primo:
0.0000031296 ·103
+ 0.000000012394 ·103
= 0.000003141994 ·103
I 0.31420 · 10−5 ·103
0.0000031420 ·103
+ 0.69241 ·103
= 0.6924131420 ·103
I 0.69241 ·103
L’ordine non cambia il risultato, perche gli addendi sono tutti di ordine
di grandezza molto diverso, pari alle cifre della mantissa normalizzata.
L’errore e ε ≤ 0.5 · 10−5 · 103 = 0.5 · 10−2
26
NUMERI MACCHINA - es. 1
Scrivere in forma esponenziale in base 10 il numero rappresentato invirgola mobile su 32 bit, con mantissa normalizzata ed esponente adeccesso 6410 = 4016 dalle seguenti 8 cifre esadecimali:
5B900020
Consideriamo le prime due cifre e scriviamole in notazione binaria,con l’aiuto della tabella a pag. 15: 5B = 0 101 1011
segno: 0 quindi segno positivo;101 1011 esponente ad eccesso 64:
(1011011)2 = (5B)16 = 5 · 16 + 11 = 9110quindi l’esponente e: 91− 64 = 27mantissa: (0.900020)16 = 9
16 + 2165 ' 0.56250191
27
Quindi il numero in forma esponenziale e
N = +0.56250191 · 1627 ' 0.18254231 · 1033
28
NUMERI MACCHINA - es. 1 bis
Scrivere in forma esponenziale in base 10 il numero rappresentato invirgola mobile su 32 bit, con mantissa normalizzata ed esponente adeccesso 6410 = 4016 dalle seguenti 8 cifre esadecimali:
ABCD1234
Consideriamo le prime due cifre e scriviamole in notazione binaria,con l’aiuto della tabella a pag. 15: AB = 1 010 1011segno: 1 quindi segno negativo;010 1011 esponente ad eccesso 64:
(0101011)2 = (2B)16 = 2 · 16 + 11 = 4310quindi l’esponente e: 43− 64 = −21mantissa: (0.CD1234)16 = 12
16 + 13162 + 1
163 + 2164 + 3
165 + 4166
' 0.8010590076
29
Quindi il numero in forma esponenziale e
N = −0.8010590076 · 16−21 ' −0.4141378 · 10−25
30
PRECISIONE DI MACCHINA
Programma per il calcolo della precisione di macchina nel linguaggio della calcola-
trice TI-89 o TI-92, traducibile in qualunque altro linguaggio di programmazione:
:macheps():Prgm:ClrIO:setMode("Exact/Approx","APPROXIMATE"):0 → k:1.→ x:While 1.+ x > 1.: x/2 → x: k+1 → k:EndWhile:Disp 2x, k-1:DelVar x,k:EndPrgm
La TI-89 fornisce i valori 44 e 5.68434 · 10−14 = 2−44.
31