Après avoir effectué des recherches dans de nombreux livres comme Scientific Pascal, Dictionnaire mathématique,..., je n'ai jamais trouvé aucun livre fournissant une réponse correct du calcul de l'exponentiel (soit l'inverse de log ou la fonction exp), outre le projet GNU (HaypoCALC). Je me suis donc basé sur sa formule pour arriver au résultat contenu dans cette page. Voici un code source Visual C++ effectuant un calcul correct de cette formule en se basant sur les savants calculs de ce projet :
- #include "stdafx.h"
- #include "math.h"
-
- double Exp(double x) {
- int inverse = false;
- double n = 0, dl = 1;
- int i = 1;
- if(x<0) {
- inverse = true;
- x = -x;
- }
- while(x >= 2) {
- x /= 2;
- n++;
- }
- x /= 16;
- n += 4;
- double q = x;
- while (q > 1.0E-15) {
- dl += q;
- i++;
- q = q*x/i;
- }
- for(i=1;i<= n; i++) dl=dl*dl;
- if(inverse) dl = 1/dl;
- return dl;
- }
-
-
- int main(int argc, char* argv[])
- {
- for(double I=0;I<=2.0;I+=0.1) {
- printf("Exp(%f)=%f %f\n",I,Exp(I),exp(I));
- }
- return 0;
- }
on obtiendra le résultat suivant :
Exp(0.0)=1.0 1.0Exp(0.1)=1.1051709180756477 1.1051709180756477
Exp(0.2)=1.221402758160166 1.2214027581601699
Exp(0.30000000000000004)=1.349858807576001 1.3498588075760032
Exp(0.4)=1.4918246976412661 1.4918246976412703
Exp(0.5)=1.6487212707001244 1.6487212707001282
Exp(0.6)=1.8221188003905087 1.8221188003905089
Exp(0.7)=2.0137527074704717 2.0137527074704766
Exp(0.7999999999999999)=2.225540928492434 2.2255409284924674
Exp(0.8999999999999999)=2.4596031111569396 2.4596031111569494
Exp(0.9999999999999999)=2.71828182845905 2.718281828459045
Exp(1.0999999999999999)=3.0041660239464347 3.004166023946433
Exp(1.2)=3.3201169227365463 3.3201169227365472
Exp(1.3)=3.669296667619233 3.6692966676192444
Exp(1.4000000000000001)=4.055199966844625 4.055199966844675
Exp(1.5000000000000002)=4.481689070338069 4.481689070338065
Exp(1.6000000000000003)=4.9530324243950865 4.953032424395117
Exp(1.7000000000000004)=5.473947391727178 5.473947391727202
Exp(1.8000000000000005)=6.04964746441294 6.049647464412949
Exp(1.9000000000000006)=6.685894442279275 6.685894442279273
Voir également
Dernière mise à jour : Samedi, le 7 avril 2018