In rete

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 ) = yy33  + 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 y3 1 y5  + 1 y7 1 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 ) = zz33  + 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 ) = qq33  + 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);
    }