Re: Plot works in Mathematca 7 but not in Mathematica 8

• To: mathgroup at smc.vnet.net
• Subject: [mg115904] Re: Plot works in Mathematca 7 but not in Mathematica 8
• From: Alexander Elkins <user at compgroups.net/>
• Date: Tue, 25 Jan 2011 04:21:26 -0500 (EST)
• References: <ihe47q\$qc0\$1@smc.vnet.net>

```1) One way is to replace (kr + ki I) with k in the expression
and plot Function[k,expression][kr+ki*I] like so:

With[{h=1},
With[{a=0.0001,kn=Pi/h,kr=3.050},
Plot[Function[k,
Abs[(kn^2-k^2)(4h(Log[4h/a]-
NIntegrate[(1-Exp[I(k)y*Cos[kn*y]])/y,{y,0,2}])+
I/(k+kn)(Exp[2I(k+kn)h]-1)+
I/(k-kn)(Exp[2I(k-kn)h]-1))-
(kn^2+k^2)
NIntegrate[Exp[I(k)y]Sin[kn*y]/y,{y,0,2}]]][
kr+ki*I],{ki,-0.23,-0.10}]]]

2) Another way is to notice that
NIntegrate[Exp[I(kr+ki*I)y]Sin[kn*y]/y,{y,0,2}] written as
Integrate[Exp[I(kr+ki*I)y]Sin[kn*y]/y,{y,0,2}] evaluates
to (after grouping (kr+I*ki)):

I/4(2ExpIntegralEi[2I((kr+I*ki)-kn)]-
2ExpIntegralEi[2I((kr+I*ki)+kn)]+
Log[1/(I((kr+I*ki)-kn))]-Log[I((kr+I*ki)-kn)]-
Log[1/(I((kr+I*ki)+kn))]+Log[I((kr+I*ki)+kn)])

Substituting this result also makes the plot work:

With[{h=1},
With[{a=0.0001,kn=Pi/h,kr=3.050},
Plot[
Abs[
(kn^2-(kr+ki*I)^2)
(4h(Log[4h/a]-NIntegrate[(1-Exp[I(kr+ki*I)y*Cos[kn*y]])/y,{y,0,2}])+
I/((kr+ki*I)+kn)(Exp[I((kr+ki*I)+kn)h]-1)+
I/((kr+ki*I)-kn)(Exp[2I((kr+ki*I)-kn)h]-1))-
(kn^2+(kr+ki*I)^2)I/4
(2ExpIntegralEi[2I((kr+I*ki)-kn)]-
2ExpIntegralEi[2I((kr+I*ki)+kn)]+
Log[1/(I((kr+I*ki)-kn))]-Log[I((kr+I*ki)-kn)]-
Log[1/(I((kr+I*ki)+kn))]+Log[I((kr+I*ki)+kn)])],{ki,-0.23,-0.10}]]]

3) Combining both NIntegrate functions into one also works:

With[{h=1},
With[{a=0.0001,kn=Pi/h,kr=3.050},
Plot[Abs[(kn^2-(kr+ki*I)^2)(4h*Log[4h/a]+
I/((kr+ki*I)+kn)(Exp[2I((kr+ki*I)+kn)h]-1)+
I/((kr+ki*I)-kn)(Exp[2I((kr+ki*I)-kn)h]-1))-
NIntegrate[(4h(kn^2-(kr+ki*I)^2)(1-Exp[I(kr+ki*I)y*Cos[kn*y]])+
(kn^2+(kr+ki*I)^2)Exp[I(kr+ki*I)y]Sin[kn*y])/y,
{y,0,2}]],{ki,-0.23,-0.10}]]]

4) Without any implied criticism, I would like to point out that the form
Exp[I(kr+ki*I)y*Cos[kn*y]] is unusual. Is it actually supposed to be
Exp[I(kr+ki*I)y]*Cos[kn*y]? If so,

NIntegrate[(1-Exp[I(kr+ki*I)y*Cos[kn*y]])/y,{y,0,2}] written as
Integrate[(1-Exp[I(kr+ki*I)y]*Cos[kn*y])/y,{y,0,2}] evaluates
to (after grouping (kr+I*ki)):

1/4(4EulerGamma-2ExpIntegralEi[2I((kr+I*ki)-kn)]-
2ExpIntegralEi[2I((kr+I*ki)+kn)]+Log[16]-
Log[1/(I((kr+I*ki)-kn))]+Log[I((kr+I*ki)-kn)]-
Log[1/(I((kr+I*ki)+kn))]+Log[I((kr+I*ki)+kn)])

Substituting this result also makes a (different) plot that works:

With[{h=1},
With[{a=0.0001,kn=Pi/h,kr=3.050},
Plot[
Abs[
(kn^2-(kr+ki*I)^2)
(4h(Log[4h/a]-1/4(4EulerGamma-2ExpIntegralEi[2I((kr+I*ki)-kn)]-
2ExpIntegralEi[2I((kr+I*ki)+kn)]+Log[16]-
Log[1/(I((kr+I*ki)-kn))]+Log[I((kr+I*ki)-kn)]-
Log[1/(I((kr+I*ki)+kn))]+Log[I((kr+I*ki)+kn)]))+
I/((kr+ki*I)+kn)(Exp[I((kr+ki*I)+kn)h]-1)+
I/((kr+ki*I)-kn)(Exp[2I((kr+ki*I)-kn)h]-1))-
(kn^2+(kr+ki*I)^2)I/4
(2ExpIntegralEi[2I((kr+I*ki)-kn)]-
2ExpIntegralEi[2I((kr+I*ki)+kn)]+
Log[1/(I((kr+I*ki)-kn))]-Log[I((kr+I*ki)-kn)]-
Log[1/(I((kr+I*ki)+kn))]+Log[I((kr+I*ki)+kn)])],{ki,-0.23,-0.10}]]]

Hope this helps...

```

• Prev by Date: Time series minima and maxima
• Next by Date: Re: Mathematica 20x slower than Java at arithmetic/special functions, is
• Previous by thread: Re: Plot works in Mathematca 7 but not in Mathematica 8
• Next by thread: Converting XML DATEEVENT to Mathematica AbsoluteTime