Re: ExpIntegralEi
- To: mathgroup at smc.vnet.net
- Subject: [mg18545] Re: [mg18463] ExpIntegralEi
- From: Markus van Almsick <m.van.almsick at cityweb.de>
- Date: Sat, 10 Jul 1999 02:18:44 -0400
- Sender: owner-wri-mathgroup at wolfram.com
Dear Lionel,
RE:
>I am from LMT-Cachan FRANCE, working with MATHEMATICA V.3, I made this
>calculation:
>
>c2 = -0.05018627683354541 - 0.153047656745338 I;
>c3 = -0.7828709924214918 + 0.2780791279205129 I;
>c5 = -0.6758555487562639 - 0.04753624179417532 I;
>
>Integrate[Exp[beta*c2+s*(c3+beta*c5)], {s,0,1},{beta,0,1}]
>
>NIntegrate[Exp[beta*c2+s*(c3+beta*c5)], {s,0,1},{beta,0,1}]
>
>The results given are:
>-0.228103 + 10.5644 I
> 0.587252 + 0.0191685 I
>
>Not the same !
Ted Ersek ([mg18491]) suspected a branch cut along the path of integration.
He is almost right! The problem is that Mathematica chooses a wrong
ExpIntegralEi -branch in the symbolic integration.
Integrate[Exp[c3 s + (c2 + c5 s) beta], {s, 0, 1}, {beta, 0, 1}] //
FullSimplify
->
(ExpIntegralEi[(c2*c3)/c5] -
ExpIntegralEi[(c3*(c2 + c5))/c5] -
ExpIntegralEi[(c2*(c3 + c5))/c5] +
ExpIntegralEi[((c2 + c5)*(c3 + c5))/c5]) /
(c5*E^((c2*c3)/c5))
The 4th ExpIntegralEi-function causes the problem. For the
given ci values ExpIntegralEi renders the wrong branch (in this case).
Adding 2 Pi I rectifies the problem.
(ExpIntegralEi[(c2*c3)/c5] -
ExpIntegralEi[(c3*(c2 + c5))/c5] -
ExpIntegralEi[(c2*(c3 + c5))/c5] +
ExpIntegralEi[((c2 + c5)*(c3 + c5))/c5] + 2 Pi I) /
(c5*E^((c2*c3)/c5))
The fist symbolic solution is not always wrong. Taking the values
c2 = -0.05018627683354541 - 0.153047656745338 I;
c3 = -0.7828709924214918 + 0.1 I;
c5 = -0.6758555487562639 - 0.04753624179417532 I;
one obtains the right numeric result.
Varying the imaginary part of c3 from 0 to 0.278 one crosses a branch cut of
ExpIntegralEi.
Nevertheless, one might argue that Mathematica should have chosen the
correct branch, since the numeric values of ci were provided up front. I
think it should be treated as a bug.
Ciao, Markus van Almsick
Dear Lionel,
RE:
>I am from LMT-Cachan FRANCE, working with MATHEMATICA V.3, I made
this
>calculation:
>
>c2 = -0.05018627683354541 - 0.153047656745338 I;
>c3 = -0.7828709924214918 + 0.2780791279205129 I;
>c5 = -0.6758555487562639 - 0.04753624179417532 I;
>
>Integrate[Exp[beta*c2+s*(c3+beta*c5)], {s,0,1},{beta,0,1}]
>
>NIntegrate[Exp[beta*c2+s*(c3+beta*c5)], {s,0,1},{beta,0,1}]
>
>The results given are:
>-0.228103 + 10.5644 I
> 0.587252 + 0.0191685 I
>
>Not the same !
Ted Ersek ([mg18491]) suspected a branch cut along the path of
integration.
He is almost right! The problem is that Mathematica chooses a wrong
<bigger>ExpIntegralEi </bigger>-branch in the symbolic integration.
Integrate[Exp[c3 s + (c2 + c5 s) beta], {s, 0, 1}, {beta, 0, 1}] //
FullSimplify
->
<bigger>(ExpIntegralEi[(c2*c3)/c5] -
ExpIntegralEi[(c3*(c2 + c5))/c5] -
ExpIntegralEi[(c2*(c3 + c5))/c5] +
ExpIntegralEi[((c2 + c5)*(c3 + c5))/c5]) /
(c5*E^((c2*c3)/c5))
</bigger>The 4th <bigger>ExpIntegralEi</bigger>-function causes the
problem. For the
given ci values <bigger>ExpIntegralEi</bigger> renders the wrong branch
(in this case).
Adding 2 Pi I rectifies the problem.
<bigger>(ExpIntegralEi[(c2*c3)/c5] -
ExpIntegralEi[(c3*(c2 + c5))/c5] -
ExpIntegralEi[(c2*(c3 + c5))/c5] +
ExpIntegralEi[((c2 + c5)*(c3 + c5))/c5] + 2 Pi I) /
(c5*E^((c2*c3)/c5))
</bigger>The fist symbolic solution is not always wrong. Taking the
values
c2 = -0.05018627683354541 - 0.153047656745338 I;
c3 = -0.7828709924214918 + 0.1 I;
c5 = -0.6758555487562639 - 0.04753624179417532 I;
one obtains the right numeric result.
Varying the imaginary part of c3 from 0 to 0.278 one crosses a branch
cut of
<bigger>ExpIntegralEi</bigger>.
Nevertheless, one might argue that Mathematica should have chosen the
correct branch, since the numeric values of ci were provided up front.
I think it should be treated as a bug.
Ciao, Markus van Almsick