Group Abstract Group Abstract

Message Boards Message Boards

0
|
3.2K Views
|
4 Replies
|
4 Total Likes
View groups...
Share
Share this post:

Exponential Integral Ein

Posted 2 years ago

Hey all,

I have to deal with the Exponential Integral function Ein[z], which is an entire function (https://mathworld.wolfram.com/EinFunction.html) not implemented in Mathematica.

I tried to define it as:

Ein[z_] = ExpIntegralE[1, z] + Log[z] + EulerGamma;

but it does not seem to work. For instance

FullSimplify[Series[Ein[z], {z, -1, 1}]] 

provides a multi-valued series which is obviously wrong (because Ein is entire).

How could I define Ein so that Mathematica gives correct symbolic expressions?
Thanks,
Yep

POSTED BY: Yep Led
4 Replies

Hi Yep

The function

(exp x -1)/x = sum_0^inf x^n/(n+1)!

is an entire function so all derivatives and integrals are entire functions, too.

In closed form, the integral Ein(x) is represented as the sum of the integral of its summands Ei and Log.

Both functions Ei and Log have a logarithmic branch cut along the negative real axis, conventionally. So formally the singularities cancel. Nevertheless the fomula is generally valid for Re z > 0 only, because its parts don't allow any high school algeba along the branch cut.

For arguments with negative real part and small imaginary part one has to deal with the explicit Taylor series

sum_0^inf x^(n+1)/((n+1)(n+1)!)

which is rapidly convergent and can be approximated by PadeApproximants readily .

Regards Roland

POSTED BY: Roland Franzius

I tried a higher order series. The plots of the original function and series look similar. I think maybe you should try higher order series with Series[Ein[z], {z, -1, n}] where n is a bigger integer.

POSTED BY: Bowen Ping
Posted 2 years ago

Thanks but I do not get how your reply answered my question. First, z is not necessarily real; Second, Series produces a multi-valued expansion when it should not.

POSTED BY: Yep Led
Ein[z_] := NIntegrate[(1 - Exp[-t])/t, {t, 0, z}];
EinV[z_] = ExpIntegralE[1, z] + Log[z] + EulerGamma;
SER = FullSimplify[Series[EinV[z], {z, -1, 2}], Assumptions -> z \[Element] Reals] // Normal;
Plot[{Ein[z], EinV[z], SER}, {z, -1, 1}, 
 PlotStyle -> {Red, {Dashed, Black}, Blue}, 
 PlotLegends -> "Expressions"]

For z complex values:

EinV1[z_] = ExpIntegralE[1, z] + Log[z] + EulerGamma;
SER = FullSimplify[Series[EinV1[z], {z, -1 + 2*I, 10}]] // Normal;
Plot[{EinV1[z] // ReIm // Evaluate}, {z, -1, 1}, PlotLegends -> "Expressions"]
Plot[{SER // ReIm // Evaluate}, {z, -1, 1}, PlotLegends -> "Series"]

Regards M.I.

POSTED BY: Mariusz Iwaniuk
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard