Silvia Bonettini - Appunti di Analisi Numerica 1 Richiami sulla rappresentazione dei numeri in una base fissata In questo capitolo si vogliono richiamare i concetti principali riguardanti la reppresentazione dei numeri in una base qualunque. Per introdurre l argomento distinguiamo il concetto di quantità espressa da un numero e la sua rappresentazione. NUMERO ENTITA ASTRATTA RAPPRESENTAZIONE sette (7, VII, 111 2,...) univocamente determinata molteplice a seconda dei criteri di rappresentazione adottati. A proposito della rappresentazione dei numeri, ricordiamo che la convenzione da noi usata per esprimere un numero è detta notazione posizionale. Vediamone il significato con un esempio. Quando scriviamo la stringa 759 noi in realtà intendiamo quel numero composto da 7 centinaio, 5 decine e 9 unità. Cifre 7 5 9 = 7 10 2 + 5 10 1 + 9 10 0 Posizione 2 1 0 Base 10 Ogni cifra assume un valore diverso a seconda della sua posizione all interno della stringa. Osserviamo anche che questa convenzione non è sempre usata nei numeri romani, dove ogni cifra (I, X, C, L, M,...), eccetto alcuni casi, ha
Silvia Bonettini - Appunti di Analisi Numerica 2 sempre lo stesso valore ovunque si trovi 1. La notazione posizionale decimale è dunque caratterizzata da una base β = 10, dalle posizioni delle cifre che costituiscono gli esponenti della base e da un insieme di simboli, le cifre 0,1,2,3,..., ciascuna delle quali indica un valore compreso tra 0 e 9. Mantenendo la convenzione posizionale, possiamo estendere il discorso per qualsiasi base β. Ad ogni valore di β dovremo definire un insieme ordinato S di simboli associati ai valori compresi tra 0 e β 1. BASE SIMBOLI 2 S = {0, 1} 8 S = {0, 1, 2, 3, 4, 5, 6, 7} 16 S = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F } Fissata una base β, ogni numero naturale si può quindi scrivere come una stringa di n cifre, che indichiamo con (c n c n 1...c 1 c 0 ) β Il valore di ogni cifra è dato dalla sua posizione all interno dell insieme S. Tuttavia, se con un piccolo abuso di notazione, indichiamo con c i anche il valore della cifra, allora il valore del numero espresso in notazione posizionale è (c n c n 1...c 1 c 0 ) β = c n β n + c n 1 β n 1 +... + c 1 β + c 0 ESEMPI. trecentosettantadue = (372) 10 = 3 10 2 + 7 10 1 + 2 10 0 (174) 16 = 1 16 2 + 7 16 1 + 4 16 0 (564) 8 = 5 8 3 + 6 8 1 + 4 8 0 (101110100) 2 = 1 2 8 + 0 2 7 + 1 2 6 + 1 2 5 + duecentoottantasette = +1 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 0 2 0 (287) 10 = (100011111) 2 = (10133) 4 (437) 8 = (11F ) 16 = (8V ) 32. Osserviamo che, all aumentare della base, aumenta il numero dei simboli. Al contrario, con una base più grande sono in genere necessarie meno cifre per 1 Infatti la notazione posizionale, assieme alle cifre che oggi tutti usiamo, sono giunte in occidente nel Medioevo grazie a matematici arabi.
Silvia Bonettini - Appunti di Analisi Numerica 3 rappresentare uno stesso valore. Supponiamo per esempio di rappresentare un numero naturale N in base 10 e in base 2, N = (a n a n 1...a 0 ) 10 = (b m b m 1...b 0 ) 2 con n+1 ed m+1 cifre rispettivamente. Vediamo in particolare di giustificare in modo più rigoroso quest ultima affermazione. Supponiamo che la prima cifra in entrambe le rappresentazioni non sia nulla. Allora deve essere 10 n N < 10 n+1 e 2 m N < 2 m+1. In particolare, indicando con x la parte intera di un numero reale x, si ha che n = log 10 N e m = log 2 N Ricordando che log 2 N = log 10 N log 2 10, possiamo approssimare il rapporto m come n m n log 2 N log 10 N log 2 10 3.32 Dunque, per rappresentare lo stesso numero in base 2 servono circa il triplo di cifre che in base 10. Si può generalizzare il risultato precedente dicendo che, se un numero si rappresenta on n + 1 cifre in base β 1 e con m + 1 cifre in base β 2, allora m n log β 2 β 1. Inoltre, minore è il numero dei simboli, quindi più piccola è la base, più demplici diventano le operazioni algebriche. Si confronti per esempio la tavola pitagorica per la moltiplicazione in base 10 con la corrispondente tavola per la stessa operazione in base 2 riportata qui sotto. + 0 1 0 0 1 1 1 10 0 1 0 0 0 1 0 1 A partire da queste semplici tavole si eseguono le operazioni aritmetiche seguendo le stesse regole valide nel caso decimale.
Silvia Bonettini - Appunti di Analisi Numerica 4 Somma: (25) 10 + (19) 10 = (44) 10. 1 1 0 0 1 + 1 0 0 1 1 = Riporto 1 1 1 Differenza: (24) 10 (13) 10 = (11) 10. 1 1 0 0 0-0 1 1 0 1 = 0 1 0 1 1 1 0 1 1 0 0 Prodotto: (13) 10 (14) 10 = (182) 10. 1 1 0 1 1 1 1 0 = 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 0 Quoziente: (28) 10 : (9) 10 = (3) 10 con resto 1. 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 Quoziente e prodotto sono riportati a differenze o somme e traslazioni di numeri. La scelta della base 2 comporta la manipolazione di lunghe stringhe di numeri ma la complessità dell aritmetica è bassa. Le operazioni possono essere realizzate con semplici circuiti elettronici. SCELTA DELLA BASE numero dei simboli lunghezza delle stringhe complessità dell aritmetica La somma di due cifre con riporto fornisce il risultato e il successivo riporto. Il numero delle possibili combinazioni degli impulsi in entrata è basso. La tabella seguente riporta proprio tutte le possibili combinazioni di somma di cifre in base 2.
Silvia Bonettini - Appunti di Analisi Numerica 5 c 1 c 0 riporto s riporto 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1
Silvia Bonettini - Appunti di Analisi Numerica 6 Rappresentazione dei numeri reali Finora abbiamo considerato il problema della rappresentazione dei numeri naturali e abbiamo visto come la notazione posizionale si adatti alla scelta di diverse basi. Ora consideriamo il caso dei numeri reali, per i quali vale il seguente teorema. Teorema di rappresentazione dei numeri reali Sia α R, α 0; fissato una base β > 1, α si rappresenta in modo unico come: α = segno(α)(a 1 β 1 + a 2 β 2 + a 3 β 3 +...)β p = segno(α) (a i β i )β p i=1 = segno(α) mβ p dove segno(α) = ±1 (a seconda che α >, < 0), 0 a i β 1, con a i interi e a 1 0 e p è un intero. Può esistere un indice k tale che a i = 0, k i (siginifica che α è un intero o un razionale finito), ma non esiste un indice k tale che a i = β 1, k i. Osserviamo che: Il numero reale 0 si rappresenta con 0. Poichè β > 1, la serie i=1 (a iβ i ) è convergente. m si dice mantissa e vale che 1 β m < 1. β p si dice parte esponente; p si dice esponente o caratteristica. si dice punto radice, + o si dice segno del numero e può essere omesso se il numero è positivo. In forma sintetica ogni numero reale α 0 si rappresenta come α = ±(.a 1 a 2 a 3...) β β p Se a 1 0, questa si dice forma normalizzata. Un numero reale α 0 si esprime in notazione posizionale in base β > 1 nel seguente modo:
Silvia Bonettini - Appunti di Analisi Numerica 7 1. forma mista: { α = ±.000..0a 1 a 2... ±a 1 a 2...a p.a p+1 a p+2... 2. forma scientifica: α = ±.a 1 a 2...β p ; si dice normalizzata se a 1 0. In base 2, in forma normalizzata, a 1 = 1. Esempi (372) 10 mista.372 10 3 normalizzata.0372 10 4 scientifica (3.141592...) 10 mista.3141592 10 1 normalizzata.3243f... 16 1 normalizzata (3.243F...) 16 mista
Silvia Bonettini - Appunti di Analisi Numerica 8 Algoritmi per la conversione di base Presentiamo ora alcuni algoritmi per la conversione di base, per numeri interi e per numeri reali. Algoritmo delle divisioni successive Serve per rappresentare un intero positivo α da base 10 ad una diversa base β. L algorimo consiste nell eseguire la divisione intera (quoziente e resto) del numero α per β finchè non si giunge ad un quoziente nullo. α β r 0 q 0 β r 1 q 1 β 2 2... Per costruzione risulta che q n 1 β r n q n = 0 α = βq 0 + r 0 = β(βq 1 + r 1 ) + r 0 = β 2 q 1 + βr 1 + r 0 = β(β(βq 2 + r 2 ) + r 1 ) + r 0 = β 3 q 3 + β 2 r 2 + βr 1 + r 0. = β n r n +... + β 2 r 2 + βr 1 + r 0 e quindi la rappresentazione di α in base β è data dai resti delle divisioni in ordine inverso α = (r n r n 1...r 1 r 0 ) β. Esempi Rappresentazione del numero (1972) 10 in base 2, 8 e 16.
Silvia Bonettini - Appunti di Analisi Numerica 9 base 2 1972 : 2 = 986 resto 0 986 : 2 = 493 resto 0 493 : 2 = 246 resto 1 246 : 2 = 123 resto 0 123 : 2 = 61 resto 1 61 : 2 = 30 resto 1 30 : 2 = 15 resto 0 15 : 2 = 7 resto 1 7 : 2 = 3 resto 1 3 : 2 = 1 resto 1 1 : 2 = 0 resto 1 (1972) 10 = (11110110100) 2 base 8 1972 : 8 = 264 resto 4 246 : 8 = 30 resto 6 30 : 8 = 3 resto 6 3 : 8 = 0 resto 3 (1972) 10 = (3664) 8 base 16 1972 : 16 = 123 resto 4 123 : 16 = 7 resto 11 = B 7 : 16 = 0 resto 7 (1972) 10 = (7B4) 16 Algoritmo delle moltiplicazioni successive Serve per rappresentare un reale decimale α < 1 in una base β > 1. Si tratta di determinare le cifre della rappresentazione α = (.a 1 a 2 a 3...) β = a 1 β 1 + a 2 β 2 + a 3 β 3 +... moltiplicando il numero α per la base β. Infatti al primo passo si ha αβ = a 1 + a 2 β 1 + a 3 β 2 + a 4 β 3... = a 1 + n 1 e dunque a 1 = αβ è la prima cifra. Al passo successivo si ripete lo stesso procedimento applicato al numero n 1 = α αβ < 1 e si determina calcola n 1 β = a 2 + a 3 β 1 + a 4 β 2 +... = a 2 + n 2. La seconda cifra è a 2 = αn 1 : al passo successivo si calcola la terza cifra come a 3 = αn 2. Ci si arresta o perchè la parte frazionaria diventa nulla o perchè si è raggiunto un numero di cifre sufficienti. Osserviamo infatti che numeri che hanno una rappresentazione finita in una certa base non è detto che si possano rappresentare con un numer finito di cifre in una base diversa (per esempio (0.1) 3 = 1/3 = (0.3333...) 10 ). Esempi(0.1) 10
Silvia Bonettini - Appunti di Analisi Numerica 10 base 2 0.1 2 = 0.2 p. intera 0 0.2 2 = 0.4 p. intera 0 0.4 2 = 0.8 p. intera 0 0.8 2 = 1.6 p. intera 1 0.6 2 = 1.2 p. intera 1 0.2 2 = 0.4 p. intera 0... (0.1) 10 = (0.0001100) 2 base 5 0.1 5 = 0.5 p. intera 0 0.5 5 = 2.5 p. intera 2 0.5 5 = 2.5 p. intera 2... (0.1) 10 = (0.02) 5 base 7 0.1 7 = 0.7 p. intera 0 0.7 7 = 4.9 p. intera 4 0.9 7 = 6.3 p. intera 6 0.3 7 = 2.1 p. intera 2 0.1 7 = 0.7 p. intera 0... (0.1) 10 = (0.0462) 7 Conversione di un reale da base 10 a base β Ricordando che ogni numero si esprime come somma della sua parte intera e della sua parte frazionaria, gli algoritmi delle divisioni e delle moltiplicazioni successive possono essere impiegati per calcolare la conversione di base di un qualunque reale. 1. Determinare α, ricordando il segno. 2. Determinare la parte intera α e eseguire la conversione con l algoritmo delle divisioni successive. 3. Determinare la parte frazionaria α α e eseguire la conversione con l algoritmo delle moltiplicazioni successive. 4. Scrivere il segno, la conversione della parte intera, il punto radice, la conversione della parte frazionaria. Esempio α = ( 25.375) 10. Convertire in base 2. 1. α = 25.375; segno= -. 2. [ α ] = 25; (25) 10 = (11001) 2. 3. α [ α ] =.375; (.375) 10 = (.011) 2.
Silvia Bonettini - Appunti di Analisi Numerica 11 4. α = ( 11001.011) 2. Conversione da base β a base 10 Ci sono due modi: Si applica la definizione di rappresentazione posizionale: α = ±(a 1 a 2...a p.a p+1 a p+2...a q ) β = ±(a 1 β p 1 + a 2 β p 2 +... + a p β 0 + +a p+1 β 1 + a p+2 β 2 +... + a q β p q ) Se definiamo due polinomi f e g come segue f(x) = a 1 x p 1 +a 2 x p 2 +...+a p e g(x) = a q x p+q +a q 1 x p+q 1 +...+a p+1 x la conversione equivale alla somma del polinomio f valutato nel punto x = β e del polinomio g in x = 1/β. (α) 10 = ±(f(β) + g(1/β)). Per convertire da base β a base 10 il numero reale α si possono usare gli algoritmi delle divisioni e delle moltiplicazioni successive, purchè si lavori con aritmetica in base β. Le cifre ottenute si convertono ai simboli di base 10. Conversione di un reale α da base β 1 a base β 2. 1. Si converte da base β 1 a base 10 (usando la rappresentazione posizionale) e da base 10 a base β 2 (con gli algoritmi delle divisioni e delle moltiplicazioni successive). Esempio α = (1221) 7. Conversione a base β 2 = 2. α = 1.7 3 + 2.7 2 + 2.7 1 + 1.7 0 = (456) 10 (456) 10 = (111001000) 2 mediante divisioni successive 2. Si può eseguire la conversione da base β 1 a base β 2 usando l algoritmo delle divisioni successive e/o delle moltiplicazioni successive con aritmetica in base β 1, convertendo le cifre ottenute ai simboli
Silvia Bonettini - Appunti di Analisi Numerica 12 della base β 2. β 2 va espresso in base β 1. ESEMPIO. α = (111001000) 2. Si converte a base β 2 = 7 = (111) 2. α = (1221) 7. 111001000 : 111 = 1000001 resto 1 1000001 : 111 = 1001 resto (10) 2 = 2 1001 : 111 = 1 resto (10) 2 = 2 1 : 111 = 0 resto 1 Conversione di un reale da base β 1 a base β 2 Caso particolare Nel caso in cui β 2 = β k 1, nella rappresentazione in base β 1 di un numero α reale, si staccano gruppi di k cifre a partire dal punto radice verso destra e verso sinistra, completando eventualmente il primo e l ultimo gruppo con zeri. Ogni gruppo è convertito a un simbolo della base β 2. Esempio. β 1 = 2; β 2 = 8 = 2 3. α = ( 1101110.01) 2 = ( 156.2) 8 β 1 = 2; β 2 = 16 = 2 4. 001 101 110. 010 1 5 6 2 α = ( 1101110.01) 2 = ( 6E.4) 16 0110 1110. 0100 6 E 4 Viceversa, se β 1 = β2 k, si espande ogni simbolo della rappresentazione di α in base β 1 sostituendolo con un gruppo di k cifre che sono la conversione del simbolo nella base β 2. Esempio β 1 = 9 = 3 2 ; β 2 = 3. α = (37.47) 9 = (1021.1121) 3 3 7. 4 7 10 21. 11 21
Silvia Bonettini - Appunti di Analisi Numerica 13 Si usa la seguente tabella di conversione dei simboli. (00) 3 0 9 (01) 3 1 9 (02) 3 2 9 (10) 3 3 9 (11) 3 4 9 (12) 3 5 9 (20) 3 6 9 (21) 3 7 9 (22) 3 8 9