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