HP Solve

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
ENTER↑
ENTER↑
3
yX
x↔y
3
*
-
1
0
-
RTN

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
INPUT X
INPUT A
INPUT C
INPUT D
RCL A
RCL X
3
yX
*
RCL C
RCL X
*
+
RCL D
+
RTN

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:

HP Solve - Step 1HP Solve - Step 2HP Solve - Step 3HP Solve - Step 4HP Solve - Step 5HP Solve - Step 6

Quest'ultima famiglia di calcolatrici è in grado anche di trovare soluzioni simboliche a molte equazioni.