La automazione
Dalle macchine semplici alle macchine programmabili
Scheda 2
Le calcolatrici
0. Introduzione
1. Come sono memorizzati i numeri
2. Composizione di funzioni - Funzioni inverse - Radice quadrata - Altri tasti funzione
3. Esercizi
Sintesi
0. Introduzione
In questa scheda approfondiremo lo studio del funzionamento delle calcolatrici e delle proprietà di alcune funzioni.
1. Come sono memorizzati i numeri
Le calcolatrici usano dei dispositivi interni (registri di lavoro), che esse gestiscono
automaticamente, senza intervento diretto dell'utente, per memorizzare i numeri e le operazioni battute dall'utente. I numeri-macchina di una CT, cioè i numeri che essa è in grado di memorizzare nei registri di lavoro, hanno un minimo positivo (1.000 ·10-99) e un massimo positivo (9.999 · 1099), detto infinito-macchina, e sono in quantità finita. I registri di lavoro sono costituiti da sequenze di particolari dispositivi elettronici, simili a interruttori, detti flip-flop, che, sotto l'azione di impulsi elettrici, possono assumere due sole posizioni. Indicando con 0 e 1 i due stati che può assumere un flip-flop, possiamo dire che le informazioni vengono codificate impiegando l'alfabeto 0, 1. |
Questi due simboli sono detti bit. La parola deriva dall'inglese "binary digit": cifra binaria, cioè cifra impiegata nella notazione numerica a due cifre. Ecco come vengono rappresentati in forma binaria i primi dieci numeri interi non negativi:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 |
I registri di una CT che arrotonda a 8 cifre e che sta visualizzando il nostro numero sono organizzati così (0 ed 1 per il segno, "-" e "+"; rappresentazione binaria delle cifre decimali):
+ |
1 |
5 |
2 |
4 |
1 |
5 |
7 |
7 |
+ |
1 |
4 |
1 |
0001 |
0101 |
0010 |
0100 |
0001 |
0101 |
0111 |
0111 |
1 |
0001 |
0100 |
A differenza di quanto avviene nelle usuali CT, gran parte delle applicazioni per computer memorizzano i valori numerici in forma binaria, non solo le loro cifre. Mentre nelle usuali CT il numero dieci è registrato come 0001 0000 (cifra 1 → 0001, cifra 0 → 0000), nei computer viene registrato come 1010: dopo 9, rappresentato da 1001, dieci viene rappresentato come 1010. Non ci addentriamo nell'argomento, che verrà ripreso più avanti. Ci limitiamo ad osservare che i numeri frazionari non vengono rappresentati fedelmente passando dalla forma decimale a quella binaria, e questo può dar luogo a delle uscite apparentemente strane. Questo accade per tutti i programmi sui computer, e accade anche per le "nostre" calcolatrici:
Vediamo degli esempi. Le "nostre" CT hanno una capacità di memorizzazione maggiore delle usuali, per cui 12345678·12345678 viene memorizzato per esteso, con tutte le cifre esatte: 152415765279684. Ma di fronte a 843.27-843.23, con la "grande CT" invece di 0.04 otteniamo 0.03999999999996362.
Sembra un "errore", ma se arrotondiamo il numero con qualche cifra in meno ci appare come 0.04. Del resto la "piccola CT" visualizza 0.04 se non
facciamo arrotondare il risultato con più di 13 cifre; se scegliamo 17 cifre viene visualizzato anche da essa 0.03999999999996362.
Anche diverse applicazioni (come i codiddetti "fogli di calcolo") ci farebbero apparire sul visore 0.04 ma in realtà "dentro"
hanno registrato il numero come 0.03999999999996362 o qualcosa di simile. Infatti se facciamo eseguire ad esse il calcolo
di "=(843,27-843,23)-0,04" (o con "," al poso di "." se abbiamo il foglio di calcolo impostato alla "italiana") otterremmo sul visore -3.63806E-14 invece di 0 (questi esiti dei fogli di calcolo sono stati spesso fonti di clamorosi errori, anche presso alcune banche).
In realtà quando si esegue un calcolo anche le usuali calcolatrici commettono "errori", dovuti alle approssimazioni dei calcoli via via effettuati,
dovuti al fatto che comunque operano con un numero limitato di cifre. Su tutti questi aspetti ritorneremo successivamente.
La cosa, comunque, per ora non ci deve preoccupare eccessivamente: i risultati dobbiamo sempre arrotondarli con poche cifre.
| Esegui con una delle due "nostre" calcolatrici il calcolo di √3 e poi moltiplica il risultato ottenuto per sé stesso. Riottieni 3 o un numero diverso? Come è possibile ciò? |
2. Funzioni a più input ed output - Composizione di funzioni - Funzioni inverse - Radice quadrata
Nella scheda Le statistiche - 2 abbiamo considerato le funzioni da un input e 1 output numerici. Ma sono funzioni tutti gli "oggetti" matematici che associano ad 1 o più input 1 o più output. Facciamo un primo esempio. Se nella calcolatrice "grande" considerata sopra introduco l'input: 100, -3.15, 7.33, 9.17, 33 e poi clicco i bottoni sotto indicati ottengo:
Abbiamo calcolato diverse funzioni che ad una sequenza di input hanno associato come output la quantità degli input, il loro massimo, il loro minimo e la loro somma.
Consideriamo quest'altro script e introduciamo gli stessi input:
Cliccando "ordina" abbiamo ottenuto tanti output quanti gli input, ma messi in ordine.
Ma su una qualunque calcolatrice, oltre a funzioni ad 1 input come la "radice quadrata", abbiamo funzioni a 2 input, come ad esempio le cosiddette 4 operazioni, in cui l'output può essere ottenuto con un semplice calcolo. Gran parte delle funzioni che si usano sono costruite ricorrendo alla composizione delle quattro operazioni. Ad es. (vedi figura a sinistra) la media tra due numeri è ottenuta componendo una addizione e una divisione per 2. | |
Nota. La parola "operazione" è spesso usata in matematica per indicare funzioni che hanno input ed output appartenenti allo stesso insieme (l'addizione, a due input e un output, il cambio segno, a un input e un output, la divisione intera con resto, a due input e due output, ), ma anche altri tipi particolari di funzioni, che, eventualmente, incontrerai nella prosecuzione degli studi. |
Se una funzione viene indicata con un certo nome, gli output corrispondenti a certi input vengono
espressi usando il nome seguito da parentesi che racchiudono gli input. Ad esempio nel caso precedente, se indico la
funzione con la lettera G, posso indicare l'output corrispondete agli input a e b, ossia (a+b)/2, con
Se a un input w la funzione F associa [non associa] un
output si dice che F è [non è] definita in w
o che il termine
Nel caso di H il dominio è l'insieme di tutti i numeri non negativi. Se
Nel grafico a fianco sono rappresentate 3 funzioni:
|
La radice quadrata composta con l'elevamento al quadrato restituisce l'input iniziale. Scambiando l'ordine delle due funzioni ciò continua ad accadere per gli input non negativi, mentre per quelli negativi si ottiene come output il loro opposto:
La funzione rappresentata dal secondo diagramma, x → √x², ad un input associa
il suo valore assoluto. Il valore assoluto di x viene in genere indicato con la scrittura
|x| o con
Due funzioni f e g vengono dette una funzione inversa dell'altra se applicando g a un output di f riottengo l'input che avevo dato a f e, viceversa, se applicando f a un output di g riottengo l'input che avevo dato a g: vedi figura a lato. Le funzioni x → x·1.25 e x → x·0.8 sono dunque una l'inversa dell'altra. |
Più in generale sono tali le funzioni x → x·k e x → x·(1/k) (cioè x → x/k). Le funzioni "radice quadrata" e "elevamento al quadrato" considerate sopra non sono una l'inversa dell'altra in quanto, come si vede nella figura sopra a destra, se parto da -2 e applico prima l'elevamento al quadrato e poi la radice quadrata non riottengo -2. La funzione radice quadrata e la funzione elevamento al quadrato "ristretta" agli input non negativi (g e f nella figura qui a destra) sono invece l'una l'inversa dell'altra. |
3. Esercizi
In alcuni dei seguenti esercizi si richiede di utilizzare lo script per tracciare grafici già considerato in schede precdenti:
function f(x) { y = ...; return y } function g(x) { y = 1/0; return y } // puoi definire altre funzioni function h(x) { y = 1/0; return y } // you can define other funcions function k(x) { y = 1/0; return y } aX = ...; bX = ...; aY = ...; bY = ... Dx = ...; Dy = ...
Nota: i nomi di funzione ["abs" (valore assoluto), "sqrt" (radice quadrata), ] devono essere preceduti da "Math.". Vedi.
| Completa gli schemi a fianco dando il nome giusto (f o
g) a ciascuna "scatola", sapendo che: f: x → 3+x g: x → x2 |
| Completa gli schemi a fianco dando il nome giusto (f o
g) a ciascuna "scatola", sapendo che: f: x → 3·x g: x → 2·x + 1 |
| Qui sotto sono riprodotti parzialmente 3 grafici. (a) Quali dei tre grafici rappresentano delle funzioni a 1 input e 1 output, cioè in quali casi ad ogni x corrisponde al più un y? | ||||||||
(b) I tre grafici rappresentano le relazioni indicate a fianco. Associa ad ogni relazione il grafico corrispondente. (c) Quale tra le precedenti relazioni può essere scritta nella forma y = √x?
(d) Qual è
l'insieme di definizione delle due relazioni che sono anche funzioni |
| ||||||||
| Puoi ottenere la figura B del quesito e4 come grafico di un'unica funzione? Usa opportunamente lo script richiamato all'inizio degli esercizi per ottenere tale figura. |
|
| «La funzione reciproco e la funzione cambio-segno hanno la proprietà di coincidere con la loro funzione inversa». Prova a spiegare e motivare questa affermazione. |
| Traccia i grafici di f e g nei casi seguenti e prova a concludere se f(x) e g(x) sono termini equivalenti. | ||||||
(1) | f(x) = abs(x) | g(x) = sqrt(x^2) | (2) | f(x) = abs(x) | g(x) = abs(-x) | ||
(3) | f(x) = abs(x+2) | g(x) = abs(x)+2 | (4) | f(x) = (x+1)*x | g(x) = x*x+x | ||
(5) | f(x) = 3/x*x | g(x) = 3/x^2 | (6) | f(x) = (3/x)^2 | g(x) = 3/x^2 |
|
Consideriamo
l'operazione di composizione di funzioni, cioè quella che
prese due funzioni F e G le trasforma nella funzione composta
G(F(.)) ("G di F") che a x associa G(F(x)): trasforma x con
F e poi applica G (per questo la funzione viene letta anche come "F
composto G"). Si tratta di un'operazione commutativa, cioè "G composto F" è uguale a "F composto G"? |
| (a) Usando la nostra grande CT parova a calcolare 2^0.5 e confronta il risultato con quello del calcolo di √2. Ripeti la prova con numeri diversi da 2. Che cosa puoi ipotizzare circa il valore di a0.5? |
(b)
Sappiamo che am·an = am+n se m e n
sono numeri interi. Se vogliamo che questa equazione sia vera
anche quando m e n non sono interi, dobbiamo avere in
particolare: a0.5·a0.5 = a1 = a. Come
puoi collegare questa conclusione con quanto visto in (a)? (c) Una persona vuole costruire una cisterna di forma cubica che abbia il volume di 10 m3. Sapendo che il volume del cubo è lato·lato·lato, cioè lato3, la persona per trovare la misura in metri dello spigolo della cisterna si propone di calcolare il numero che elevato alla 3a faccia 10. Per far ciò prima usa |
Su un foglio da "quadernone" esemplifica l'uso di ciascuno dei seguenti concetti mediante una frase in cui esso venga impiegato: registro di lavoro numeri macchina insieme di definizione composizione di funzioni funzione inversa valore assoluto |