Pour les matheux, définition de l'exponentielle, sinus, cosinus

Description

Ben voila une petite source.
Je pense qu'elle va surtout intéresser les matheux.
Elle montre d'où vient la fonction exponentielle, sinus, cosinus, PI,..., grâce à une "résolution" de séries.
C'est peut-être utile pour le calcul,... Je vous fais confiance, je pense que vous y trouverez une utilité (c'est déjà "didactique"). Toujours est-il, ce sont les définitions officielles de l'expo, cosinus, etc.
Pour certaines fonctions, il est possible qu'il y ait des problèmes de précision. Il faudra alors régler le nombre de sommes pour la série.
@++

Source / Exemple :


/* DEFINITION DE L'EXPONENTIELLE AINSI QUE DU COSINUS ET DU SINUS */

/*EXPONENTIELLE*/

/*On définit l'exponentielle comme une série tel que
  la somme de n=0 jusqu'à l'infini du nombre à la puissance n
  sur la factorielle de n.

/**********Fonction factorielle**********/

function factor(h) {
    return (h == 0)?1:(h * factor(h - 1));	//exemple : 5! = 5*4*3*2*1 = 120
}

/****************************************/

/*********Fonction exponentielle*********/

/* J'ai eu quelques soucis avec la fonction puissance
   à cause des infinis. J'ai donc utiliser la fonction 
   prédéfinie Math.pow(). La fonction a été testée jusqu'à 100,
   ensuite les nombres sont trop énormes pour cette fonction.*/

function expo(z){		//la base est e = 2.718281828...
    var som = 0;
    for(n=0;n<155;n++)
    {
        val = (Math.pow(z,n))/(factor(n));
        som = som + val;
    }
    return som;
}

/****************************************/

/******************PI********************/

function pi(){
    var som = 0;
    for(n=0;n<25;n++)    //25 est amplement suffisant car elle converge vite.
    {
        var N = 2*n;
        var N2 = 4*n+1;
        val = (factor(N))/(Math.pow(2,N2)*factor(n)*factor(n)*(2*n+1));
        som = som + val;
    }
    som = som * 6;
    return som;
}
/****************************************/

/*****************SINUS******************/

function sinus(nb){       
    var som = 0;
    for(n=0;n<20;n++)     //à choisir suivant la précision que l'on veut donner, plus le nombre est grand et plus n doit être grand 
    {
        val = (Math.pow(-1,n)*Math.pow(nb,2*n+1))/(factor(2*n+1));
        som = som + val;
    }
    return som;
}

/****************************************/

/****************COSINUS*****************/

function cosinus(nb){
    var som = 0;
    for(n=0;n<20;n++)     //à choisir suivant la précision que l'on veut donner, plus le nombre est grand et plus n doit être grand 
    {
        val = (Math.pow(-1,n)*Math.pow(nb,2*n))/(factor(2*n));
        som = som + val;
    }
    return som;
}

/****************************************/

/***************TANGEANTES***************/

function tang(nb){
    val = sinus(nb)/cosinus(nb);
    return val;
}

/****************************************/

/***************ARC SINUS****************/

function arcsin(nb){
    var som = 0;
    for(n=0;n<30;n++)     //à choisir suivant la précision que l'on veut donner, plus le nombre est grand et plus n doit être grand 
    {
        val = (factor(2*n)*Math.pow(nb,2*n+1))/(Math.pow(2,2*n)*factor(n)*factor(n)*(2*n+1));
        som = som + val;
    }
    return som;
}

/****************************************/

/**************ARC COSINUS***************/
/*On définit l'ARC COSINUS par :

arccos x = pi/2 - arcsin x

  • /
function arccos(nb){ return pi()/2 - arcsin(nb); } /****************************************/ /**************ARC TANGEANTE*************/ function arctg(nb){ var som = 0; for(n=0;n<40;n++) //à choisir suivant la précision que l'on veut donner, plus le nombre est grand et plus n doit être grand { val = (Math.pow(-1,n)*Math.pow(nb,2*n+1))/(2*n+1) som = som + val; } return som; } /****************************************/ /***********SINUS HYPERBOLIQUE***********/ function sinh(nb){ return (expo(nb)-expo(-nb))/2; } /****************************************/ /**********COSINUS HYPERBOLIQUE**********/ function cosh(nb){ return (expo(nb) + expo(-nb))/2; } /****************************************/ /*********TANGEANTE HYPERBOLIQUE*********/ function tanh(nb){ return (1-expo(-2*nb))/(1+expo(-2*nb)); } /****************************************/ /**********SECANTE HYPERBOLIQUE**********/ function sech(nb){ return 1/cosh(nb); } /****************************************/ /*********COSECANTE HYPERBOLIQUE*********/ function cosech(nb){ return 1/sinh(nb); } /****************************************/ /********COTANGEANTE HYPERBOLIQUE********/ function cotanh(nb){ return cosh(nb)/sinh(nb); } /****************************************/ document.write("Exponentielle de 1 : " + expo(1) + "<br>"+ "Fonction prédéfinie Math.exp(1) : " + Math.exp(1) + "<br><br>"+ "Nombre PI : " + pi() + "<br>"+ "Nombre prédéfini : " + Math.PI + "<br><br>"+ "Sinus de PI/2 : " + sinus(pi()/2) + "<br>"+ "Sinus prédéfini : " + Math.sin(Math.PI/2) + "<br><br>"+ "Cosinus de PI/4 : " + cosinus(pi()/4) + "<br>"+ "Cosinus prédéfini : " + Math.cos(Math.PI/4) + "<br><br>"+ "Tangeante de PI/4 : " + tang(pi()/4) + "<br>"+ "Tangeante prédéfinie : " + Math.tan(Math.PI/4) + "<br><br>"+ "Arc sinus de PI/4 : " + arcsin(pi()/4) + "<br>"+ "Arc sinus prédéfini : " + Math.asin(Math.PI/4) + "<br><br>"+ "Arc cosinus de PI/4 : " + arccos(pi()/4) + "<br>"+ "Arc cosinus prédéfini : " + Math.acos(Math.PI/4) + "<br><br>"+ "Arc tangeante de 1 : " + arctg(1) + "<br>"+ "Arc tangeante prédéfini : " + Math.atan(1) + "<br><br>"+ "Sinus hyperbolique de PI : " + sinh(pi()) + "<br>"+ "Cosinus hyperbolique de PI : " + cosh(pi()) + "<br>"+ "Tangeante hyperbolique de PI : " + tanh(pi()) + "<br>"+ "Sécante hyperbolique de PI : " + sech(pi()) + "<br>"+ "Cosécante hyperbolique de PI : " + cosech(pi()) + "<br>"+ "Cotangeante hyperbolique de PI : " + cotanh(pi()));

Conclusion :


voila...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.