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 C effectuant un calcul correct de cette formule en se basant sur les savants calculs de ce projet :
Essayer maintenant !
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
-
- double Exponentiel(double x) {
- int inverse = 0;
- double n = 0, dl = 1;
- int i = 1;
- if(x<0) {
- inverse = 1;
- 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()
- {
- double I;
- for(I=0;I<=2.0;I+=0.1) {
- printf("Exp(%f)=%f %f\n",I,Exponentiel(I),exp(I));
- }
- return 0;
- }
on obtiendra le résultat suivant :
Exp(0.000000)=1.000000 1.000000Exp(0.100000)=1.105171 1.105171
Exp(0.200000)=1.221403 1.221403
Exp(0.300000)=1.349859 1.349859
Exp(0.400000)=1.491825 1.491825
Exp(0.500000)=1.648721 1.648721
Exp(0.600000)=1.822119 1.822119
Exp(0.700000)=2.013753 2.013753
Exp(0.800000)=2.225541 2.225541
Exp(0.900000)=2.459603 2.459603
Exp(1.000000)=2.718282 2.718282
Exp(1.100000)=3.004166 3.004166
Exp(1.200000)=3.320117 3.320117
Exp(1.300000)=3.669297 3.669297
Exp(1.400000)=4.055200 4.055200
Exp(1.500000)=4.481689 4.481689
Exp(1.600000)=4.953032 4.953032
Exp(1.700000)=5.473947 5.473947
Exp(1.800000)=6.049647 6.049647
Exp(1.900000)=6.685894 6.685894
Voir également
Dernière mise à jour : Samedi, le 22 août 2015