I numeri

Le strutture numeriche e i loro usi

Scheda 3

Lo studio delle proprietà delle strutture numeriche (e non numeriche)

0.   Introduzione

1.   I numeri macchina delle CT

2.   Strutture numeriche

3.   Strutture non numeriche

4.   Le funzioni polinomiali - Il teorema del resto

5.   Massimo comune divisore e minimo comune multiplo

6.   I numeri macchina dei linguaggi di programmazione e di altre applicazioni

7.   Esercizi

0. Introduzione

     Nelle schede precedenti di questa unità didattica abbiamo visto come usare i numeri reali o loro sottoinsiemi (numeri decimali limitati, numeri razionali, numeri interi, numeri naturali) per rappresentare e studiare le relazioni tra le grandezze che intervengono in una situazione problematica.

     Abbiamo anche visto che non si tratta sempre di rappresentazioni "esatte" ma che, molto spesso, i modelli matematici impiegati forniscono rappresentazioni "approssimate" del fenomeno: se dico che la popolazione di una scuola è di 758 studenti uso una misura esatta, se invece dico che la lunghezza di un oggetto è  3.8 cm non intendo che essa sia esattamente 3.8000… cm.

     E nel fare i calcoli devo tener conto dell'eventuale natura approssimata delle misure su cui opero: se una piastra rettangolare ha come dimensioni 6.4 cm e 3.8 cm non posso concludere che l'area sia 6.3.8=24.32 cm2 con le cifre tutte significative (® scheda 2, quesito 15).

     A questi problemi si aggiunge il fatto che in genere eseguiamo i calcoli impiegando un mezzo di calcolo elettronico (calcolatrice o calcolatore). E, come abbiamo visto più volte, non sempre c'è corrispondenza tra i numeri "dei mezzi di calcolo" (numeri macchina) e i numeri "della matematica" (numeri reali).

     Riprendendo questi aspetti, approfondiremo lo studio delle analogie e delle differenze tra le varie strutture numeriche (®Gli oggetti matematici) e vedremo come la matematica oggi abbia esteso lo studio delle proprietà algebriche dal terreno dei numeri a quelli relativi ad altri oggetti matematici:  insiemi, stringhe, vettori, … e polinomi.

1. I numeri macchina delle CT

     I numeri macchina delle CT sono numeri decimali limitati con un numero prefissato di cifre (®calcolatrice tascabile in Gli oggetti matematici). Ad esempio la figura 1 illustra la configurazione dei registri di una particolare CT che impiega numeri decimali limitati di 8 cifre.

se-gno


mantissa

se-gno

espo-nente


figura 1

 

+

1

5

2

4

1

5

7

7

+

1

4

registrazione interna di 1.5241577·1014

 

 

­

