E-school  di  Arrigo Amadori

Calcolo numerico


Serie in R

Viene approssimata la serie    troncandola al valore di    prescelto.


 a(n) =  

 na  = 1  nb = (estremi indice n)

 

Operatori ammessi :

 + somma  sin() seno  asin() arco seno  sinh() seno iperbolico  asinh() inverso del seno iperbolico  pow(base, esponente) potenza
 - sottrazione  cos() coseno  acos() arco coseno  cosh() coseno iperbolico  acosh() inverso del coseno iperbolico  exp() esponenziale
 * moltiplicazione  tan() tangente  atan() arco tangente  tanh() tangente iperbolica  atanh() inverso del coseno iperbolico  log() logaritmo naturale
 / divisione          abs() valore assoluto
 . segno per decimali          sqrt() radice quadrata
           sgn() segno
           fatt() fattoriale

Sorgenti PHP :


serie.php


<html>

<head>
<title>Serie in R</title>
</head>

<body>

<script language="php">

error_reporting (E_ALL ^ E_NOTICE);

// parametri in input 
//
// $funzione = a(n)
// $na = inizio indice n
// $nb = fine indice n
//
// parametri in output
//
// calcola l'integrale col metoto dei trapezi iterando fino alla precisione data 
//

// inserisce tutti gli include (funzioni esterne)

if (is_integer(strpos($SERVER_SOFTWARE, "Win")))
{
include("..\Routines\sgn.php");
include("..\Routines\fatt.php");
include("..\Routines\contrFunz.php");
}
else
{
include("../Routines/sgn.php");
include("../Routines/fatt.php");
include("../Routines/contrFunz.php");
}

// controlli vari

if ($funzione == "")
{
echo "Attenzione !!! Manca a(n) !!!";
return;
}

$funzione = trim($funzione);
$contr = contrFunz($funzione);
if ($contr == "1")
{
echo "Attenzione !!! Il termine a(n) presenta spazi bianchi, impossibile procedere !!!";
return;
}
if ($contr == "2")
{
echo "Attenzione !!! Il termine a(n) presenta il carattere ^, impossibile procedere !!! Usare la funzione pow(... , ...) !!!";
return;
}
$funzioneold = $funzione;
$funzione = str_replace("atanh", "aaa", $funzione);
$funzione = str_replace("atan", "bbb", $funzione);
$funzione = str_replace("tanh", "ccc", $funzione);
$funzione = str_replace("tan", "ddd", $funzione);
$funzione = str_replace("asinh", "eee", $funzione);
$funzione = str_replace("asin", "fff", $funzione);
$funzione = str_replace("sinh", "ggg", $funzione);
$funzione = str_replace("sin", "hhh", $funzione);
$funzione = str_replace("sgn", "iii", $funzione);
$funzione = str_replace("n", "u", $funzione);
$funzione = str_replace("aaa", "atanh", $funzione);
$funzione = str_replace("bbb", "atan", $funzione);
$funzione = str_replace("ccc", "tanh", $funzione);
$funzione = str_replace("ddd", "tan", $funzione);
$funzione = str_replace("eee", "asinh", $funzione);
$funzione = str_replace("fff", "asin", $funzione);
$funzione = str_replace("ggg", "sinh", $funzione);
$funzione = str_replace("hhh", "sin", $funzione);
$funzione = str_replace("iii", "sgn", $funzione);

$na = 1;

// definizione funzione a(n)

$f = $funzione;
$f = str_replace("u", '$x', $f);

// calcola somma

$somma = 0;

for ($i = $na; $i <= $nb; $i++)
{
$x = $i;
eval("\$ff = @($f);");
$somma = $somma + $ff;
}

// ritorna risultato

echo "a(n) = " . $funzioneold . "<p>";
echo "Somma = " . $somma . "<p>";

</script>

</body>

</html>


sgn.php


<script language="php">

error_reporting (E_ALL ^ E_NOTICE);

function sgn($x)
{
// funzione sgn
// x = variabile indipendente

if ($x > 0)
{
return +1;

if ($x == 0)
{
return 0;

if ($x < 0)
{
return -1;


} // fine sgn()

</script>


fatt.php


<script language="php">

// questa č una copia esatta della routine fattoriale() per avere un nome pių corto !!!!!!!!

error_reporting (E_ALL ^ E_NOTICE);

function fatt($n)
{

// calcolo del fattoriale n!
// n = valore in input di cui calcolare il fattoriale
// fornisce in output il fattoriale di n = n!

If ($n == 0) 
{
$fatt = 1;
return $fatt;


If ($n < 0) 
{
echo "Attenzione !!! Valore negativo, impossibile procedere !!! <p>";
return NULL;


If (intval($n) <> $n) 
{
echo "Attenzione !!! Valore non intero, impossibile procedere !!! <p>";
return NULL;


$fatt = 1;

For ($i = 1; $i <= $n; $i++)
{
$fatt = $fatt * $i;


return $fatt;

} // fine fatt()

</script>


contrFunz.php


<script language="php">

error_reporting (E_ALL ^ E_NOTICE);

function contrFunz($funz)
{
// controllo formale digitazione funzione
// viene controllata l'esistenza dei seguenti caratteri : blank, ^
// se tali caratteri vengono trovati, vine settata la variabile d'uscita
// $funz = funzione da controllare

$errore = "";

if (is_numeric(strpos($funz, ' ')))
{
$errore = "1";


if (is_numeric(strpos($funz, '^')))
{
$errore = "2";


return $errore;

} // fine contrFunz

</script>