Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1999
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: ExpIntegralEi

  • To: mathgroup at smc.vnet.net
  • Subject: [mg18748] Re: [mg18463] ExpIntegralEi
  • From: schnizer at itp.tu-graz.ac.at (B. Schnizer)
  • Date: Sat, 17 Jul 1999 02:36:58 -0400
  • Organization: TU-Graz
  • References: <7m14pj$pli@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

In article <7m14pj$pli at smc.vnet.net>, "Ersek, Ted R"
<ErsekTR at navair.navy.mil> wrote:

> Lionel ARNAUD reported the following with version 3.0.
> -------------------------
> 
> 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 !
> ----------------------
> Lionel,
> 
> Version 4.0 gives the same result.  I wonder if the difference has to due
> with branch cuts along the path of integration. It may be that the two
> commands are integrating along different paths in the complex plane.
> 
> I think Exp[z] has a branch cut where Im[z]=(Pi+2*n*Pi) (n is an integer).
> However it looks like the integration path doesn't cross a branch cut, so I
> am puzzled.
> 
> Regards,
> Ted Ersek

Ted Ersek is right; the crossing of the branch cut of ExpIntegralEi
(extending from - Infinity to 0)
is the reason that sometimes the results of numerical and analytical
integrations disagree. 

I cut down the constants to shorter numbers still displaying the phenomenon.

Indefinite analytic integration gives:

In[1] :=
ai = Integrate[Exp[b*cc2+s*(cc3+b*cc5)],{s,0,1},{b,0,1}]//Expand

Out[1] :=
-(ExpIntegralEi[cc2 + (cc2*cc3)/cc5]/
     (E^((cc2*cc3)/cc5)*cc5)) + 
  ExpIntegralEi[(cc2*cc3)/cc5]/(E^((cc2*cc3)/cc5)*cc5) - 
  ExpIntegralEi[(cc3*(cc2 + cc5))/cc5]/
   (E^((cc2*cc3)/cc5)*cc5) + 
  ExpIntegralEi[cc2 + cc3 + (cc2*cc3)/cc5 + cc5]/
   (E^((cc2*cc3)/cc5)*cc5)

The arguments of the ExpIntegralEi's are:

In[2] :=
farg := {c2 + (c2*c3)/c5, (c2*c3)/c5, (c3*(c2 + c5))/c5,  
c2 + c3 + (c2*c3)/c5 + c5};

Set 1  gives agreeing results:

In[3] :=
c2=-0.5   -0.12 I;
c3=-0.8   +0.3 I;
c5=-0.7   -0.052 I;

In[4] :=
Integrate[Exp[b*c2+s*(c3+b*c5)],{s,0,1},{b,0,1}]

Out[4] :=
0.472708 + 0.0291867 I

In[5] := 
Table[ai /. {cc2 -> c2,cc3 -> c3,cc5 -> c5}

Out[5] :=
0.472708 + 0.0291867 I

In[6] := 
NIntegrate[Exp[b*c2+s*(c3+b*c5)],{s,0,1},{b,0,1}]

Out[6] := 
0.472708 + 0.0291867 I

Set 2 gives  disagreeing results:

In[7] :=
c2=-0.5   -0.13 I;
c3=-0.8   +0.3 I;
c5=-0.7   -0.052 I;

In[8] :=
Integrate[Exp[b*c2+s*(c3+b*c5)],{s,0,1},{b,0,1}]

Out[8] :=
-2.59819 - 16.3074 I

In[9] := 
ai /. {cc2 -> c2,cc3 -> c3,cc5 -> c5}

Out[10] :=
-2.59819 - 16.3074 I

In[11] := 
NIntegrate[Exp[b*c2+s*(c3+b*c5)],{s,0,1},{b,0,1}]

Out[12] := 
0.472769 + 0.0271254 I

Note that the result of the numerical integration changes only slightly.
The integrands are continuous functions. Two reasons to trust the
results of the numerical integration.

Now we look at the arguments and the values of the  ExpIntegralEi's :

Set 1 :

In[13] :=
c2=-0.5   -0.12 I;
c3=-0.8   +0.3 I;
c5=-0.7   -0.052 I;

In[14] := 
farg

Out[14] := 
{-1.11374 + 0.00273495 I,-0.61374+0.122735 I,
 -1.41374 + 0.422735I,  -2.61374+0.250735 I}

In[15]:=
Table[ai[[k]]/. {cc2 -> c2,cc3 -> c3,cc5 -> c5},{k,4}]

Out[15]=
{1.14749 + 8.19983 I, -0.466126-8.0542 I,
 1.35286 + 7.98451 I,-1.56152-8.10095 I}

Set 2 :

In[16] :=
c2=-0.5   -0.13 I;
c3=-0.8   +0.3 I;
c5=-0.7   -0.052 I;

In[17] := 
farg

Out[17] := 
{-1.11885 - 0.0183143 I,-0.618846+0.111686 I,
 -1.41885 + 0.411686  I,-2.61885+0.229686 I}

In[18]:=
Table[ai[[k]]/. {cc2 -> c2,cc3 -> c3,cc5 -> c5},{k,4}]

Out[18]=
{-2.00158 - 8.06523 I,-0.387585-8.12648 I,
  1.27058 + 8.0452  I,-1.4796-8.16085 I}

Compare Out[14] to Out[17]: The imaginary part of the first number in the list
changed sign. The corresponding values of the  ExpIntegralEi's change vary
much, 
compare the first numbers in Out[15] and Out[18].


B. Schnizer
Email: schnizer at itp.tu-graz.ac.at


  • Prev by Date: Re: Is there a FAQ? (Clear all)
  • Next by Date: Re: Re: Solving difficult integral a follow up
  • Previous by thread: Re: RE: RE: ExpIntegralEi
  • Next by thread: Kronecker product of matrices