punto decimale sottointeso

 

 

 

 

 

 

 

 

 

 

 

    

     Il numero raffigurato, cioè 152415770000000, è il risultato per la CT della moltiplicazione 123456712345678.  Eseguendo a mano tale calcolo si ha invece 152415765279684.

     Ciò significa che la moltiplicazione tra numeri macchina non coincide con la moltiplicazione tra numeri reali: ne è infatti l'arrotondamento a 8 cifre.

     Quindi l'insieme dei numeri macchina (NM) della nostra CT costituisce un sottoinsieme dell'insieme dei numeri decimali limitati (DL) ma non è una sottostruttura di DL rispetto alla moltiplicazione: NM e DL sono dotati di due funzioni-moltiplicazione diverse.

     DL, così come ZZ (l'insieme dei numeri interi) e  Q (l'insieme dei numeri periodici o numeri razionali), costituiscono, invece, non solo sottoinsiemi di IR (l'insieme dei numeri reali), ma ne sono anche sottostrutture rispetto alla moltiplicazione: la funzione-moltiplicazione è la stessa.

     Per distinguere la moltiplicazione in NM la indicheremo con il simbolo "Ä" invece che con "·" o con "´". Possiamo dunque scrivere che, dati x e y in NM:

xÄy= arrotondamento a 8 cifre del numero y

     Anche la addizione in NM non coincide con quella in IR. Possiamo descrivere l'addizione in NM nel seguente modo:

xÅy=arrotondamento a 8 cifre del numero x+y

(1)   In quali tra i seguenti casi le operazioni x,y|®xÅy e x,y|®x+y danno luogo agli stessi risultati?

x

y

x+y

xÅy

20202020

12345678

 

 

20202020

87654321

 

 

 

     Analogamente, la divisione (/

     Ad esempio, nel caso della nostra CT che arrotonda a 8 cifre, se da 12345678 sottraggo 0.1 non ottengo 12345677.9, ma ancora 12345678 (è l'arrotondamento a 8 cifre di 12345677.9). E se divido 10 per 3 ottengo 3.3333333, non 3..

     Si noti che in DL non posso calcolare 10/3: il risultato non è un numero decimale finito. Ricordiamo (®scheda 2 di La automazione) che anche in NM vi sono dei casi in cui le operazioni non sono definite.

     Ad esempio (1064 )Ä(1050) fa 2.10115 che non sta in NM: il massimo numero macchina è 9.9…1099. In questo caso la CT  visualizza un messaggio d'errore a indicare che c'è stato un overflow.

     Anche (10–64 )Ä(10–50) ha come risultato un numero che non sta in NM: 2.10–113 ha esponente inferiore a –99, e tra 0 e 10–99 non vi sono altri numeri macchina. Si tratta di un underflow. Alcune CT segnalano questo errore, la maggior parte delle CT invece, in tutti i casi in cui il risultato avrebbe un esponente inferiore a –99, assume automaticamente come risultato il numero 0.

     Ovviamente anche la funzione reciproco delle CT (x |® arrotondamento a 8 cifre di 1/x) non coincide con quella in IR. Lo stesso si può dire per la radice quadrata: l'arrotondamento a 8 cifre di non coincide con . La funzione cambio segno in NM coincide, invece, con quella in IR: infatti questa operazione cambia solo il bit che codifica il segno del numero senza modificare le cifre (®figura 1).

(2)   Nel diagramma a lato i seguenti numeri sono stati rappresentati con dei pallini. Scrivi vicino a ciascun pallino la lettera che indica il numero corrispondente.

     (a)        4.33333

     (b)        1.

     (c)

     (d)        3.5·103

     (e) 7·10–100

     (f) –3.5·10100

     Abbiamo anche visto (®scheda 4,§6 di Le statistiche) che le operazioni Å,

     Infatti, mentre valgono proprietà come xÅ0=x, xÄ1=x, xÅy=yÅx (proprietà commutativa dell'addizione), xÄy=yÄx (proprietà commutativa della moltiplicazione), x

trasformando un termine mediante queste proprietà si ottiene un termine algebricamente equivalente ma che, calcolato con la CT, può fornire un risultato diverso (e che può essere più o meno vicino al valore "esatto", cioè al valore che corrisponde al calcolo con le operazioni di IR).

(3)   Le formule m=(a+b)/2 e m=a+(ba)/2 (®scheda 3, §5  di Le statistiche) esprimono entrambe il valore m che sta a metà tra i valori a e b (la media aritmetica tra a e b). Infatti per i numeri reali vale la proprietà (a+b)/2=a+(ba)/2: sia il termine a sinistra che quel-lo a destra possono essere trasformati in a/2+b/2.

     Questi due termini sono equivalenti anche per le CT? Per rispondere, facendo riferimento alla nostra CT, completa quanto segue:

     (5.0000001Å5.0000003)/

     (5.0000003Å5.0000004)/

[Fai i calcoli "a mano" e controllali con CALCOL (®scheda 2,§7 di La automazione)]

     Dati due numeri reali distinti possiamo sempre trovare un terzo numero compreso tra di essi; ad esempio basta fare la media aritmetica dei due numeri. Nel caso dei numeri macchina questo non è sempre possibile. Infatti i numeri macchina possono essere disposti ordinatamente in fila; ogni numero macchina (diverso dall'infinito-macchina) ha il suo successivo:

–9.9…91099® –9.9…91099® –9.9…91099®® –1.0…01099® –9.9…99·1098®® –1.0…010–99

®0

®1.0…010–99® 1.0…010–99®®9.9…99·10–99®1.0…010–98®®9.9…91099®9.9…91099

e tra i due non vi sono altri numeri macchina. Ad esempio tra 9.999999103 e 9.999999103 o tra 5.0000003 e 5.0000004 non vi sono altri numeri di 8 cifre.

2. Strutture numeriche

     Abbiamo visto che un insieme può essere considerato una struttura se si fissano una o più operazioni, cioè funzioni che hanno input e output in esso. Si dice che un suo sottoinsieme è una sottostruttura rispetto alle operazioni fissate se è chiuso rispetto ad esse.

     In figura 2 abbiamo rappresentato l'insieme ZZ evidenziando alcuni suoi elementi. Dal puro insieme possiamo passare a una struttura considerando ad esempio la funzione successore (®scheda 1); in figura 3 abbiamo schematizzato questa struttura. La figura 4 evidenzia come il sottoinsieme IN sia chiuso rispetto a questa operazione: il successore di un numero naturale è ancora un numero naturale.

                                        figura 2

   

                    figura 3                                          figura 4                                              figura 5

     La figura 5 evidenzia come IN non sia chiuso rispetto alla sottrazione: non è una sottostruttura di ZZ rispetto a tale operazione.

     Usando questa terminologia possiamo descrivere diversamente le informazioni contenute nella tabella del quesito 24 della scheda 2 di questa unità didattica:

 

addizione

sottrazione

moltiplicazione

divisione (non per 0)

Q

OK

OK

OK

OK

DL

OK

OK

OK

10/3

ZZ

OK

OK

OK

10/3

IN

OK

1–2

OK

10/3

 

     IN è una sottostruttura di IR rispetto alla addizione e alla moltiplicazione, non rispetto alla sottrazione. ZZ lo è anche rispetto alla sottrazione.

   Se si considera IR–{0} (l'insieme dei numeri reali diversi da 0) dotato della operazione di divisione (abbiamo escluso lo zero in modo che x/y non sia mai indefinito), ZZ{0} non è una sottostruttura rispetto alla divisione, e non lo è neanche DL{0}. Lo è invece  Q{0}.

(4)   L'insieme dei numeri irrazionali, IRQ, è chiuso rispetto alla addizione? e rispetto alla moltiplicazione? e rispetto alla funzione reciproco?

     Se trascuriamo i casi di overflow e di underflow (cioè se supponiamo che gli esponenti della notazione scientifica non abbiano limitazioni), possiamo dire che NM è chiuso rispetto a Å e a Ä. Non ha senso, comunque, porsi il problema se NM sia una sottostruttura di IR rispetto a tali operazioni in quanto esse sono diverse da quelle che vengono fissate per IR.

(5)   Considera le tabelle seguenti:

(2.1)

 

per ogni x,y e z:
x+(y+z)=(x+y)+z

per ogni x e y:
x+y=y+x

per ogni x esiste y
tale che:    x+y=0

per ogni x esiste y
tale che:    y+y=x

 

IR

OK

OK

OK

OK

 

Q

 

 

 

 

 

DL

 

 

 

 

 

ZZ

 

 

 

 

 

IN

 

 

 

 

 

(2.2)

 

per ogni x,y e z:
x·(y·z)=(x·y)·z

per ogni x e y:
y=y·x

per ogni x≠0 esiste
y tale che:    y=1

per ogni x esiste y
tale che:  y·y·y=x

 

IR

OK

OK

OK

OK

 

Q

 

 

 

 

 

DL

 

 

x=3

 

 

ZZ

 

 

 

 

 

IN

 

 

 

 

 

     In (2.1) sono riportate quattro proprietà della addizione in IR e sono elencate alcune sottostrutture di IR rispetto alla addizione. In  (2.2) sono riportate quattro proprietà della moltiplicazione in IR e sono elencate alcune sottostrutture di IR rispetto alla moltiplicazione.

     Completa le tabelle indicando per ciascuna sottostruttura se sono vere le proprietà indicate. Se la pro-prietà è vera metti "OK", altrimenti metti un esempio in cui non vale, come è esemplificato in (2.2) nel caso di DL: non c'è alcun numero decimale limitato y tale che 3·y=1; infatti ciò accade solo se si prende come y il reciproco di 3 (y=1/3=0.333…) che non è limitato.

     Un insieme A può essere considerato una struttura non solo stabilendo un modo per operare sui suoi elementi (cioè definendo un'operazione), ma anche determinando un modo per confrontarli.

 

 

x

y

x<y

 

–5

–4

vero

 

1.34

1.035

falso

 

5.

6

falso

 

 

input

output

 

 

 

     Ad esempio possiamo considerare IR come struttura rispetto alla relazione d'ordinamento "<": presi due numeri reali qualsiasi x e y possiamo valutare se la condizione x<y è vera o falsa. La relazione "<" è una relazione a due argomenti in IR, cioè, in altre parole, una funzione a 2 input in IR e con output in {vero, falso}.

     Analogamente potremmo considerare le relazioni "≤", ">", …

     Fissata una relazione su un insieme A, posso utilizzare la stessa re-lazione per confrontare gli elementi di un qualunque sottoinsieme di A.

Ad esempio sia IN, sia ZZ, sia, anche, NM sono sottostrutture di IR rispetto a "<".

(6)   Nella tabella seguente vengono considerati IR e alcuni suoi sottoinsiemi, dove A={1/n : n numero intero positivo}={ 1/1, 1/2, 1/3, …}. Sono inoltre indicate alcune proprietà relative alla relazione "<".

         Completa la tabella usando "V" o "F" per segnalare se la proprietà è vera o falsa nelle diverse strutture.

 

 

IN

ZZ

DL

Q

NM

A

[0,1)

IR

esiste un primo elemento

 

 

 

 

 

 

 

 

esiste un ultimo elemento

 

 

 

 

 

 

 

 

presi comunque a e b, con a<b, esiste una quantità infinita di x tali che a<x<b

 

 

 

 

 

 

 

 

esistono infiniti elementi

 

 

 

 

 

 

 

 

 

3. Strutture non numeriche

     Abbiamo visto non solo strutture numeriche, ma anche altri insiemi su cui abbiamo fissato delle funzioni per operare in essi (operazioni) o delle relazioni. Rivediamoli, studiandone alcune proprietà.

     È utile, a tal fine, generalizzare e dare un nome ad alcune delle proprietà considerate nelle tabelle (2.1) e (2.2) per l'addizione e la moltiplicazione tra numeri.

     Sia una generica operazione binaria (a due argomenti) in un insieme A. Si chiamano:

         associativa la proprietà:                                      per ogni x, y e z in A          x(yz)=(xy)z

         commutativa la proprietà:                                   per ogni x e y in A            xy=yx

elemento neutro (o elemento identità) un elemento di A tale che:

    per ogni x in A                 x=x=x

elemento inverso di un elemento x di A un altro elemento x di A tale che:

                                             xx=xx=

 

(7)   In IR, qual è l'elemento neutro rispetto alla addizione?       E quello rispetto alla moltiplicazione?

         Qual è l'elemento inverso di 2 rispetto alla addizione?       E quello rispetto alla moltiplicazione?

         Conosci altri modi per denominare l'inverso rispetto all'addizione e quello rispetto alla moltiplicazione?

         Valgono la proprietà associativa e quella commutativa rispetto alla sottrazione?

Stringhe

     Abbiamo visto che tra le stringhe di un linguaggio di programmazione è definita la concatenazione "+" (®La automazione, scheda 3, p.17; Funzioni ed equazioni, scheda 1, p.2).

     Non vale la proprietà commutativa: la condizione "A"+"B" = "B"+"A" è falsa per i linguaggi di pro-grammazione (a "A"+"B" viene assegnato come "valore" la stringa "AB", mentre a "B"+"A" viene assegnato come valore la stringa "BA").

     Non vale, quindi, neanche la proprietà del riordino. Vale tuttavia la proprietà associativa:

al termine x$+(y$+z$) viene assegnato lo stesso valore assegnato al termine x$+y$+z$, forma abbrevia-ta per indicare (x$+y$)+z$.

      Esiste l'elemento neutro rispetto alla concatenazione. È la stringa vuota: ""+x$ e x$+"" hanno lo stesso valore di x$.

(8)   Esiste l'elemento inverso della stringa "ciao"?

     Tra le stringhe è definita anche la relazione "<" (®La automazione, scheda 3, p.18).

(9)   Discuti la verità/falsità delle proprietà considerate nel quesito 6 riferendoti all'insieme delle stringhe (supponi che il linguaggio di programmazione non ponga limiti alla lunghezza delle stringhe).

Condizioni

     Sull'insieme delle condizioni sono definite le "operazioni logiche" che, nei linguaggi di programmazio-ne, sono rappresentate con i simboli or, and, not e xor (®operatori logici in Gli oggetti matematici).

(10) In quali casi P and Q è vera? E P and (Q and R)? Per and valgono le proprietà commutativa e associativa?

         Quando P or Q è falsa? E P or (Q or R)?  Per or valgono le proprietà commutativa e associativa?

(11) Le tabelle a fianco dimostra-no due equivalenze "logiche".

         Come chiameresti le due proprietà?

Insiemi

     Abbiamo già visto (®La matematica e lo spazio, scheda 1, p.11; Funzioni ed equazioni, scheda 2, §2) che gli operatori logici consentono di descrivere l'intersezione e l'unione di figure, cioè di insiemi di punti.

     In generale, dati due insiemi (di numeri, di punti, …) A e B,

  la loro unione è l'insieme costituito dagli x tali che xÎA or xÎB; in genere è indicato: AÈB

  la loro intersezione è l'insieme costituito dagli x tali che xÎA and xÎB; in genere è indicato: AÇB

     Quindi, per È e Ç valgono proprietà analoghe a quelle che valgono per or e and.

     Ad esempio la figura seguente illustra l'analogia tra la distribuzione di and rispetto a or e la distribuzione di Ç rispetto a È.

     La rappresentazione grafica delle condizioni come sottoinsiemi (gli ovali nelle figure precedenti) di un insieme dato (il rettangolo "arrotondato") in alcuni casi consente di verificare o trovare una proprietà degli operatori logici in modo più semplice rispetto all'uso di "tabelle di verità" come quella del quesito 11.

 

figura 6

Illustrazione grafica dell'equi-valenza tra  NOT(P OR Q) e (NOT P) AND (NOT Q)

 

(12)  In modo analogo a quanto fatto in figura 6, verifica graficamente su un foglio se NOT (P AND Q) è equivalente a (NOT P) OR (NOT Q).

Funzioni a 1 input e 1 output in IR

    Si è già visto (®Funzioni ed equazioni, scheda 2, §4) che, date due funzioni f e g a input e output in IR, le funzioni x  f(x)+g(x) e x  f(x)·g(x) vengono dette funzione somma e funzione prodotto; analo-gamente x  f(x)/g(x) e x  f(x)–g(x) sono dette funzione differenza  e funzione quoziente (o rapporto).

(13)  Siano f la funzione x  e g la funzione x  . Qual è il dominio di f (cioè per quali x il termine è definito)? Qual è il dominio di g? Qual è il dominio della funzione somma di f e g? E quelli delle funzioni differenza, prodotto e quoziente?

dominio di f

 

di g

 

 

 

 

 

di f+g

 

di fg

 

di f·g

 

di f/g

 

 

 

     Il dominio della funzione somma o differenza o prodotto è l'intersezione del dominio di f e del dominio di g. Nel caso della funzione quoziente, il dominio si ottiene da tale intersezione togliendo gli eventuali x per i quali g(x) vale 0.

     Per ogni x (in cui f e g sono definite) f(x)+g(x)=g(x)+f(x): infatti la addizione tra numeri reali verifica la proprietà commutativa. Quindi f+g e g+f a parità di input forniscono lo stesso output, cioè sono funzioni uguali. Possiamo quindi dire che anche per la somma di funzioni vale la proprietà commutativa.

     Considerazioni analoghe valgono per le altre proprietà (commutatività del prodotto, proprietà asso-ciativa, proprietà distributiva, …).

     Anche la composizione è un'operazione tra funzioni. Date f e g, la funzione g(f(.)) all'input x associa l'output g(f(x)).

(14)  Siano f la funzione x  x+1 e g la funzione x  . Esplicita l'espressione di g(f(x)).

          Qual è il dominio di g(f(.))?

          f(g(.)) è uguale a g(f(.))?

          Vale la proprietà commutativa per la composizione tra funzioni?

Vettori e trasformazioni geometriche

    Nel caso delle traslazioni, che sono funzioni a 2 input e 2 output in IR, la composizione verifica la proprietà commutativa; infatti la proprietà commutativa è verificata dalla addizione tra vettori  (®La mate-matica e lo spazio, scheda 1, p.5).  Per la addizione tra vettori vale anche la proprietà associativa, l'esistenza dell'elemento neutro (è il vettore nullo) e dell'elemento inverso (il vettore opposto).

(15) Nella figura a fianco è illustrata la successiva applicazione al punto (1,1) della traslazione T2,1 (traslazione di passi 2 e 1) e della rotazione R(0,0),–90°  (rotazione attorno all'origine di am-piezza –90°). Il punto trasformato è (2,–3).

         Qual è il punto trasformato se a (1,1) applico prima la rota-zione e poi la traslazione?

         La composizione tra movimenti piani è commutativa?

     La parte della matematica che si occupa delle proprietà delle strutture numeriche e del calcolo simbolico o letterale su espressioni numeriche viene chiamata anche algebra elementare o algebra classica in quanto, ai nostri giorni (a partire dagli inizi del '900), con "algebra" si intende, più in generale, la parte della matematica che si occupa delle proprietà delle strutture sia numeriche che non numeriche, di cui abbiamo visto qualche esempio in questo paragrafo.

     Alcuni chiamano, rispettivamente, algebra e algebra moderna ciò che qui abbiamo indicato come algebra classica e algebra.

4. Le funzioni polinomiali - Il teorema del resto

     Osserva, a lato, il grafico della funzione F:x  ottenuto con GRAFUN.

     Ha un andamento rettilineo, cioè F si comporta come una funzione lineare. Troviamo qual è questa funzione calcolando la pendenza del grafico e l'intercetta, cioè l'ordinata del punto in cui interseca l'asse y.

     Dal grafico si trova facilmente che la pendenza è 1 e che l'intercetta è –3, per cui la funzione lineare cercata è x  x–3.

     Sembra, quindi, che  sia algebricamente equi-valente a x–3.

     In altre parole, qualunque valore si assegni a x, dovrebbe essere vera l'equazione:

                                              = x–3

ovvero (poiché la divisione è l'operazione inversa della moltiplicazione) dovrebbe essere vera l'equazione:

                                     (x–3)(x+1) = x22x–3

     "Sviluppando" (x–3)(x+1) e, poi, raggruppando i termini della somma così ottenuta si ha:

(x–3)(x+1) = x(x+1)+(3)(x+1) = x·x+1+(–3)x+(–3)·1 = x2+x+(–3)x–3 = x2+(1–3)x–3

= x22x–3

o, se si preferisce:

(x–3)(x+1) = x(x+1)+(3)(x+1) = x(x+1)–3(x+1) = x·x+1–(3x+3·1) = x2+x–3x–3

= x2+(1–3)x–3 = x22x–3

[In genere molti di questi passaggi vengono eseguiti a mente e si scrive più in breve:

(x–3)(x+1) = x(x+1)–3(x+1) = x2+x–3x–3 = x22x–3]

     Quindi  (x–3)(x+1) = x22x–3  è effettivamente vera per ogni x.

     Non possiamo però concludere che  è equivalente a x–3 in quanto per x=–1 il primo termine non è definito: otterrei una divisione per 0.

     In altre parole la funzione F iniziale è equivalente alla funzione  x  x–3  se restringiamo il dominio di

quest'ultima imponendo la condizione x≠–1.

     Ovvero:     y =  Û    (y = x–3  and  x≠–1)

     La traduzione "geometrica" di ciò è che il grafico di F non è una retta, ma una retta "bucata":

     è la figura che si ottiene dalla retta y=x–3 togliendone il punto di ascissa –1.

     Consideriamo ora:  G(x)=.

      

 

     Il termine G(x), come F(x), è il rapporto tra un polinomio in x di 2° grado e uno di 1° grado.

     G, come F, ha grafico rettilineo?

     Rappresentando G con grafun si ottiene il grafico a lato.

     Non è più una retta bucata.

     Anzi, man mano che x si avvicina a –1 il grafico si al-lontana sempre più dall'asse x, o verso l'alto (se ci si avvicina a –1 da destra) o verso il basso (se ci si avvicina a –1 da sinistra).

     Ciò significa che non esiste una funzione lineare H (cioè una funzione polinomiale di grado) tale che, per ogni x≠–1, sia vero che:

= H(x)

 

Nota.  Tracciando il grafico di G si può ot-tenere una figura come quella a lato, più a si-nistra, o, se si ripete più volte il tracciamento di nuovi punti, come quella alla fine di p.8.

    Se, poi, si facessero congiungere i punti tracciati si otterrebbe una figura come quella a lato, più a destra, contenente un tratto di grafico quasi verticale che non rispecchia l'andamento effettivo della funzione.

  

 

     Potrei capire che  e   sono uno equivalente (dove è definito) a un polinomio in x di 1° grado e l'altro no, senza ricorre al tracciamento dei grafici?

     Di fronte ai rapporti 112/14 e 212/14, come possiamo stabilire se sono equivalenti a numeri interi? La strada più semplice è eseguire la divisione.

     Con la CT nel primo caso otteniamo come risultato 8, nel secondo caso 15.14… .

     "A mano" si usa un algoritmo che procede per tentativi "ragionati":

 

 

212

 

14

 

-140

 

10

 

72

 

 

 

 

 

 

 

212

 

14

 

-140

 

10

 

72

 

 5

 

-70

 

 

 

2

 

 

 

 

 

cerco un numero [10] il cui prodotto per 14 [140] non superi 212

sottraggo tale prodotto da (cioè addiziono il suo opposto a) 212

ottengo come resto 72: è quanto devo ancora dividere per 14

cerco un numero [5] il cui prodotto per 14 [70] non superi 72

sottraggo tale prodotto da (cioè addiziono il suo opposto a) 72

ottengo come resto 2: è quanto devo ancora dividere per 14

a questo punto, se non voglio operare con numeri non interi, mi arresto e dico che il quoziente (intero) della divisione è 15 e il resto (intero) è 2

= 10 +

= 10 + 5 +

= 15 +

     Si può introdurre un analogo algoritmo per la divisione tra polinomi in x (o in un'altra variabile):

   nel caso della divisione di un numero A per un altro numero B (B≤A) cerco di ricondurmi alla divisione per B di numeri man mano più piccoli (212/14 ® 72/14 ® 2/14), fino ad arrivare a 0 o a un numero comunque inferiore a B (nell'esempio precedente mi fermo quando ottengo il resto 2, che è inferiore a 14);

   nel caso della divisione di un polinomio A(x) per un polinomio B(x) (di grado inferiore o uguale) cercherò di ricondurmi alla divisione per B(x) di polinomi di grado man mano minore, fino ad arrivare al polinomio nullo o a un polinomio di grado inferiore rispetto a B(x):

 

 

  x2 - 2x - 3

 

x + 1

 

-(x2 +  x)

 

x

 

     - 3x - 3

 

 

 

 

 

 

 

  x2 - 2x - 3

 

x + 1

 

-(x2 +  x)

 

x

 

     - 3x - 3

 

- 3

 

   -(- 3x - 3)

 

 

 

            0

 

 

 

 

 

cerco un monomio axn [x] il cui prodotto per x+1 [x2+x] possa essere sottratto da x2–2x–3 ottenendo un polinomio di grado inferiore

sottraggo tale prodotto da (cioè addiziono il suo opposto a) x2–2x–3

ottengo come resto –3x–3: è quanto devo ancora dividere per x+1

cerco un monomio axn [–3: monomio di grado 0] il cui prodotto per x+1 [–3x–3] possa essere sottratto da –3x–3 ottenendo un polinomio di grado inferiore

sottraggo tale prodotto da (cioè addiziono il suo opposto a) –3x–3

il resto è 0, cioè il polinomio nullo; quindi mi fermo.

 = x +  

=  x + 3 = x – 3

     In questo caso il resto è nullo, per cui posso concludere che: x22x–3 = (x+1)(x–3).

 

 

  x2 + x + 1

 

x + 1

 

-(x2 + x)

 

x

 

           1

 

 

 

 

 

Per  l'algoritmo della divisione si sviluppa nel modo indicato a lato.

In questo caso il procedimento si conclude rapidamente. Infatti come primo resto ottengo 1,  che ha grado inferiore a x+1,  per cui mi devo fermare.

 

     Posso concludere che:  x2+x+1 = (x+1)x+1, ovvero che:

= x +

     Posso eseguire la divisione intera anche tra un numero A e un numero B ad esso superiore: in tal caso il quoziente è 0 e il resto è A stesso. Ad esempio 5 diviso 12 fa 0 con resto 5.

     Analogamente posso divedere un polinomio A(x) per un polinomio B(x) di grado superiore: in questo caso il polinomio quoziente è 0 (il polinomio nullo) e il polinomio resto è A(x) stesso.

     L'insieme dei numeri interi è chiuso rispetto alle operazioni a 2 input e 1 output di somma, differenza e prodotto e è dotato della operazione divisione intera a 2 input e 2 output (quoziente e resto).

     L'insieme delle funzioni polinomiali ha una struttura simile: è chiuso rispetto a somma, prodotto e differenza di funzioni ed è dotato di una divisione a 2 input e 2 output (polinomio quoziente e polinomio resto) analoga a quella tra numeri interi.

(16)  Consideriamo le funzioni:   x  e   x  .

   Se eseguo la divisione tra il polinomio a numeratore e quello a denominatore, qual è il grado del poli-nomio quoziente? Se il resto non è nullo, quale può essere il suo grado? [rispondi senza fare la divisione]

   Sotto sono riprodotti i grafici di tali funzioni. Da essi puoi dedurre in quale dei due casi la divisione ha resto nullo?

      

   Completa le seguenti divisioni e confronta i risultati con le risposte date al punto precedente.

 

  12x3 + 40x2 + 43x + 15

 

2x2 + 5x + 3

 

  12x3 + 34x2 + 38x + 15

 

2x2 + 5x + 3

-(12x3 + 30x2 + 18x)

 

6x

 

-(12x3 +    +   )

 

6x

         10x2 + 25x + 15

 

 

         

 

 

 

 

 

 

 

 

 

 

 

 

 

     Il programma polinomi (®Funzioni ed equazioni,scheda 2, §4) consente di eseguire anche la divi-sione tra polinomi: introdotti i due polinomi da dividere, il programma calcola e registra separatamente il polinomio quoziente e il polinomio resto.

     Vediamo ad esempio che cosa si ottiene comandando la divisione di A(x)=x22x–3 per B(x)=x+1 e la registrazione del quoziente e del resto come C(x) e D(x):

e comandando la divisione di E(x)=x2+x+1 per B(x) e la registrazione del quoziente e del resto come F(x) e G(x):

     Osserviamo che, come si vede anche in questi due esempi, la divisione per un polinomio di primo grado ha come resto 0 o, comunque, un numero: infatti il grado del resto deve essere inferiore a 1.

(17)  Mediante l'applicazione polinomi controlla i risultati delle divisioni considerate nel quesito precedente.

     In figura 7 è tracciato il grafico di x  x22x–3. Esso interseca l'asse x per x=–1 e x=3. Del resto:

  abbiamo visto che x22x–3 è fattorizzabile in (x–3)(x+1)

  (x–3)(x+1)=0  equivale a x–3=0 or x+1=0 (a·b=0 <=> a=0 or b=0) e quindi a x=3 or x=–1

     In figura 8 è tracciato il grafico di x  x2+x+1. Esso non interseca l'asse x. Quindi x2+x+1 non solo non è divisibile esattamente per  x+1, cioè non è fattorizzabile come (x+1)·(…), ma non è neanche divisibile per x–h, qualunque sia il numero h.

     Infatti, se fosse divisibile per x–h sarebbe fattorizzabile come (x–h)·(…) e, quindi, si azzererebbe per x=h, cioè il suo grafico incontrerebbe l'asse x per x=h.

figura 7        figura 8 

     Viceversa, se so che la funzione polinomiale x  A(x) ha grafico che interseca l'asse x per x=h, cioè se so che A(h)=0, posso concludere che A(x) è divisibile esattamen-te per x–h?

     Ad es. in fig. 9 è tracciato il grafico di x  2x2+5x+3. Esso interseca l'asse x in due punti che hanno (con buona approssimazione) ascissa –1 e –1.5 rispettivamente.

     Se la prima ascissa fosse esattamente –1, potrei conclu-dere che 2x2+5x+3 è fattorizzabile come (x–(–1)(…), cioè come (x+1)·(…)?

     La risposta è affermativa, infatti vale la seguente pro-prietà, nota come teorema del resto (o di Ruffini):

la divisione di A(x) per xh ha come resto il numero A(h)

     La dimostrazione di ciò è facile. Se Q(x) e R sono il quoziente e il resto della divisione di A(x) per x–h:

figura 9

= Q(x) + ,  ovvero:  A(x) = Q(x)(x–h)+R.  Quindi, per x=h,  A(h) = Q(h)(hh) + R = 0+R = R

     Come immediata conseguenza del teorema del resto, abbiamo che:  se A(h)=0 il polinomio A(x) è divisibile esattamente per x–h.

 

 

  2x2 + 5x + 3

 

x + 1

 

-(2x2 + 2x)

 

2x

 

        3x + 3

 

3

 

      -(3x + 3)

 

 

 

             0

 

 

 

 

 

     Tornando al caso illustrato in figura 9, la divisione di 2x2+5x+3 per x+1 è effettivamente esatta. Il quoziente è 2x+3, per cui posso ottenere la fattorizzazione:

2x2+5x+3 = (x+1)(2x+3) = (x+1)2(x+3/2) = 2(x+1)(x+1.5)

    Abbiamo raccolto 2 a fattor comune in modo da trovare l'altro valore di x per cui il polinomio si azzera:

2x2+5x+3 = 0   <=>   2(x+1)(x+1.5) = 0   <=>   x+1 = 0 or x+1.5 = 0   <=>   x = –1 or x = –1.5

(18)  Senza eseguire la divisione, stabilisci quali tra i seguenti polinomi sono divisibili esattamente per x–3 e quali per x+2:

                           5x25x–30           2.1x2+8.4x+6.3           x3+0.5x210.5x          5x+10

(19)  Siano F:x  , G:x  .

       Per ciascuna di esse stabilisci, usando il teorema del resto, se il grafico è o no una retta "bucata". In caso affermativo trova l'equazione della retta e le coordinate del "buco".

     Il teorema del resto ci consente di concludere che, se un'equazione polinomiale ha, ad esempio, 5 soluzioni a, b, c, d ed e, il polinomio è divisibile per (x–a), (x–b), (x–c), (x–d) e (x–e) e, quindi, è equivalente a  (x–a)(x–b)(x–c)(x–d)(x–e).  Il polinomio deve, perciò, essere almeno di 5° grado.

     Un'equazione polinomiale di 4° grado, quindi, ha al più 4 soluzioni: se ne avesse 5 dovrebbe essere di grado maggiore di 4.

     In generale possiamo concludere (come preannunciato in Funzioni ed Equazioni, scheda 2, §4) che:

una equazione polinomiale di grado n ha al più n soluzioni.

     Il teorema del resto può essere utilizzato per tentare di scomporre ogni termine che sia interpretabile come polinomio in una certa variabile. Consideriamo un esempio.

     a2b2 può essere pensato come polinomio di 2° grado in a, cioè come P: a  a2b2.  Osservo che P(b)=b2b2=0. Per il teorema del resto a2b2 è divisibile per ab.

     Eseguo la divisione, tenendo conto che sto operando con polinomi in a: devo quindi scrivere i risultati intermedi (resti, …), usando eventuali riordini e raggruppamenti, così che appaiano come polinomi in a.

 

 

  a2      - b2

 

a - b

 

-(a2 - ba)

 

a

 

       ba - b2

 

b

 

     -(ba - b2)

 

 

 

             0

 

 

 

 

 

Il quoziente è a+b e quindi:

a2b2=(ab)(a+b)

    Questa scomposizione ci era già nota. Proviamo con un procedi-mento analogo a individuarne altre.

(20)  a3b3 e a3+b3 possono essere pensati come polinomi di 3° grado in a. Verificate che essi hanno come radici, rispettivamente, b e –b. Usando il teorema del resto cercate di scomporre ciascuno di essi nel prodotto di due polinomi in a.

5. Massimo comune divisore e minimo comune multiplo

     Continuiamo l'analogia tra interi e polinomi.

     Se voglio semplificare (®Gli oggetti matematici) la frazione  posso procedere per tentativi:

  vedere se entrambi i termini sono divisibili per 2, e ottenere  ;

  vedere se i nuovi termini sono ancora divisibili per 2 (no, in questo caso) e/o per 3, e ottenere  .

     Complessivamente, ho diviso entrambi i termini per 6 (2·3=6): 6 è il massimo numero intero per cui sono entrambi divisibili (con resto nullo), cioè 6 è il massimo comune divisore di 12 e 198 [m.c.d.(12,198)=6].

     Di fronte a  non è altrettanto semplice procedere per tentativi e ottenere  . La nuova frazione si può ottenere dividendo entrambi i termini per 91.

     Ci si pone, allora, il problema di trovare direttamente 91, cioè il m.c.d. dei due termini della frazione. Con un programma (come divis-ok.bas, ®La automazione, scheda 3, p.18) potremmo facilmente trovare ed elencare tutti i divisori dei due numeri e individuare il m.c.d.:

     Un modo semplice per trovare "a mano" il m.c.d. tra 637 e 182 è il seguente:

1.   Calcolo la divisione intera tra 637 (il maggiore) e 182 ottenendo 3 con resto 91, cioè  =  3 + 

2.   Posso dire di aver ricondotto la semplificazione di  alla semplificazione di  , cioè la ricerca di divisori comuni tra 637 e 182 alla ricerca di divisori comuni tra 91 e 182.

    Infatti:

         = + .    Se  è semplificabile per un numero D, D è un divisore di 182.

        Quindi, è semplificabile per D anche  .   Ma allora  è semplificabile per D.

3.   Procedo come al passo 1: calcolo la divisione tra 182 e 91 ottenendo 2 con resto 0, cioè  = 2

4.   Quindi 91 è il massimo numero per cui è semplificabile  , cioè 91 è il m.c.d. tra 182 e 91.

5.   Concludendo (vedi punto 2) 91 è il m.c.d. tra 637 e 182.

     Questo procedimento è noto come algoritmo delle divisioni successive o algoritmo euclideo (dal nome del matematico greco del 3° sec. a.C. Euclide, che descrive tale metodo in uno dei suoi scritti).

(21)  Trova il m.c.d. tra 2431 e 884.

     Analogamente, per semplificare un termine del tipo  è spesso utile cercare un polinomio del grado più alto possibile che divida esattamente sia polinomio1 che polinomio2.

     Un polinomio di tal genere viene chiamato massimo comune divisore di polinomio1 e polinomio2.

     Tale polinomio non è unico: se un polinomio è divisibile ad esempio per x+3 sicuramente è divisibile anche per 2x+6 [= 2(x+3)], per 0.2x+0.6 [= 0.2(x+3)], … .

     L'esistenza dei massimi comuni divisori tra polinomi è garantita dall'algoritmo delle divisioni suc-cessive, che, senza sostanziali variazioni, è applicabile anche ai polinomi.

     Vediamo, ad esempio, come determinare un m.c.d. di  3x29x+6  e  x25x+6.

 

 

  3x2 -  9x +  6

 

x2 - 5x + 6

 

-(3x2 - 15x + 18)

 

3

 

         6x - 12

 

 

 

 

 

 

 

  x2 - 5x + 6

 

6x - 12

 

-(x2 - 2x)

 

1/6x

 

      -3x + 6

 

-1/2

 

    -(-3x + 6)

 

 

 

            0

 

 

 

 

 

      =  3 +

      =  1/6 x – 1/2

6x–12  è un polinomio, di grado massimo, che divide sia            6x–12         che         x25x+6          e, quindi,

sia  3x29x+6    che     x25x+6.

     Quindi  6x–12  è un m.c.d. di  3x29x+6  e  x25x+6. Ma sono m.c.d. anche, per esempio, 2x–4, 3x–6, 0.6x–1.2, …, x–2.

     Il programma polinomi fornisce come m.c.d.  x–2:

     Più in generale fornisce, tra i possibili m.c.d., quello con coefficiente direttivo 1.  Anche noi, quando parleremo de «il m.c.d.» intenderemo quello con coefficiente direttivo 1.

     Se voglio semplificare il termine  posso dividere entrambi i polinomi per x–2:

Ho diviso A per C e ho preso come nuovo A il quoziente (il resto R è 0, come mi aspettavo).

Ho diviso B per C e ho preso come nuovo B il quoziente (il resto S è 0, come mi aspettavo).

     Posso allora concludere che:   =  .

     Notiamo che, pur essendo vera questa equazione, non posso concludere che   e  sono algebricamente equivalenti in quanto per x=2 il primo termine non è definito.

     Posso dire che essi sono equivalenti se restringo il dominio a {x/x≠2} oppure che sono equivalenti e  .

   Con l'applicazione Derive posso introdurre direttamente il termine e poi azionare Simplify ottenendo   . Occorre però ricordare che il dominio del nuovo termine è cambiato.

   In Derive si può procedere nel seguente modo:

   introdurre i due polinomi: #1 e #2 nell'esempio sotto riportato;

   costruire il termine rapporto tra i due polinomi: #3;

   semplificare tale rapporto: #4;

   trovare il m.c.d. (cioè il polinomio per cui sono stati semplificati i due polinomi) calcolando la divisione tra uno qualsiasi dei due polinomi di partenza (#2 nell'esempio) e il corrispondente polinomio "semplificato" (il polinomio a denominatore in #4):    #5 (impostazione della divisione) e #6 (sua semplificazione).

                                                  

oppure si può usare la funzione predefinita poly_gcd (gcd sta per greatest common divisor), battendo poly_gcd(#1,#2), e azionare Semplifica  (per passare a #4):

                                                  

Nota.  In questo caso Derive ha calcolato correttamente il m.c.d., in altri casi produce il m.c.d. che ha come coefficiente direttivo il m.c.d. dei coefficienti direttivi (interi) dei polinomi, in altri casi produce "cose strane" (tra cui calcolare il m.c.d. di termini non polinomiali). Vedi gli esempi seguenti. Come abbiamo già visto anche in altre situazioni, è opportuno interpretare e controllare i risultati forniti dalle applicazioni per il calcolo simbolico.

 

(22)  Trova il m.c.d. tra x2+x–6 e x34x2+x+6 con il metodo delle divisioni successive (dividere il polinomio di grado maggiore per l'altro, …)

(23)  Per  trovare  il  m.c.d.  M  tra  x(x28x+15)  e  x37x2+10x  potrei  fare:  x(x28x+15)= x38x2+15x e applicare l'algoritmo delle divisioni successive a x37x2+10x e x38x2+15x. Ma conviene osservare che:

   x37x2+10x = x(x27x+10),

   i due polinomi hanno in comune il divisore x,

   quindi basta calcolare il m.c.d. M’ tra x27x+10 e x28x+15 e prendere come M il prodotto di M’ per il fattore x già trovato.

     Calcola M procedendo in questo modo.

(24)  Semplificando  con derive si ottiene  .

     Qual è il m.c.d. tra  6x3+18x2132x144  e  2x22x+2?

     e tra  3x3+9x266x72  e  x2–x+1?

     Per esprimere il valore del termine  + in forma di rapporto tra interi (®Gli oggetti matemati-ci, p.45) posso procedere così:

    trasformare  in  =  e  in  = 

    trasformare  +  in  raccogliendo 1/180 a fattor comune

    poi, se voglio, semplificare  in  .

     Però potrei anche cercare di riscrivere direttamente le frazioni di partenza con un denominatore più piccolo di 180:

   trasformare  in  =  e  in  = 

   trasformare  +  in  raccogliendo 1/60 a fattor comune

   se voglio, posso poi semplificare  in  .

     Il  secondo procedimento ha il vantaggio (non grande, a dire il vero) di operare con numeri più piccoli. Non avrei potuto operare con numeri ancora più piccoli in quanto 60 è il minimo comune multiplo di 15 e 12 [m.c.m.(15,12)=60].  Infatti i multipli di 15 sono 15, 30, 45, 60, 75, … e quelli di 12 sono 12, 24, 36, 48, 60, 72, ….

     Questo metodo (elencare i multipli dell'uno e dell'altro fino a trovarne uno comune) è il più semplice, ma non è sempre il più efficiente. Nel caso di 420 e 660, per ottenere il m.c.m. 4620, dovrei generare:  420, 840, 1260, 1680, …, 4200, 4620  e  660, 1320, 1980, …, 3960, 4620.

     Un metodo spesso più efficiente è il seguente, che illustriamo per trovare il m.c.m. tra 15 e 12:

   15 e 12 hanno 3 come m.c.d.: 15=3·5, 12=3·4;

   quindi moltiplicare 15·12 equivale a moltiplicare 3·5·3·4, mentre per ottenere un multiplo di 15(=3·5) e 12(=3·4) basta considerare 3·5·4, cioè considerare una sola volta il fattore 3.

    In breve:     m.c.d. (15,12) = 3                 m.c.m.(15,12) = m.c.m.(3·5,3·4)      = 3·5·4 = 60

                                                                                                             ovvero      = 5·12 = 60

                                                                                                             ovvero      = 15·4 = 60

     Nel caso di 420 e 660 posso trovare il m.c.d. con le divisioni successive o nel modo seguente:

          =         ho diviso entrambi i termini per 10

         =  ho diviso entrambi i termini per 6

                      non posso più semplificare;  in tutto ho diviso i termini iniziali per 60, che quindi è il m.c.d.

Quindi:  660 = 11·60, 420 = 7·60.  Perciò:   m.c.m.(660,420) = 11·60·7 = 660·7 [o 11·420] =  4620

    In maniera analoga definisco minimo comune multiplo di polinomio1 e polinomio2 un polinomio del grado più basso possibile che sia "multiplo" di entrambi, cioè che sia divisibile esattamente sia per polinomio1 che per polinomio2.

    Consideriamo ad esempio il termine:  +

    Se voglio trasformarlo in un unico termine frazionario posso fare:

       +                          =  +

                                                            =  =  

                                                  e poi sviluppare i calcoli ed eventualmente semplificare

     oppure procedere trovando prima il m.c.m. tra i due denominatori:

    con il metodo delle divisioni successive o con polinomi trovare il m.c.d. dei due denominatori:  x–3, dividere entrambi per il m.c.d. ottenendo le fattorizzazioni:

              x38x2+19x–12 = (x–3)(x25x+4)         2x25x–3 = (x–3)(2x+1)

      prendere come m.c.m.  (x–3)(x25x+4)(2x+1) e quindi fare:

     +                              =  +

                                                            =  +

                                                            = 

                                                            =  = 

                                                  e poi sviluppare i calcoli ed eventualmente semplificare

     Il secondo metodo consente di operare con polinomi di grado inferiore. Quando il m.c.d. dei due deno-minatori è 1 i due metodi coincidono: il prodotto dei due denominatori è, infatti, anche un loro m.c.m..

     Il programma polinomi consente di calcolare direttamente il m.c.m. di due polinomi P1 e P2. Il programma procede trovando prima il m.c.d. M tra P1 e P2, poi calcolando P1/M·P2.

     Con Derive posso trasformare in frazione direttamente (senza calcolare il m.c.m.) una somma di frazioni polinomiali azionando il comando Simplify.

     Nei casi in cui si sappiano fattorizzare i denominatori in modo più immediato, ovviamente si può procedere in maniera più rapida.

(25)  Trasforma in frazione  +  raccogliendo x a fattor comune nel 1° denominatore e riscri-vendo il 2° denominatore mediante l'equivalenza tra a2b2 e (a+b)(ab) [2 può essere scritto come 2]

     La ricerca del m.c.m. tra due polinomi può essere utile non solo per trasformare somme di frazioni polinomiali ma anche per trasformare equazioni, come nell'esempio seguente:

  = + 1

  = + 1

per "eliminare i denominatori" posso moltiplicare entrambi i termini dell'equazione per il m.c.m. tra i denominatori che compaiono in essa, che come abbiamo visto sopra, è: 

(x–3)(x25x+4)(2x+1)

  =

semplificando le frazioni e distribuendo la moltiplicazione rispetto all'addizione, ottengo:

  (x+1)(2x+1) = 11x(x25x+4) + (x–3)(x25x+4)(2x+1)

sviluppando i due termini dell'equazione, portando termini a 1° membro e riordinando, posso alla fine ottenere l'equazione polinomiale:

  2x44x327x2+36x–13 = 0

Posso poi trovare le eventuali soluzioni (al più 4: ®p.12) di questa equazione con il metodo grafico. Nel caso di equazioni polinomiali particolari avrei potuto utilizzare metodi simbolici di risoluzione (fattoriz-zazioni, uso di "formule risolutive", …).

Avrei potuto risolvere graficamente anche l'equazione di partenza, ma, a priori, non avrei potuto valutare il numero delle soluzioni; inoltre, a causa della esistenza di valori di x che annullano i denominatori, avrei ottenuto un grafico più "strano" (con "salti infiniti").

In ogni caso devo, però, poi controllare che le soluzioni dell'equazione polinomiale appartengano al dominio dell'equazione di partenza (potrebbero annullarne i denominatori: ®Funzioni ed equazioni, scheda 1, §5).

6.  I numeri macchina dei linguaggi di programmazione e di altre      applicazioni

    Consideriamo il seguente programma in QBasic e l'esempio d'uso riportato al suo fianco.

10 INPUT x,y

PRINT x-y

GOTO 10

     Nel 1° caso (12345678–0) non otteniamo come risultato 12345678 ma il suo arrotondamento a 7 cifre: il QBasic, in genere (poi accenneremo a eccezioni), visualizza gli output in questo modo.

     Nel 2° caso (5555.1251–5555) otteniamo come risultato 0.125. Ciò ci fa supporre che nel registro associato alla variabile x il valore 5555.1251 venga memorizzato arrotondato a 7 cifre (5555.125), cioè che l'arrotondamento a 7 cifre avvenga non solo al momento della visualizzazione, ma già al momento della registrazione (di input o risultati di calcoli).

     Negli altri due casi siamo di fronte a uscite strane. Ci saremmo aspettati:

    nel 3° caso (843.27–843.23) il risultato 0.04,

    nel 4° caso (54321.12345–54321) il risultato 0.12  (come frutto della registrazione "in x" di 54321.12, arrotondamento a 7 cifre del primo input, e della sottrazione di 54321).

     Come mai accade ciò?

     A differenza di quanto avviene nelle CT, che memorizzano i numeri in BCD (®p.1), QB memorizza i valori numerici nei registri associati alle variabili in forma binaria.

     Per capire questo discorso dobbiamo prima esaminare come i numeri non interi possono essere scritti in una base diversa da 10.

     Leggi la voce Basi di rappresentazione dei numeri de Gli oggetti matematici, in cui è anche spiegato come il concetto di numero limitato (cioè numero con periodo 0) dipenda dalla base di rappresentazione.  Rispondi quindi al seguente quesito.

(26)  Completa le seguenti eguaglianze (esprimendo i numeri mancanti in base dieci):

(0.1) = 0.         (0.1) = 0.5             (0.01) = 0.125            (      )2 = 0.0625

(10.1)2 = …             (0.11)2 = …              (0.11)3 = …                   (11.1)3 = …

     Tra il software del progetto sono presenti i programmi basi-int e basi che consentono di trasformare da una base all'altra la rappresentazione di numeri, rispettivamente, interi e qualunque.

     Vediamo come usare basi per trovare la rappresentazione decimale di (1.)5.

                                                     

     Vediamo il viceversa, cioè come passare dalla base 10 a un'altra base, riferendoci ai numeri del quarto esempio considerato all'inizio del paragrafo:

     Le uscite sono in notazione scientifica.   Quindi la rappresentazione binaria di 54321.12345 sarebbe:

1101010000110001.0001111110011010011010110101000010110              e quella di 54321 sarebbe:

1101010000110001.0000000000000000000000000000000000000

     Mentre la rappresentazione binaria di 54321 è esatta (essendo un numero intero la parte frazionaria è costituita da una sequenza di 0), quella di 54321.12345 è solo approssimata: il messaggio "stab" che visualizza il programma indica soltanto che la rappresentazione fornita è la migliore approssimazione che esso è in grado di calcolare.

Nota.  Derive consente di scrivere i numeri in una base qualunque e di visualizzarli in un'altra utilizzando il sottomenu Radix di Options.

     Ora possiamo comprendere l'uscita strana "0.125" fornita da QB come risultato di x-y dopo l'assegnazione a x e a y rispettivamente di 54321.12345 e 54321.

     QB associa alle variabili numeriche registri di 32 bit, 1 per il segno, 7 per l'esponente, 24 per la mantis-sa, quindi 54321.12345, cioè:     1101010000110001.00011111100110100110101101010…

viene arrotondato a                       1101010000110001.00100000 [vedi la nota seguente]

mentre 54321, cioè:     1101010000110001.00000000000000000000000000000…

viene arrotondato a                       1101010000110001.00000000.

     Quindi come valore di x-y QB calcola:

                                      1101010000110001.00100000 –

                                                                           1101010000110001.00000000 =

                                                                                          0.001

     Sul visore il numero binario 0.001 viene visualizzato in forma decimale come 0.125.

Infatti 0.001=23=1/8=0.125.

Nota.  In base dieci 1.5… arrotondando agli interi diventa 2. Analogamente in base due 1.1… arrotondando agli interi diventa 10 (®figura seguente).    In generale per arrotondare un numero in base 2 alla cifra di po-

sto n si osserva la cifra immediatamente a destra:

   se è 0 si sostituiscono con 0 tutte le cifre a destra del posto n,

   se è 1 si aumenta di 1 la cifra di posto n e si sostituiscono con 0 tutte le cifre alla sua destra

     Anche l'uscita strana "4.0039010–2" fornita da QB come risultato di x-y dopo l'assegnazione a x e a y rispettivamente di 843.27 e 843.23 è spiegabile in modo simile.

     In x e in y i due numeri vengono approssimati con due numeri binari limitati di 24 bit, come differenza viene calcolato il numero binario 0.0000101001, che in base dieci è 0.0400390625 (1/32+1/128+1/1024) e che sul visore appare arrotondato a 7 cifre: 0.04003906, cioè: 4.003906E–2.

     Il massimo numero (infinito macchina) che QB riesce a codificare (in forma binaria) è (1.11…1)2·2127 @ 2128 @ 3.402821038.

     Volendo ottenere risultati più precisi (e registrare numeri più grandi) si può far sì che QB registri i valori con una quantità maggiore di bit. Infatti (come si è già accennato nella scheda 2, a p.10) mediante l'istru-zione DEFDBL lista di lettere si può far sì che alle variabili inizianti con le lettere indicate vengano associati registri con quantità doppia di bit: 64 (= 8 byte) invece di 32 (=4 byte).

     In particolare alla mantissa vengono riservati 53 bit. L'infinito macchina diventa (1.11…1)2·21023 @ 21024 @ 1.7976931348623110308.

     I valori di queste variabili, dette di tipo precisione doppia, vengono visualizzati con 16 cifre.

     Ad esempio per il programma iniziale così modificato otteniamo:

DEFDBL x,y

10 INPUT x,y

PRINT x-y

GOTO 10

     I numeri interi non troppo grandi vengono registrati non in notazione scientifica, ma in notazione esponenziale con esponente 0, in modo che la mantissa coincida con la rappresentazione binaria del numero. In questo modo non ci sono i problemi di approssimazione appena visti (numeri limitati in base 10 che diventano illimitati in base 2 e, quindi, vengono registrati in modo approssimato da QB).

     Ciò risulta chiaro dalle uscite a lato fornite dal programma precedente con numeri interi e non interi costituiti dalla stessa sequenza di cifre.

     Volendo, comunque, QB consente di utilizzare anche variabili di tipo intero (registri di 2 byte) e di tipo intero lungo (4 byte) mediante le istruzioni defint e deflng. Anche le variabili stringa possono essere dichiarate con un'analoga istruzione defstr, facendo a meno dell'aggiunta di "$". Per ulteriori informazioni e approfondimenti si rimanda al manuale o all'help.

     Il programma grafun è stato realizzato in QB (e poi tradotto e memorizzato in linguaggio macchina) utilizzando variabili di tipo precisione doppia.

     I fogli di calcolo operano sui numeri in modo simile a come fa QB sulle variabili di tipo precisione doppia. Con opportune opzioni si può associare ad ogni cella un particolare tipo di visualizzazione (forma esponenziale o no, numero di cifre visualizzate, …). Anche in QB ciò è possibile (mediante l'istruzione print using).

     Derive ha diverse possibilità sia per la registrazione che per la visualizzazione dei numeri (menu Dichiara-StatoAlgebra, sottomenu Semplificazione e Visualizzazione). In particolare Derive offre la possibilità di registrare i numeri ed eseguire i calcoli con quantità grandi a piacere di cifre.

     Per avere un'idea di come Derive possa eseguire calcoli operando con un numero qualsiasi di cifre puoi eseguire ed esaminane i programmi somma.bas e prodotto.bas presenti tra il software del progetto, che consentono di calcolare somme e prodotti con quantità arbitrarie di cifre.

     Derive, fogli di calcolo, grafun (e praticamente ogni altra applicazione) possono comunque dar luogo a uscite strane, come quelle viste per le calcolatrici e per QB. Quanto visto in questa scheda dovrebbe averti reso consapevole dell'opportunità di esaminare criticamente in ogni caso le uscite numeriche.

7. Esercizi

(27) Nel diagramma a lato (in cui sono usate le notazioni considerate nel §1 – in particolare NM indica i numeri macchina della CT esa-minata nella scheda) i seguenti numeri sono stati rappresentati con dei pallini. Scrivi vicino a ciascun pallino la lettera che indica il numero corrispondente.

     (a)        31.58·1099            (e)     72.2

     (b)        17·1028                      (f)     –41·10–4

     (c) π      (g)                              –7.28·10200

     (d)        6.10–120

(28) Completa la tabella seguente come indicato nel quesito 5.

 

 

per ogni x esiste y
tale che:    y+y+y=x

per ogni x,y e z:
x·(y+z)=x·y+x·z

per ogni x esiste y
tale che:    y=x

per ogni x diverso da 0 e ogni y esiste z
tale che:    z=y

 

IR

OK

OK

OK

OK

 

Q

 

 

 

 

 

DL

 

 

 

 

 

ZZ

 

 

 

 

 

IN

 

 

 

 

 

(29)  Determina il più piccolo sottoinsieme di IR contenente 3 chiuso rispetto alla addizione, quello conte-nente 3 chiuso rispetto alla sottrazione, quello contenente 3 chiuso rispetto alla sottrazione e alla divisione.

(30)  Siano f la funzione x  e g la funzione x  x–1. Qual è il dominio di f, g, f+g, f·g, f/g, g/f, g(f(.)) e f(g(.))? Esplicita l'espressione di g(f(x)) e f(g(x)).

(31)  Date f: x  2x,  g: x  x+1,  h: x  x–1 e  k: x  x/2, stabilisci se fra le seguenti funzioni ve ne sono di uguali (motiva la risposta):     g(f(.)), h(f(.)), k(f(.)), f(g(.)), h(g(.)), k(f(.)).

          Nell'insieme delle funzioni a input e output in IR, qual è l'elemento neutro rispetto alla composizione? Qual è l'elemento inverso di g?

(32)  Considera i termini:   ,   ,   .

       Per ciascuno di essi stabilisci, usando il teorema del resto (dopo eventuali fattorizzazioni "immediate"), se sono "semplificabili". In caso affermativo trova il nuovo termine e specifica per quali valori di x è equivalente al termine iniziale.

(33)  Trova il m.c.d. e il m.c.m. tra le seguenti coppie di numeri nel modo che ti pare più semplice:

                  45 e 99             56 e 64           396 e 528        114 e 171

(34)  Per ciascun termine frazionario considerato nei quesiti 31 e 32 trova m.c.d. e m.c.m. (con coefficiente direttivo 1) tra il polinomio a numeratore e quello a denominatore (nel modo che ritieni più semplice).

(35)  Trova m.c.d. e m.c.m. (con coefficiente direttivo 1) tra le seguenti coppie di polinomi [usa le eventuali tracce].

x24 e x25x+6

[osserva che x24 è scomponibile in … e usa il teorema del resto in modo opportuno sull'altro polinomio]

x26x+5 e x26x+8

[che relazione c'è tra i grafici di x  x26x+5 e di x  x26x+8? possono avere in comune intersezioni con l'asse x? possono essere entrambi divisibili per uno stesso polinomio di 1° grado?]

x32x2+x–2 e x32x2+x+1

[utilizza l'algoritmo euclideo]

(36)  Utilizzando l'ultima risposta al quesito precedente, stabilisci se le figure di equazione y=x32x2+x–2 e y=x32x2+x+1 hanno in comune intersezioni con l'asse x.  Verifica la risposta con grafun.

(37)  Utilizzando il programma polinomi è stato definito un polinomio C(x) di 3° grado e per tentare di scomporlo si è proceduto nel modo seguente.

     Sulla base di quanto riportato sopra scrivi C(x) come prodotto di un polinomio di 1° grado per uno di 2°. Spiega a parole la strategia impiegata da chi ha utilizzato il programma.

     C(x) è scomponibile nel prodotto di 3 polinomi di 1° grado? In caso affermativo scrivi questa fattorizzazione (arrotondando a 4 cifre i coefficienti che non sai scrivere in modo più semplice).

(38)  Sviluppa i seguenti termini in modo da ottenere dei termini polinomiali (in x e in z rispettivamente).

          Per fare i calcoli utilizza opportunamente la riscrittura  (dopo aver riordinato i termini).

                            

  Trasforma in frazione(39)  + 

   [prima di fare altri calcoli vedi se puoi raccogliere a fattor comune degli atomi nei vari polinomi]

(40)  Risolvi rispetto a x l'equazione  +  = 1 procedendo in modo simile a quanto fatto alla fine di p.16.

(41)  Completa il seguente programma in modo che traduca l'algoritmo euclideo per i  numeri interi.

10  INPUT "a,b"; A,B

WHILE A<>0

 IF A<B THEN SWAP A,B  'per avere il 1^ termine maggiore, se serve, scambio A e B

 Q=A\B: R=A-         'calcolo quoziente intero e resto: A/B = Q + R/B

 A=R                     'prendo R come nuovo A

WEND

PRINT "mcd(a,b) ="B      'appena ottengo una divisione esatta, stampo il divisore

GOTO 10

(42)  Scrivi un programma per calcolare la somma di due polinomi (utilizzando opportunamente le variabili indiciate per memorizzare i coefficienti).

(43)  Le funzioni  x,y  x2y+x–1,  x,y  x5y2x2y+x–y  e più in generale ogni funzione F a due input che a (x,y) associa la somma di termini del tipo kxiyj (con k non contenente né x né y) sono dette funzioni polinomiali a 2 input. La somma i+j viene detta grado del termine kxiyj.

          Il massimo tra i gradi dei termini la cui somma dà F(x,y) viene detto grado della funzione polinomiale F. Quindi la prima delle funzioni sopra considerate (somma di un termine di grado 3, uno di grado 1 e un altro di grado 0) ha grado 3, la seconda ha grado 7. Questa definizione, in realtà, è inesatta: dobbiamo aggiungere l'ipotesi che il termine F(x,y) sia stato semplificato in modo che non appaiano due termini kxiyj e hxiyj dello stesso grado (altrimenti, nel caso di x,y  x2y+x–x2y+1 e di x,y  x+1 , poiché x2y+x–x2y+1 e x+1 sono algebricamente equivalenti, ci troveremmo di fronte a una stessa funzione polinomiale a cui non sapremmo se assegnare il grado 3 o il grado 1).

          Il termine F(x,y) viene detto polinomio in x e y. Una equazione del tipo F(x,y)=0 viene detta equazione polinomiale in x e y; come grado di essa viene definito il grado di F.

          Utilizzando grafun (o Derive) tracciate il grafico di più equazioni polinomiali di primo e di secondo grado, confrontate i vostri risultati e congetturate quali tipi di figure sono, in generale, i grafici di questi generi di equazioni.

1)   Segna con l'evidenziatore, nelle pagine indicate, frasi e/o formule che descrivono il significato dei termini:

     sottostruttura, p.3    elemento neutro, p.5     elemento inverso, p.5      polinomi quoziente e resto, p.10

     teorema del resto, p.11       massimo comune divisore tra polinomi, p.13       algoritmo euclideo, p.13

     minimo comune multiplo tra polinomi, p.15   numero limitato, p.17     arrotondamento in base 2, p.19

2)    Su un foglio da "quadernone" (che poi inserirai dopo l'ultima pagina della scheda), nella prima facciata, esemplifica l'uso di ciascuno dei concetti sopra elencati mediante una frase in cui esso venga impiegato.

3)    Nella seconda facciata riassumi in modo discorsivo (senza formule, come in una descrizione "al telefo-no") il contenuto della scheda (non fare un elenco di argomenti, ma cerca di far capire il "filo del discorso").