ExpIntegralE[n,z]
gives the exponential integral function
.
ExpIntegralE
ExpIntegralE[n,z]
gives the exponential integral function
.
Details
- Mathematical function, suitable for both symbolic and numerical manipulation.
where the integral converges.- ExpIntegralE[n,z] has a branch cut discontinuity in the complex z plane running from
to 0. - For certain special arguments, ExpIntegralE automatically evaluates to exact values.
- ExpIntegralE can be evaluated to arbitrary numerical precision.
- ExpIntegralE automatically threads over lists.
- ExpIntegralE can be used with Interval and CenteredInterval objects. »
Examples
open all close allBasic Examples (5)
ExpIntegralE[3, 5.5]Plot over a subset of the reals for integer values of the parameter
:
Plot[Table[ExpIntegralE[n, x], {n, 6}]//Evaluate, {x, 0, 1}]Plot over a subset of the complexes:
ComplexPlot3D[ExpIntegralE[2, z], {z, -2 - 2I, 2 + 2I}, PlotLegends -> Automatic]Series for generic and logarithmic cases at the origin:
Series[ExpIntegralE[n, x], {x, 0, 4}]Series[ExpIntegralE[1, x], {x, 0, 4}]Series expansion at Infinity:
Series[ExpIntegralE[n, x], {x, ∞, 4}]//NormalScope (42)
Numerical Evaluation (5)
Evaluate numerically to high precision:
N[ExpIntegralE[3, 22 / 10], 50]The precision of the output tracks the precision of the input:
ExpIntegralE[3, 2.20000000000000000000000]N[ExpIntegralE[1 + I, 2 + 3I]]Evaluate ExpIntegralE efficiently at high precision:
ExpIntegralE[3, 2.2`500]//TimingExpIntegralE[3, 2.2`10000];//TimingCompute worst-case guaranteed intervals using Interval and CenteredInterval objects:
ExpIntegralE[2, Interval[{0.1, 0.2}]]ExpIntegralE[2, CenteredInterval[1, 1 / 100]]Or compute average-case statistical intervals using Around:
ExpIntegralE[2, Around[2, 0.01]]Compute the elementwise values of an array:
ExpIntegralE[2, {{I π, I π / 2}, {0, -I }}]//FunctionExpandOr compute the matrix ExpIntegralE function using MatrixFunction:
MatrixFunction[ExpIntegralE[2, #]&, {{I π, I π / 2}, {0, I}}]//FunctionExpandSpecific Values (3)
Table[ExpIntegralE[n, 0], {n, 1, 5}]ExpIntegralE[0, z]Limit[ExpIntegralE[n, x], x -> Infinity]Find a real root of the equation
:
f[x_] := ExpIntegralE[0, x] - 0.5;xzero = Solve[f[x] == 0 && 0 < x < 2, x][[1, 1, 2]]//QuietPlot[f[x], {x, 0, 6}, Epilog -> Style[Point[{xzero, f[xzero]}], PointSize[Large], Red]]Visualization (3)
Plot the ExpIntegralE function:
Plot[{ExpIntegralE[-2, x], ExpIntegralE[-3 / 2, x], ExpIntegralE[-1, x], ExpIntegralE[-1 / 2, x], ExpIntegralE[0, x], ExpIntegralE[1 / 2, x], ExpIntegralE[1, x], ExpIntegralE[3 / 2, x], ExpIntegralE[2, x]}, {x, -2, 2}]ComplexContourPlot[Re[ExpIntegralE[1, z]], {z, -4 - 5I, 4 + 5 I}, Contours -> 20]ComplexContourPlot[Im[ExpIntegralE[1, z]], {z, -4 - 5I, 4 + 5 I}, Contours -> 20]ComplexContourPlot[Re[ExpIntegralE[-7 / 2, z]], {z, -4 - 5I, 4 + 5 I}, IconizedObject[«PlotOptions»]]ComplexContourPlot[Im[ExpIntegralE[-7 / 2, z]], {z, -4 - 5I, 4 + 5 I}, IconizedObject[«PlotOptions»]]Function Properties (9)
Real domain of ExpIntegralE:
FunctionDomain[ExpIntegralE[n, x], x]Complex domain of ExpIntegralE:
FunctionDomain[ExpIntegralE[n, z], z, Complexes]
achieves all real values for
:
Table[Reduce[FunctionRange[ExpIntegralE[n, x], x, y], y, Reals], {n, 4}]The function range of ExpIntegralE for smaller values of
may or may not be more restricted:
FunctionRange[ExpIntegralE[0, x], x, y]FunctionRange[ExpIntegralE[-3, x], x, y]ExpIntegralE has the mirror property
:
FullSimplify[ExpIntegralE[0, Conjugate[z]] == Conjugate[ExpIntegralE[0, z]]]ExpIntegralE is not an analytic function:
FunctionAnalytic[ExpIntegralE[n, x], {n, x}]FunctionMeromorphic[ExpIntegralE[n, x], x]//ReduceFunctionMonotonicity[{ExpIntegralE[n, x], x > 0}, x, Assumptions -> n > 0]FunctionInjective[ExpIntegralE[n, x], x, Assumptions -> n ≥ 2]It may or may not be injective for smaller values of
:
FunctionInjective[ExpIntegralE[1 / 2, x], x]FunctionInjective[ExpIntegralE[-1, x], x]Plot[{ExpIntegralE[2, x], ExpIntegralE[1 / 2, x], ExpIntegralE[-1, x], 1 / 2}, {x, -2, 2}]FunctionSign[{ExpIntegralE[n, x], x > 0}, x, Assumptions -> n∈Reals, StrictInequalities -> True]ExpIntegralE has both singularity and discontinuity for x≤0:
FunctionSingularities[ExpIntegralE[2, x], x]FunctionDiscontinuities[ExpIntegralE[2, x], x]FunctionConvexity[{ExpIntegralE[n, x], x > 0}, x, Assumptions -> n∈Reals]Differentiation (3)
D[ExpIntegralE[n, x], x]derivs = Table[D[ExpIntegralE[n, x], {x, k}], {k, 1, 4}]Plot[Evaluate[derivs /. n -> 0], {x, -5, 5}, PlotLegends -> {"First Derivative", "Second Derivative", "Third Derivative", "Fourth Derivative"}]Plot[Evaluate[derivs /. n -> 3], {x, -5, 5}]D[ExpIntegralE[n, x], {x, k}]Integration (3)
Indefinite integral of ExpIntegralE:
Integrate[ExpIntegralE[n, x], x]Definite integral of ExpIntegralE:
Integrate[ExpIntegralE[n, x], {x, 0, Infinity}]Integrate[x ExpIntegralE[n, x], x]Integrate[ExpIntegralE[n, x]ExpIntegralE[n + 1, x], x]Series Expansions (4)
Series expansion for ExpIntegralE:
Series[ExpIntegralE[n, x], {x, 0, 7}]Plot the first three approximations for
around
:
terms = Normal@Table[Series[ExpIntegralE[1, x], {x, 0, m}], {m, 0, 2}];
Plot[{ExpIntegralE[1, x], terms}, {x, 0, 2}]General term in the series expansion of
:
SeriesCoefficient[ExpIntegralE[0, x], {x, 0, n}]Series[ExpIntegralE[n, z], {z, Infinity, 5}]//NormalGive the result for an arbitrary symbolic direction:
Series[ExpIntegralE[n, z], {z, DirectedInfinity[w], 2}]//NormalExpIntegralE can be applied to power series:
ExpIntegralE[2, 1 + x + (x^2/2) + O[x]^4]Integral Transforms (3)
Compute the Fourier sine transform for
using FourierSinTransform:
FourierSinTransform[ExpIntegralE[0, t], t, ω]LaplaceTransform for
:
LaplaceTransform[ExpIntegralE[1, t], t, s]MellinTransform[ExpIntegralE[n, x], x, s ]Function Identities and Simplifications (4)
Use FullSimplify to simplify exponential integrals:
FullSimplify[ExpIntegralE[3, z] + z / 2ExpIntegralE[2, z]]Use FunctionExpand to express special cases in simpler functions:
FunctionExpand[{ExpIntegralE[5 / 2, z], ExpIntegralE[4, z], ExpIntegralE[-4, z]}]//SimplifyExpIntegralE[n, z] == (1/n - 1)(E^-z - z ExpIntegralE[n - 1, z])//FullSimplifyFullSimplify[ExpIntegralE[1, x] == -ExpIntegralEi[-x], x > 0]Function Representations (5)
Primary definition of the exponential integral function:
Integrate[Exp[-z t]t ^ -n, {t, 1, Infinity}, Assumptions -> z > 0 && n < 1]Relationship to the incomplete gamma function Gamma:
ExpIntegralE[n, z]//FunctionExpandExpIntegralE can be represented in terms of MeijerG:
MeijerGReduce[ExpIntegralE[n, x], x]Activate[%]//FullSimplifyExpIntegralE can be represented as a DifferentialRoot:
DifferentialRootReduce[ExpIntegralE[n, x], x]TraditionalForm formatting:
ExpIntegralE[n, z]//TraditionalFormGeneralizations & Extensions (2)
Infinite arguments give exact results:
ExpIntegralE[0, Infinity]ExpIntegralE threads element-wise over lists and arrays:
ExpIntegralE[0, {2., 3., 5., 7., 11.}]Applications (5)
Plot3D[Im[ExpIntegralE[-3, x + I y]], {x, -1, 1}, {y, -1, 1}]Solution of the heat equation for piecewise‐constant initial conditions:
T[x_, t_] := (1/4Sqrt[π]Sqrt[α t])T0((x - x1)ExpIntegralE[(1/2), ((x - x1)^2/4α t)] + (-x + x2)ExpIntegralE[(1/2), ((x - x2)^2/4α t)])Check that the solution satisfies the heat equation:
D[T[x, t], t] == α D[T[x, t], x, x]//FullSimplifyPlot the solution for different times:
Plot[Evaluate[{T[x, 10 ^ -3], T[x, 0.5], T[x, 1], T[x, 2]} /. {x1 -> -1, x2 -> 1, T0 -> 1, α -> 1}], {x, -4, 4}]//QuietCalculate a classical asymptotic series with factorial coefficients:
Series[Exp[1 / z]ExpIntegralE[1, 1 / z], {z, 0, 12}, Assumptions -> z > 0]Plot the difference of a truncated series and the exponential integral sum:
δ[z_, o_] := -Sum[(-1) ^ n(n - 1)!(z) ^ n, {n, 1, o}] + Exp[1 / z]ExpIntegralEi[-1 / z]Plot[Evaluate[Table[Log[Abs[δ[z, o]]], {o, 6}]], {z, 0.1, 2}]Approximate the "leaky aquifer" function (also known as the Hantush–Jacob function or incomplete Bessel function) arising in hydrology and electronic structure calculations, using a series expansion in terms of ExpIntegralE:
LeakyAquiferApprox[u_, ϵ_, n_Integer : 10] := ExpIntegralE[1, u] + Sum[(-ϵ / u) ^ k / k! ExpIntegralE[k + 1, u], {k, 1, n}]Compare with quadrature of the defining integral:
LeakyAquiferQuadrature[u_, ϵ_] := NIntegrate[Exp[- - ϵ / ] / , {, u, Infinity}]{LeakyAquiferApprox[0.001, 0.001], LeakyAquiferQuadrature[0.001, 0.001]}Plot[{LeakyAquiferApprox[u, 0.001], LeakyAquiferApprox[u, 0.5, 20], LeakyAquiferApprox[u, 1, 100]}, {u, 0.1, 2}]Compute the expected time value of a death benefit of $1 paid at time
, where
is drawn from a Gompertz–Makeham distribution:
tv = TimeValue[Cashflow[{{t, 1}}], EffectiveInterest[r, 0], 0]nsp = Expectation[tv, tGompertzMakehamDistribution[a, b]]Find the annual premium, which is usually paid at the beginning of a policy year, that is necessary to make the expected time value of that payment stream for
periods (where
is drawn from a Gompertz–Makeham distribution) equal to the net single premium:
nap = TimeValue[AnnuityDue[premium, t], EffectiveInterest[r, 0], 0]etv = Expectation[nap, tGompertzMakehamDistribution[a, b]]The resulting net annual premium:
Solve[etv == nsp, premium]//FullSimplifyProperties & Relations (8)
Use FullSimplify to simplify exponential integrals:
FullSimplify[ExpIntegralE[3, z] + z / 2ExpIntegralE[2, z]]Use FunctionExpand to express special cases in simpler functions:
FunctionExpand[{ExpIntegralE[5 / 2, z], ExpIntegralE[4, z], ExpIntegralE[-4, z]}]//SimplifyNumerically find a root of a transcendental equation:
FindRoot[ExpIntegralE[1, z] - 2ExpIntegralE[2, z + 2] + z == 2, {z, 1}]Generate from integrals, sums, and differential equations:
Integrate[Exp[-z t]t ^ -n, {t, 1, Infinity}, Assumptions -> z > 0 && n < 1]FullSimplify[n!z ^ (-n - 1)Exp[-z]Sum[z ^ k / k!, {k, 0, n}]]DSolve[x y''[x] + (ν + 1 - x)y'[x] == 0, y[x], x]//FullSimplifyExpIntegralE appears as a special case of hypergeometric and Meijer G-functions:
{Hypergeometric1F1[1 - ν, 2 - ν, -z], MeijerG[{{ν}, {}}, {{0}, {ν - 1}}, z]}//FunctionExpand//FullSimplifyIntegrate[ExpIntegralE[ν, z], z]ExpIntegralE is a numeric function:
Attributes[ExpIntegralE]NumericQ[ExpIntegralE[2, 2 + E]]ExpIntegralE can be represented as a DifferenceRoot:
DifferenceRootReduce[DifferenceRootReduce[ExpIntegralE[k, z], k], k]Possible Issues (3)
Large arguments can give results too large to be computed explicitly:
ExpIntegralE[2, -10. ^ 16]Machine-number inputs can give high‐precision results:
ExpIntegralE[2, -10. ^ 3]MachineNumberQ[%]In TraditionalForm,
is not automatically interpreted as an exponential integral:
Subscript[E, n](z)Neat Examples (1)
With[{p = 1 / 2, ε = 10 ^ -8},
ParametricPlot3D[Table[{r Cos[ϕ], r Sin[ϕ], Re[ExpIntegralE[p, r Exp[I ϕ]] + 2π I((r Exp[I ϕ])^p - 1/Gamma[p])Exp[k p π I]ChebyshevU[k - 1, Cos[p π]]]}, {k, 0, 1}], {r, ε, 2}, {ϕ, -π, π}, PlotRange -> {All, All, {-5, 3}}]]See Also
Tech Notes
Related Guides
Related Links
History
Introduced in 1988 (1.0) | Updated in 2021 (13.0) ▪ 2022 (13.1)
Text
Wolfram Research (1988), ExpIntegralE, Wolfram Language function, https://reference.wolfram.com/language/ref/ExpIntegralE.html (updated 2022).
CMS
Wolfram Language. 1988. "ExpIntegralE." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2022. https://reference.wolfram.com/language/ref/ExpIntegralE.html.
APA
Wolfram Language. (1988). ExpIntegralE. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ExpIntegralE.html
BibTeX
@misc{reference.wolfram_2026_expintegrale, author="Wolfram Research", title="{ExpIntegralE}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/ExpIntegralE.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_expintegrale, organization={Wolfram Research}, title={ExpIntegralE}, year={2022}, url={https://reference.wolfram.com/language/ref/ExpIntegralE.html}, note=[Accessed: 13-June-2026]}