Description
PhpMathParser è una classe php che traduce, in modo naive, espressioni matematiche in istruzioni php. In questa versione, in oltre, è possibile far valutare le funzioni direttamente a PhpMathParser cosa che rende questo tool più semplice utilizzare. Questo semplice programmino può essere usato per diverse aplicazioni io, ad esempio ho usato PhpMathParser per la realizzazione di un tool per lo studio di funzioni.
Usage
Un piccolo esempio d'uso
Utilizzare PhpMathParser è molto semplice:
- Includiamo la classe:
include "parser.class.php";
- Instanziamo e usiamo la classe:
$p = new phpmathparser("x^(2x)");
oppure:
$i = 10;
$y=$p->evalfun($i);
echo "La funzione ".$p-get_fun();
echo " in x = 10 vale ".$y;$p = new phpmathparser("");
$p->set_fun("x^(2x)");
$i = 10;
$y=$p->evalfun($i);
echo "La funzione ".$p-get_fun();
echo " in x = 10 vale ".$y;
Elenco dei metodi disponibili
set_fun($fun):
Questo metodo viene usato per modificare la fuzione all'interno di un oggetto PhpMathParserget_pfun():
Questo metodo viene usato per ottenere la versione php della funzione contenuta nell'oggeto PhpMathParser. Il faormato restituito è string.
Per poter eseguire la stringa restituita da questo metodo si può far uso del comando eval nel modo seguente:
$i = 2; //$i corrisponde alla x della funzione
eval("\$y=".$this->get_pfun().";");get_fun():
Questo metodo restituisce la funzione contenuta nell'oggetto PhpMathParserevalfun($x):
Questo metodo, persente per la prima volta in PhpMathParser, permette di calcolare il valore della fuzione in modo più semplice rispetto a quanto sia necessario fare se si usa il metodo get_pfun. Questo metodo può essere usato per conoscere li valore della funzione sia in un solo punto che in più punti la sintassi è riportata qui di seguito:/* Voglio sapere il falore della funzione
in x = 10
$p è un oggetto di tipo PhpMathParser*/
$y = $p->evalfun(10);/* Voglio sapere il falore della funzione
in x = 10, 15, 25, 30
$p è un oggetto di tipo PhpMathParser*/
$x = array(10, 15, 25, 30);
$y = $p->evalfun($x);//In questo caso $y è un array
Regole per una cerretta composizione delle funzioni
- Le funzioni vanno scritte usando solo lettere minuscole
- Per una corretta interpretazine delle funzioni:
- Gli esponenti composti da più caratteri devono essere racchiusi tra parentesi
- Ex.: x^(12), x^(log(x+3))
- Gli argomenti delle funzioni trigonometriche e della divisione vanno inseriti tra parentesi
- Ex.: cos(x), atan(x), tan(x^2+10x), (x)/(x^2-2)
- Gli esponenti composti da più caratteri devono essere racchiusi tra parentesi
- Note sul logaritmo:
- log(x) => logaritmo naturale di x
- log10(x) o log(x,10) => logaritmo in base 10 di x
- log(x,b) => logaritmo in base b di x
- Ex.: log((x^2),10), log((x^2+5x+2),5), log10((x^2))
- Note sulla radice:
- Questo tool supporta solo la redice quadrata la sintassi è: r(x)
- Ex.: r(x^2), r(x^(5x))
- Nomenclatura delle funzioni trigonometriche supportate:
- cos => coseno
- sen => seno
- tan => tangente
- acos => arcocoseno
- asen => arcoseno
- atan => arcotangente
- cosh => coseno iperbolico
- senh => seno iperbolico
- tanh => tangente iperbolica