Top Banner
Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina, Aritmetica finita
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,

Feb 18, 2019

Download

Documents

dangngoc
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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