Voglio parlare di una funzione delle calcolatrici HP che mi ha sempre affascinato e che mi ha permesso di risolvere molti problemi: la funzione di risoluzione delle equazioni (Solve in inglese).
La HP 34C è stata la prima calcolatrice
al mondo in grado di trovare (quasi sempre e se esistono) gli zeri di una funzione
generica ad una variabile (senza caricare un programma ad hoc). Per usarla si
deve scrivere un programma che rappresenta l'equazione. Ad esempio per trovare
gli zeri di Y(X)=X^3-3*X-10
si crea un programma RPN che utilizza
il registro X dello stack come variabile indipendente della funzione (l'incognita):
LBL B |
Fatto questo si impostano gli estremi dell'intervallo di ricerca digitando, per
esempio 2 ENTER↑ 3
e poi si preme il tasto SOLVE
. Qualche
secondo e viene visualizzato lo zero (se riesce a trovarlo). Per trovare il secondo
si utilizza la formula di Horner cioè si crea un secondo programma che richiama
il precedente ed effettua la divisione per x-x0 dove x0 era
lo zero precedentemente trovato. E così via. Utilizzando il primo programma si può
disegnare per punti il grafico della funzione e, sapendo interpretare i risultati
del calcolo, si può essere molto precisi.
Questa funzione è molto interessante. Ma con l'HP 32S c'è stato un ulteriore salto.
Prima di parlare di questo salto vorrei però aprire una digressione sulla HP 38C. Questa calcolatrice finanziaria, come le sue antenate, ha un sistema di risoluzioni di alcune equazioni (come quella sugli interessi composti) che funziona in questo modo: dati i valori di un certo numero di variabili, il programma è in grado di determinare i valori delle altre variabili dove una delle variabili è indipendente e le altre non determinate dipendenti. In parole povere se ci sono 5 variabili e digitate i valori di 3 di queste variabili, il programma calcola i valori delle altre 2 (sempre che si possa fare).
Nella HP 32S il risolutore di equazioni non dipende più dal valore del registro
X. Supponiamo di avere una equazione Y=A*X^3+C*X+D
. La funzione HP
Solve è in grado di risolvere l'equazione secondo una incognita che può essere X,
A, C, D o Y (dati i valori per le altre variabili ovviamente). E' una generalizzazione
della soluzione adottata dalla HP 38C (a livello di algoritmi è sicuramente molto
diversa - qui sto pensando all'utilizzo da parte dell'utente). Ovviamente la funzione
nella HP 32S si deve realizzare mediante un programma RPN:
LBL Y |
Per risolvere l'equazione prima si sceglie la funzione da elaborare (cioè il programma) utilizzando una voce del menu SOLVE poi si risolve l'equazione dichiarando la variabile indipendente (incognita). Il sistema chiede i valori per le variabili dipendenti (note) e cerca di convergere ad una soluzione. Un meccanismo simile è simulabile utilizzando il registro I della HP 34C.
Praticamente coetanea della HP 32S è la HP 22S
che non è RPN, non è programmabile ma può memorizzare ed eseguire equazioni. E ha
l'HP Solve. In questo caso basta scrivere l'equazione così come appare: Y=A*X^3+C*X+D
.
Per il resto si comporta come la HP 32S. E' per questo motivo che la HP 22S pur
essendo una semiprogrammabile
si innalza sopra molte altre della stessa tipologia. Le più recenti
HP 33s e HP
35s non fanno altro che combinare le caratteristiche della 22S e della 32S.
La tradizione è continuata con le calcolatrici RPL come la HP 28S e la HP 50g. La 50g può anche utilizzare una interfaccia con una finestra di dialogo:
Quest'ultima famiglia di calcolatrici è in grado anche di trovare soluzioni simboliche a molte equazioni.