Section courante

A propos

Section administrative du site

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 Ln 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 Ada effectuant un calcul correct de cette formule en se basant sur les savants calculs de ce projet :

  1. WITH TEXT_IO; 
  2.  
  3. PROCEDURE ExpSamples IS 
  4.    
  5.    USE TEXT_IO;  
  6.    
  7.    FUNCTION Exp(X:IN Float) RETURN Float IS
  8.       Inverse:Boolean;
  9.       N,I:Integer;
  10.       XT,Dl,Q:Float;      
  11.    BEGIN
  12.       Inverse := False;      
  13.       XT := X;
  14.       N := 0;      
  15.       Dl := 1.0;      
  16.       I := 1;
  17.       IF XT < 0.0 THEN
  18.          Inverse := True;         
  19.          XT := -XT;         
  20.       END IF;
  21.       WHILE XT >= 2.0 LOOP
  22.          XT := XT / 2.0;         
  23.          N := N + 1;         
  24.       END LOOP;      
  25.       XT := XT / 16.0;      
  26.       N := N + 4;
  27.       Q := XT;
  28.       WHILE Q > 1.0E-15 LOOP         
  29.          Dl := Dl + Q;         
  30.          I := I + 1;         
  31.          Q := Q * XT / Float(I);
  32.       END LOOP;
  33.       FOR I IN 1..N LOOP
  34.          Dl := Dl * Dl;
  35.       END LOOP;
  36.       IF Inverse THEN 
  37.          Dl := 1.0 / Dl;
  38.       END IF;
  39.       RETURN Dl;
  40.    END Exp;
  41.    
  42.  
  43.    I:Float;
  44.    
  45. BEGIN
  46.    I := 0.0;   
  47.    WHILE I <= 2.0 LOOP
  48.       PUT_LINE("Exp(" & FLOAT'IMAGE(I) & ")=" & FLOAT'IMAGE(Exp(I)));      
  49.       I := I + 0.1;
  50.    END LOOP;   
  51. END ExpSamples;

on obtiendra le résultat suivant :

Exp(0.0)=1.0
Exp(0.1)=1.1051709180756477
Exp(0.2)=1.221402758160166
Exp(0.30000000000000004)=1.349858807576001
Exp(0.4)=1.4918246976412661
Exp(0.5)=1.6487212707001244
Exp(0.6)=1.8221188003905087
Exp(0.7)=2.0137527074704717
Exp(0.7999999999999999)=2.225540928492434
Exp(0.8999999999999999)=2.4596031111569396
Exp(0.9999999999999999)=2.71828182845905
Exp(1.0999999999999999)=3.0041660239464347
Exp(1.2)=3.3201169227365463
Exp(1.3)=3.669296667619233
Exp(1.4000000000000001)=4.055199966844625
Exp(1.5000000000000002)=4.481689070338069
Exp(1.6000000000000003)=4.9530324243950865
Exp(1.7000000000000004)=5.473947391727178
Exp(1.8000000000000005)=6.04964746441294
Exp(1.9000000000000006)=6.685894442279275

Voir également

Science - Mathématique

Dernière mise à jour : Samedi, le 25 août 2012