È in grado di interpretare semplici espressioni algebriche; per farlo usa la classe php, reperibile sul web, EvalMath (Copyright © Miles Kaufmann, 2005 www.twmagic.com) modificata in molte sue parti per le necessità di questa pagina. Il maggior impegno richiesto per il calcolo delle espressioni algebriche ha indotto a ridurre a 500 il numero massimo di cifre decimali. Se proprio dovessero occorrerne di più bisognerà far ricorso alla versione base della calcolatrice.
Non è ammessa mai la notazione esponenziale del tipo 3.5E8; volendo introdurre numeri con la notazione esponenziale è necessario scrivere un elevamento a potenza esplicito; quello che su un foglio elettronico è 3.5E8 qui si dovrà scrivere 3.5*10^8. I risultati saranno sempre scritti per esteso e mai in notazione esponenziale.
Le lettere presenti nelle espressioni sia nei nomi di variabili che di funzioni, sono tutte convertite in minuscolo. Se a=5, anche A=5.
Si tenga presente che se i decimali sono impostati, ad esempio, a 0 e si fa eseguire il calcolo 0.1 + 0.1 il risultato che si otterrà sarà 0. Lo stesso vale se si farà eseguire 0.13 con l'operazione x^y. Bisogna impostare il numero di decimali corretto prima di eseguire l'operazione.
Non è possibile ottenere più di 500 cifre decimali.
Si ricorda che il separatore dei decimali è il punto e non la virgola. È sbagliato scrivere 3,14; è corretto invece 3.14
L'espressione può avere una lunghezza massima di 256 caratteri.
Nella scrittura delle espressioni si possono usare:
| . | Separa la parte intera dalla decimale del numero: è corretto scrivere 1.4142 e sbagliato 1,4142. | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| , | Separa gli argomenti di una funzione, se ne ha più di uno. Per maggiori informazioni si veda il paragrafo Funzioni. | |||||||||
| + | Esegue l'addizione tra due numeri. | |||||||||
| - | Esegue la sottrazione o cambia il segno di un'espressione.
| |||||||||
| * × | Esegue una moltiplicazione; di regola non sono ammesse moltiplicazioni implicite, quindi ab non indica a*b ma una variabile di nome 'ab'. Sono ammesse moltiplicazioni implicite solo nel caso di una chiusa parentesi seguita da una parentesi aperta o nel caso di un numero seguito da una lettera già definita come espressione. Quindi $(3+5)(3+2)$ darà come risultato 40 e $$ a=5ˆ2$$ $$b=5a $$ darà come risultato b=125, ma a5 o ab daranno messaggi di errore o risultati sbagliati. Per questo, come norma generale, si sconsiglia di usare la moltiplicazione implicita ma di indicarla sempre con un *.
| |||||||||
| / : ÷ | Esegue una divisione.
| |||||||||
| ^ | Esegue un elevamento a potenza. Se l'esponente è intero e al sistema il calcolo sembra fattibile in termini di tempo di esecuzione, l'innalzamento a potenza viene eseguito come una serie di moltiplicazioni; in ogni altro caso (esponente frazionario o troppo grande), la potenza ab viene eseguita come eb*ln(a) che ha a sua volta altre limitazioni esposte ai paragrafi dell'esponenziale e del logaritmo. Numeri negativi con esponenti non interi non possono venir calcolati. Questa limitazione si applica anche a numeri negativi con esponente intero se il calcolo con moltiplicazioni successive viene ritenuto troppo dispendioso in termini di tempo. Per maggiori informazioni al riguardo si veda il paragrafo limiti.
| |||||||||
| # r_ | I simboli # ed r_ sono sinonimi e conservano il valore del calcolo appena eseguito; quindi non possono essere usati a destra dell'uguale nella prima espressione digitata. Il simbolo # rappresenta in maniera più sintetica la variabile di sistema r_ (che sta per risposta) e che viene sostituita al simbolo nelle espressioni. L'uso improprio del simbolo # può comportare la comparsa del messaggio "variabile indefinita r_ in quanto, come detto, # ed r_ sono sinonimi. Il loro uso è molto comodo per ripescare il risultato dell'espressione precedente ed usarlo in una successiva senza dover definire nuove variabili. Si presti attenzione al fatto che la ripetizione di una formula col simbolo # o la variabile r_ darà probabilmente risultati via via differenti. Per esempio se calcoliamo l'espressione 10/10 avremo come riultato 1; la scrittura ripetuta #+1 darà come risultato la successione 2,3,4… | |||||||||
| (…) | Coppie di parentesi rotonde per modificare la precedenza delle operazioni. Le coppie di parentesi rotonde possono essere nidificate come, ad esempio, (5+sqrt(5^2-4*6))/(2*1). Ad ogni parentesi rotonda aperta ne deve corrispondere una chiusa. In generale si consiglia di abbondare con le coppie di parentesi quando si è in prsenza di espressioni che potrebbero prestarsi ad ambiguità (vedi la nota all'elevamento a potenza ^).
| |||||||||
| sqrt(…) radq(…) | La scrittura sqrt(…) o, in italiano, radq(…) calcola la radice quadrata di quanto contenuto tra le parentesi, che deve esere maggiore o uguale a zero. L'uso delle due forme, radq e sqrt, è intercambiabile e può essere anche mescolato. radq(sqrt(16)) o radq(radq(16)) o sqrt(sqrt(16)) farà sempre 2. | |||||||||
| fact(…) fatt(…) | La scrittura fact(…) o, in italiano, fatt(…) corrisponde alla scrittura tradizionale $n!$, il fattoriale, vale a dire il prodotto di tutti i numeri interi positivi minori o uguali dell'argomento della funzione. Come per radq e sqrt l'uso delle due forme è intercambiabile. Con questa funzione è facile costruire altre funzioni del calcolo combinatorio:
| |||||||||
| ln(…) log(…) | A scanso di equivoci la prima lettera è una elle minuscola e non una i maiuscola. Calcola il logaritmo naturale. Se si desidera calcolare il logaritmo in base 10, basterà definire, ad esempio, la funzione log10(lx)=ln(lx)/ln(10). Dovendo calcolare molti di questi logaritmi, si consiglia di creare una costante ln10=1/ln(10) e riscrivere la funzione log10(lx)=ln(lx)*ln10; ciò dovrebbe risparmiare tempi di calcolo. Come per radq e sqrt l'uso delle due forme è intercambiabile. | |||||||||
| exp(…) | Calcola l'esponenziale dell'argomento. In realtà ci sono due modi per calcolare ex, exp(x) o e^x. Gli algoritmi usati nel calcolo sono diversi per cui ci potrebbero essere leggere differenze dovute ad errori di troncamento dei calcoli. exp(x) dovrebbe essere leggermente più veloce di ex. exp(x) accetta argomenti compresi tra -1000 e 500. | |||||||||
| sin(…) sen(…) | Calcola il seno dell'argomento espresso in radianti. Un angolo espresso in gradi si trasforma in radianti dividendo l'argomento per 180 e moltiplicando il risultato per π. Dovendo usare più di una volta, in un'espressione, l'argomento espresso in gradi, si consiglia di assegnare ad una variablie l'argomento trasformato in radianti e poi di usare la nuova variabile come argomento. Si veda a questo indirizzo l'esempio d'uso.
| |||||||||
| cos(…) | Calcola il coseno dell'argomento espresso in radianti. Si veda a questo indirizzo l'esempio d'uso. Si vedano anche alcune considerazioni sulle limitazioni per il calcolo sotto la funzione seno. | |||||||||
| tan(…) tg(…) | Calcola la tangente dell'argomento espresso in radianti. Si veda a questo indirizzo l'esempio d'uso. Il calcolo di tan(pi/2) il cui risultato sarebbe ±∞ dà un messaggio di errore. Si vedano anche alcune considerazioni sulle limitazioni per il calcolo esposte sotto la funzione seno. | |||||||||
| arcsin(…) arcsen(…) | Calcola l'angolo in radianti corrsipondente ad un certo seno fornito come argomento che deve essere sempre compreso tra -1 ed 1. L'angolo risultante è sempre compreso tra -π/2 e π/2. Si veda a questo indirizzo l'esempio d'uso. Si vedano alcune considerazioni sulle limitazioni per il calcolo sotto la funzione seno. | |||||||||
| arccos(…) | Calcola l'angolo in radianti corrsipondente ad un certo seno fornito come argomento che deve essere sempre compreso tra -1 ed 1. L'angolo risultante è sempre compreso tra -π/2 e π/2. Si veda a questo indirizzo l'esempio d'uso. Si vedano alcune considerazioni sulle limitazioni per il calcolo sotto la funzione seno. | |||||||||
| arctan(…) arctg(…) | Calcola l'angolo in radianti corrsipondente ad una certa tangente fornita come argomento. L'angolo risultante è sempre compreso tra -π/2 e π/2. Si veda a questo indirizzo l'esempio d'uso. Si vedano alcune considerazioni sulle limitazioni per il calcolo sotto la funzione seno. | |||||||||
| grRAD(…) | Converte in radianti un angolo espresso in gradi, con la parte frazionaria in forma decimale; grRAD(x) è un modo veloce per scrivere la formula x*pi/180. Le maiuscole sono messe per migliorare la leggibitlià poiché: il sistema ignora la differenza tra maiuscole e minuscole. Se l'angolo è espresso in gradi, primi e secondi si consiglia di definire una funzione di conversione. Ad esempio Se, ad esempio, dovete convertire un angolo di 60° 30' 15" chiamerete la funzione grpsGDEC(60,30,15) vi darà correttamente, se i decimali sono impostati sono 10, 60.50416 66670 , con 9 cifre esatte dopo la virgola. Per altri esempi si vedano gli esempi sulle funzioni trigonometriche | |||||||||
| radGR(…) | Converte in gradi un angolo espresso in radianti, con la parte frazionaria dei gradi espressa in forma decimale; radgr(x) è un modo veloce per scrivere la formula x*180/pi.Le maiuscole sono messe per migliorare la leggibitlià poiché: il sistema ignora la differenza tra maiuscole e minuscole. | |||||||||
| Nelle espresioni, inoltre, si possono usare i simboli usati precedentemente in assegnazioni o funzioni. Sia le assegnazioni che le funzioni sono spiegate più avanti. | ||||||||||
In mancanza di un'assegnazione il risultato verrà assegnato alla variabile speciale # (vedi più sopra).
| e | È la costante di Nepero, usata per il calcolo degli esponenziali e dei logaritmi |
|---|---|
| pi | È il valore di pi greco; può essere sostituito anche dal simbolo π, ma se ne sconsiglia fortemente l'uso. In particolare si tenga presente che la sostituzione del carattere π con la coppia di caratteri pi allunga l'espressione che, almeno in teoria, potrebbe superare i 256 caratteri e verrebbe, di conseguenza, troncata. |
Sotto al risultato si vedrà l'elenco di tutte le assegnazioni già fatte e calcolate. Prima compariranno i valori associati ad alcuni simboli; come già scritto, due sono già fissati con un numero di decimali pari al numero di decimali impostati più 10:
L'ordine con cui compaiono le assegnazioni è quello storico. La prima in testa, e via via le altre. Essendo 'e' e 'pi' definite già in partenza, esse sono sempre le prime dell'elenco.
Per evitare di incorrere in questo limite i decimali usabili nel calcolo non possono essere più di 500, ma davanti a calcoli complessi è meglio tenersi al di sotto.
Espressioni che comportano il calcolo di esponenziali o logaritmi (le due funzioni, ma anche certi calcoli di potenze) non possono avere più di 250 decimali. Il programma valuta quale algoritmo eguire nel calcolo di una potenza. Se la potenza viene calcolate con logaritmi ed esponenziali può incorrere nei limiti di queste funzioni.
Espressioni che comportano l'uso di funzioni trigonometriche non possono avere più di 50 cifre decimali; dal primo uso di una funzione trigonometrica, tutti i calcoli saranno eseguiti con un massimo di 50 cifre decimali, anche se il numero di decimali indicato sullo schermo resta invariato. Della riduzione dei decimali viene data notizia sotto al risultato.
Per il fattoriale, l'unico limite è il tempo di esecuzione dei calcoli.
| disc(da,db,dc)=db*db-4*da*dc |
Poi si scrivono le formule per le due soluzioni:
| x1(xa,xb,xc)=(-xb+sqrt(disc(xa,xb,xc)))/(2*xa) |
| x2(xa,xb,xc)=(-xb-sqrt(disc(xa,xb,xc)))/(2*xa) |
A questo punto se vogliamo calcolare la soluzione dell'equazione x2+5x+6=0 basterà scrivere
x1(1,5,6) ed otterremo il valore -2. x2(1,5,6) ed otterremo il valore -3. Se cercheremo la soluzione dell'equazione x2+5x+22=0 il sistema ci informerà che stiamo calcolando la radice di un numero negativo, cosa che non è possibile.
In questo esempio non ha importanza, ma in generale, essendoci delle radici quadrate, sarà opportuno definire prima un numero adeguato di decimali.
| 7^2 |
che fa 49. Poi scriveremo
| #*7 |
Otterremo 343, 73. Se premiamo a ripetizione il pulsante "Calcola" otterremo ogni volta la potenza successiva di 7.
I gradi possono essere scritti o nella forma gradi primi e secondi o nella forma decimale. Ad esempio 45° 22' e 13" si potrebbe anche scrivere 45.3702777… col 7 periodico. La formula per trasformare la notazione in gradi primi e secondi in una forma che chiameremo decimale è molto semplice
Se dobbiamo usarla più volte, ci converrà definire una funzione
Se vogliamo trasformare i gradi espressi in questa forma in radianti basterà dividere il numero per 180 e moltiplicarlo per π oppure chiamare la funzione predefinita grRAD. possiamo anche unire le due funzioni definendo una nuova funzione
non dimenticando che la variabile pi è predefinita col valore di π. In alternativa potremo scrivere anche, usando la funzione predefinita,
Così se vorremo calcolare il coseno dell'angolo di cui sopra, basterà scrivere
| cos(grTOrad(45,22,13)) |
e troveremo il coseno cercato. Capita, nelle formule di trigonometria, che più funzioni abbiano lo stesso argomento o argomenti collegati tra di loro da semplici operazioni. Supponiamo, ad esempio, di voler verificare per un determinato angolo, che
vale a dire, da un punto di vista numerico, che
Nel linguaggio della calcolatrice, per calcolare la formula di cui sopra, converrà prima calcolare l'angolo in radianti.
| angolo=grTOrad(45,22,13) |
| sen(2*angolo)-2*sen(angolo)*cos(angolo) |
calcolando una volta sola la conversione da gradi in radianti e risparmiando così tempo di calcolo. Probabilmente non troveremo 0, non perché le formule sono sbagliate, ma perché intervengono errori di troncameto nei calcoli. Che si tratta di errori di troncamento lo possiamo verificare variando il numero dei decimali e constatando che sono sempre le ultime cifre della differenza ad essere diverse da zero.
| rata(c,n,r)=c*r/100/(1-(1+r/100)^(-n)) |
Per calcolare la rata per ammortare 22.000 euro in 10 anni al tasso del 7.5% basterà scrivere
| rata(22000,10,7.5) |
e troveremo come risultato 3 205.09040 che troncato ai centesimi darà una rata di 3205.09 euro.
$n! ∽ √{2πn}·(n/e)^n $ se $n→+∞$
che possiamo scrivere usando ns al posto di n per le considerazioni fatte quando si sono presentate le funzioni| stirl(ns)=sqrt(2*pi*ns)*(ns/e)^ns |
Siamo curiosi di verificare la differenza tra il fattoriale di 100, quello vero, e l'equivalente calcolato con la formula approssimata di Stirling; riportata sopra. Scriveremo, se non vogliamo definire la funzione,
| (sqrt(2*pi*100)*(100/e)^100-fatt(100))/fatt(100)*100 |
o, se abbiamo definito la funzione stirl(ns) di cui sopra
| (stirl(100)-fatt(100))/fatt(100)*100 |
e troveremo che la formula di Stirling sottostima (risultato negativo) il fattoriale di 100 dello -0.08329… % risultato abbastanza confortevole visto che 100! è un numero di 158 cifre; se lo volete conoscere in tutta la sua imponenza, basta scrivere fatt(100) e troverete
93 326 215 443 944 152 681 699 238 856 266 700 490 715 968 264 381 621 468 592 963 895 217 599 993 229 915 608 941 463 976 156 518 286 253 697 920 827 223 758 251 185 210 916 864 000 000 000 000 000 000 000 000.
| Vai alla pagina precedente | Indice matematica | Vai alla pagina www.delise.it |
