programma TI89

Transcript

programma TI89
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
123.0456 ± 0.0001
0.001234 ± 0.00005
0.007856 ± 0.000004
0.001234 ± 0.00006
decimali corretti
3
4
5
3
cifre significative
7
4
4
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:
x1,2 =
√
−1± 1+624
3
=
√
−1± 625
3
= −1±25
=
3
24
3 =8
− 26
3
Non accettabile
Quindi la base cercata è 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:
x1,2 =
√
−1± 1+168
4
=
√
−1± 169
4
= −1±13
=
4
12
4 =3
− 14
4
Non accettabile
Quindi la base cercata è 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:
1
6
1
+ 632 + 613 + 634 = 3
+
x
x2
37
144
= 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:
x1,2 =
√
216± 46656+5328
37
=
√
216± 51984
37
= 216±228
=
37
444
37 = 12
− 12
37
Non accettabile
Quindi la base cercata è 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:
2
6
3
+ 632 + 643 + 634 = 1
+
x
x2
7
16
= 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:
√
√
8± 400 = 8±20 =
x1,2 = 8± 64+336
=
7
7
7
28
7 =4
− 12
7
Non accettabile
Quindi la base cercata è 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:
7 + 8 =
x = 3 · 123 + 4 · 122 + 5 · 12 + 6 + 12
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, finché il
quoziente sarà 0.
5826 : 6
971 : 6
161 : 6
26 : 6
4:6
= 971
= 161
= 26
=4
=0
r.0
r.5
r.5
r.2
r.4
Moltiplichiamo la parte decimale per 6 e prendiamo nota delle parti
intere, finché la parte frazionaria sarà 0 o si ripeterà:
0.638 · 6 = 3.83
0.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:
5 = 83.828125
+
(123.65)8 = 82 + 2 · 8 + 3 + 6
(
)10
8
82
(110100.1)3 =
35
+ 34
+ 32
+
1
3
³
= 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, finché il
quoziente sarà 0.
27942 : 6
4657 : 6
776 : 6
129 : 6
21 : 6
3:6
= 4657
= 776
= 129
= 21
=3
=0
r.0
r.1
r.2
r.3
r.3
r.3
La parte intera di x sarà 333210.
16
Moltiplichiamo la parte decimale per 6 e prendiamo nota delle parti
intere, finché la parte frazionaria sarà 0 o si ripeterà:
0.7083 · 6 = 4.25
0.25 · 6
= 1.5
0.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
³
´
0.7A
16
16
= 7A−7
F0 =
115
= 7·16+10−7
=
15·16+0
240
18
CAMBI DI BASE - es. 4 bis
Determinare la frazione generatrice in base 10 del seguente numero
periodico:
³
³
0.3B
0.3B
´
16
´
16
= F3B
F =
=
=
3·16+11
15·16+15
59
255
=
19
CAMBI DI BASE - es. 4 ter
Determinare la frazione generatrice in base 10 del seguente numero
periodico:
³
´
1.7A
³
´
1.7A
16
16
= 17A−17
=
F0
=
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, sommare i seguenti numeri e calcolare l’errore da cui è affetto il risultato.
Cambiando l’ordine in cui è 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
più alto, cioè 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
+ 0.000025492
0.123475492
I 0.12348
+ 0.0033266
= 0.1268066
I 0.12681
·103
·103
·103
·103
·103
·103
·103
22
Ora invece sommiamo prima gli ultimi due, che sono di grandezze più
vicine, poi aggiungeremo il primo:
0.000025492
+ 0.0033266
0.003352092
I 0.335521 · 10−2
0.0033521
+ 0.12345
= 0.1268021
I 0.12680
·103
·103
·103
·103
·103
·103
·103
·103
Poiché i due risultati sono diversi, l’ordine cambia. Il secondo procedimento è più corretto, perché vanno prima sommati i termini dello
stesso ordine di grandezza.
L’errore è ² = 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, sommare i seguenti numeri e calcolare l’errore da cui è affetto il risultato.
Cambiando l’ordine in cui è 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
più alto, cioè 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
+ 0.0000031296
0.6924131296
I 0.69241
+ 0.000000012394
= 0.692410012394
I 0.69241
·103
·103
·103
·103
·103
·103
·103
25
Ora invece sommiamo prima gli ultimi due, che sono di grandezze più
vicine, poi aggiungeremo il primo:
0.0000031296
+ 0.000000012394
= 0.000003141994
I 0.31420 · 10−5
0.0000031420
+ 0.69241
= 0.6924131420
I 0.69241
·103
·103
·103
·103
·103
·103
·103
·103
L’ordine non cambia il risultato, perché gli addendi sono tutti di ordine
di grandezza molto diverso, pari alle cifre della mantissa normalizzata.
L’errore è ² ≤ 0.5 · 10−5 · 103 = 0.5 · 10−2
26
NUMERI MACCHINA - es. 1
Scrivere in forma esponenziale in base 10 il numero rappresentato in
virgola mobile su 32 bit, con mantissa normalizzata ed esponente ad
eccesso 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 = 9110
quindi l’esponente è: 91 − 64 = 27
9 + 2 ' 0.56250191
mantissa: (0.900020)16 = 16
165
27
Quindi il numero in forma esponenziale è
N = +0.56250191 · 1627 ' 0.18254231 · 1033
28
NUMERI MACCHINA - es. 1 bis
Scrivere in forma esponenziale in base 10 il numero rappresentato in
virgola mobile su 32 bit, con mantissa normalizzata ed esponente ad
eccesso 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 1011
segno: 1 quindi segno negativo;
010 1011 esponente ad eccesso 64:
(0101011)2 = (2B)16 = 2 · 16 + 11 = 4310
quindi l’esponente è: 43 − 64 = −21
13 + 1 + 2 + 3 + 4
mantissa: (0.CD1234)16 = 12
+
16
162
163
164
165
166
' 0.8010590076
29
Quindi il numero in forma esponenziale è
N = −0.8010590076 · 16−21 ' −0.4141378 · 10−25
30
PRECISIONE DI MACCHINA
Programma per il calcolo della precisione di macchina nel linguaggio della calcolatrice 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