« Exponentielle intégrale » : différence entre les versions
→Pour x > 40 : +reste, +refsou |
m →Calcul de E1 : Typographie |
||
Ligne 32 : | Ligne 32 : | ||
:<math>{\rm Ei}(-x)=\gamma+\ln x - {\rm Ein}(x).</math> |
:<math>{\rm Ei}(-x)=\gamma+\ln x - {\rm Ein}(x).</math> |
||
== Calcul de |
== Calcul de <math>\mathrm{E_1}(z)</math> == |
||
Différentes méthodes peuvent être utilisées afin de calculer {{math|E{{ind|1}}(''x'')}} en [[IEEE_754|double précision]]. |
Différentes méthodes peuvent être utilisées afin de calculer {{math|E{{ind|1}}(''x'')}} en [[IEEE_754|double précision]]. |
Version du 12 mars 2014 à 01:57
En mathématiques, l'exponentielle intégrale Ei(x) est définie par :
Comme l'intégrale de 1/t diverge en 0, cette définition doit être comprise en termes de valeur principale de Cauchy.
L'exponentielle intégrale a pour développement en série :
où γ est la constante d'Euler-Mascheroni.
Elle est reliée à une autre fonction définie par :
Cette fonction étend l'exponentielle intégrale aux réels négatifs compte tenu de l'identité :
Les deux fonctions s'expriment en fonction de la fonction entière définie par :
En effet, on peut écrire :
et
Calcul de
Différentes méthodes peuvent être utilisées afin de calculer E1(x) en double précision.
Pour x compris entre 0 et 2,5
On a :
La somme est convergente pour tout x réel positif, mais avec les opérations à virgule flottantes, le résultat est inexact pour x > 2,5 à cause de la perte de précision relative quand on soustrait des nombres d'ordres de grandeurs différents.
Pour x > 40
Il existe une série divergente permettant d'approcher E1 pour les grandes valeurs de Re(z), obtenue par intégration par parties[1], qui donne le développement asymptotique suivant :
Afin d'avoir une précision de 64 bit (double précision), il faut utiliser la valeur N = 40.[réf. souhaitée]
Pour x compris entre 2,5 et 40
L'algorithme suivant permet d'obtenir les valeurs de E1(x) dans l'intervalle [2,5; 40] :
Function MediumE1(ByVal x As Double) As Double
If x < 2.5 Or x > 40 Then Return 0
Dim result As Double = 1
For n As Integer = 40 To 1 Step -1 '40 peut être changé pour ajuster la précision
result = 2 - 1 / result + x / n
Next
Return (1 - 1 / result) / x * Math.Exp(-x)
End Function
Références
- (en) Norman Bleistein et Richard A. Handelsman, Asymptotic Expansions of Integrals, Dover, (ISBN 978-0-486-65082-1), p. 3.
(en) Milton Abramowitz et Irene Stegun, Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables [détail de l’édition] (lire en ligne), p. 228-230