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...