Re: Complex integration
- To: mathgroup at smc.vnet.net
- Subject: [mg55840] Re: Complex integration
- From: Maxim <ab_def at prontomail.com>
- Date: Thu, 7 Apr 2005 05:10:58 -0400 (EDT)
- References: <d305d3$rv7$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On Wed, 6 Apr 2005 08:08:03 +0000 (UTC), Bernhard von Vacano
<vacano at gmx.de> wrote:
> Dear Group,
>
> I am experiencing problems with a Mathematica simulation I am trying to
> perform.
>
> The first part of my notebook evaluates without any problems:
>
>
> ETL[w_] := Exp[-(w - w0)^2/width^2*2 Log[2]]
>
> EPer[w_] := ETL[w]* Exp[I Pi Cos[2 Pi w/Wm]]
> EPerCC[w_] := ETL[w]* Exp[-I Pi Cos[2 Pi w/Wm]]
>
> parameter := {w0 -> 12500, width -> 250, Wm -> 128}
>
> AmpTL[W_] = Integrate[ETL[w]ETL[w + W] /. parameter, {w, 10000, 20000}]
>
>
> This is the first expression I need for plotting (in the Range of W =
> 0..1000), and gives the correct results.
> With my so far limited mathematica skills, I could not get the following
> modified expression to be evaluated:
>
> AmpPer[W_] = Integrate[EPerCC[w]EPer[w + W] /. parameter, {w, 10000,
> 20000}]
>
> Like this, it only produces "$RecursionLimit::reclim: "Recursion depth of
> 256 exceeded." und "$IterationLimit::itlim: Iteration limit of 4096
> exceeded."
>
> I have tried other limits for the integration, indefinite integration and
> NIntegrate, but so far it did not work. (At the moment, I am using
> Mathematica 4).
>
> Could anybody help me with this? I don't really know which parameters to
> use
> or how to restate the problem to get it working. It doesn't seem too
> hard to
> compute, does it?
>
>
> Thank you very much in advance,
>
> Yours
> Bernhard
>
>
This still hasn't been fixed in version 5.1.0 -- all the following
Integrate commands crash the kernel:
Integrate[EPerCC[w]*EPer[w + W] /. parameter, {w, 10000, 20000}]
(*crashes the kernel*)
Integrate[EPerCC[w]*EPer[w + W] /. parameter, {w, w1, w2}]
(*crashes the kernel*)
Integrate[EPerCC[w]*EPer[w + W] /. parameter, w]
(*crashes the kernel*)
If we don't substitute a numerical value for Wm, then the crash doesn't
occur but the integrals are just left unevaluated. We can use NIntegrate:
AmpPer[W_?NumericQ] := NIntegrate[
EPerCC[w]*EPer[w + W] /. parameter // Evaluate,
{w, 10000, 12000, 12500, 13000, 20000},
GaussPoints -> 50]
Plot[Re[AmpPer[W]], {W, 0, 1000}, PlotRange -> All]
(Evaluate isn't necessary in version 5.) This produces a smooth curve, and
we can plot the imaginary part (which isn't identically zero) in the same
way.
Maxim Rytin
m.r at inbox.ru