Elenco pagine mie:
Preferiti:
Esempio di uso istruzioni di style CSS: Arco tangente
Il calcolo dell'arco tangente può essere effettuato utilizzando il seguente sviluppo in serie:
φ = atan( y ) =
∑m = 0,..,∞
y·( − y2 )m2·m + 1
; |y| ≤ 1
ovvero:
φ = atan( y ) = y
− y33
+ y55
− y77
+ y99
− y1111
+ ...
; |y| ≤ 1
Per calcolare l'arco_tangente quando y è in modulo superiore ad uno si può usare la seguente
formula:
φ = atan( y ) =
π·y2·|y|
− 1y
+ 1 3·y3
− 1 5·y5
+ 1 7·y7
− 1 9·y9
+ ...
; |y| ≥ 1
Resta comunque il fatto che quando |y| = 1 la convergenza della sommatoria è lentissima.
Se però si pone:
z =
y 1 + ( 1 + y2 )1/2
si ha la garanzia che sempre, qualunque valore abbia y, risulti |z| < 1 e pertanto
il valore di φ si calcola nel seguente modo:
φ2
= atan( z ) = z
− z33
+ z55
− z77
+ z99
− z1111
+ ...
; |z| ≤ 1
Il procedimento può essere ripetuto indefinitamente calcolando la tangente dell'angolo dimezzato dell'angolo dimezzato
ovvero:
q =
z 1 + ( 1 + z2 )1/2
e quindi:
φ4
= atan( q ) = q
− q33
+ q55
− q77
+ q99
− q1111
+ ...
; |q| ≤ 1
e così via col vantaggio di usare, nella sommatoria, le potenze di un numero sempre più prossimo,
in valore assoluto, allo zero e dunque ottenere una convergenza sempre più veloce della sommatoria stessa.
Verifica della formula
Uso la seguente function:
function atanmia(){
var ob,j,x,y,z,potdue,fi;
ob=document.getElementById("tangente");
x=eval(ob.value);
with(Math){
potdue=1;
y=x;
for(j=0;6>j;j++){
z=y/(1 + sqrt( 1 + y*y));
potdue+=potdue;
y=z;
}
}
z=y*y;
fi=potdue*y*(1+z*(-1/3+z*(1/5-z/7)));
alert("Valore vero : "+Math.atan(x)+
"\nValore calcolato: "+fi);
}