Esercizi di Analisi Numerica -...

32
Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina, Aritmetica finita

Transcript of Esercizi di Analisi Numerica -...

Page 1: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

Esercizi di Analisi Numerica

Errori, Cambi di base, Numeri macchina, Aritmetica finita

Page 2: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 3: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 4: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 5: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 6: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 7: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 8: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 9: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 10: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 11: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 12: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 13: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 14: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 15: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 16: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 17: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 18: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 19: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 20: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 21: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 22: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 23: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 24: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 25: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 26: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 27: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 28: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 29: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

Quindi il numero in forma esponenziale e

N = +0.56250191 · 1627 ' 0.18254231 · 1033

28

Page 30: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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

Page 31: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

Quindi il numero in forma esponenziale e

N = −0.8010590076 · 16−21 ' −0.4141378 · 10−25

30

Page 32: Esercizi di Analisi Numerica - leibniz.diiga.univpm.itleibniz.diiga.univpm.it/~perdon/didattica/eserc_cap_1.pdf · Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina,

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