Complex integral from real integrand
- To: mathgroup at smc.vnet.net
- Subject: [mg20301] Complex integral from real integrand
- From: William Golz <wgolz at attglobal.net>
- Date: Tue, 12 Oct 1999 03:39:35 -0400
- Organization: Global Network Services - Remote Access Mail & News Services
- Sender: owner-wri-mathgroup at wolfram.com
Synopsis of the problem:
I get a complex result of the form f(t)=(a+bi)g(t), where b is very
small (b~10^-18), when evaluating a real integrand F(x,t)*phi(x) over
the interval {x:0<x<L). All of the variables have been properly declared
as real and the functions have been declared as real for real arguments
(using the package "ReIm").
To see the problem more clearly, the code can be copied into Mathematica
(3 or 4) and executed. (The Traditional or Standard Forms will not paste
into a text document such as this)
When evaluating the integral
\!\(\[Integral]\_0\%\[ScriptL]\( simpF\[CurlyPhi]\_n\)
\[DifferentialD]x\)
over the interval (0,ScriptL) where ScriptL=1. The
integrand
\!\(simpF\[CurlyPhi]\_n\ is, for n=1, given by
\!\(TraditionalForm
\`\(-\(1\/6\)\)\ \[ExponentialE]\^\(\(\(-3\)\
\[Tau]\)/2\)\
\((\((3 + 2\ \[Pi]\^2)\)\ \(cos(\[Pi]\ x)\) -
6\ \[ExponentialE]\^\(x/2\) + 3)\)\
\((cos(3.66558239083868908`\ x) +
sin(3.66558239083868908`\ x))\)\)
and for n=2,
\!\(TraditionalForm
\`\(-\(1\/6\)\)\ \[ExponentialE]\^\(\(\(-3\)\
\[Tau]\)/2\)\
\((\((3 + 2\ \[Pi]\^2)\)\ \(cos(\[Pi]\ x)\) -
6\ \[ExponentialE]\^\(x/2\) + 3)\)\
\((cos(6.58302641111680308`\ x) +
sin(6.58302641111680308`\ x))\)\)
I get the result for n=1,2, respectively
\!\(TraditionalForm
\`\((\(-2.34710341268466837`\) + 0.`\ \[ImaginaryI])\)\
\[ExponentialE]\^\(\(\(-3\)\ \[Tau]\)/2\)\)
\!\(TraditionalForm
\`2\[InvisibleSpace]'' ''\[InvisibleSpace]\(\((
\(-1.26446964467229783`\) + 0.`\ \[ImaginaryI])\)\
\[ExponentialE]\^\(\(\(-3\)\ \[Tau]\)/2\)\)\)
For simple functions F, the product F*phi can be integrated by parts,
where the result contains no potential for complex coefficients when the
variables are real valued. However, evaluating an identical integrand in
Mathematica will give the result f(t)=(a+0.i)g(t). There does not seem
to be any way to avert this, either by defining the variables to be real
and the functions to be real valued (for real arguments).
The evaluation of the integral is also quite slow even for n=2, and even
when the expression is simplified as much as possible; and the final
program will need to evaluate a larger number of terms.
Thanks in advance, Bill