[Date Index]
[Thread Index]
[Author Index]
Re: Integrating a complicated expression involving Sign[...] etc.
*To*: mathgroup at smc.vnet.net
*Subject*: [mg56348] Re: Integrating a complicated expression involving Sign[...] etc.
*From*: Paul Abbott <paul at physics.uwa.edu.au>
*Date*: Fri, 22 Apr 2005 06:23:40 -0400 (EDT)
*Organization*: The University of Western Australia
*References*: <d3t38d$8jd$1@smc.vnet.net>
*Sender*: owner-wri-mathgroup at wolfram.com
In article <d3t38d$8jd$1 at smc.vnet.net>,
Christian Mikkelsen <s010132 at student.dtu.dk> wrote:
> I want to ask some general questions. I get some very complicated
> intermediate results (see expressions below) that Mathematica does not
> proces (Integrate) within a day or two.
>
> 1) Does it normally pay off just leaving it to it? If Mathematica is still
> running does it mean that it is doing meaningful transformations and
> calculations?
Usually very unlikely.
> 2) I would like to understand the structure of some of the intermediate
> results ("Thetaintegrant" in particular) to see if Mathematica might need
> a little help (see my earlier post and the kludge below). Is there any
> good way to do that? Using TreeForm, for example if I could just look at
> the upper most levels of the expression tree?
Mathematica certainly needs some help here ...
>
> 3) My problem seems to have a lot of structure so I am hopeful that
> something can be done to help Mathematica a little.
>
> Oh, and a easy one... :-)
> 4) How do I use $Assumptions to tell Mathematica that A is real etc.
> globally?
This is possible, but usually not useful.
> (* This is actually a spherical Bessel-function *)
> j[k_, n_] = ((-I)^n*Sqrt[2*Pi]*BesselJ[1/2 + n, k])/Sqrt[k]
>
> (* A, B, C are to substituted by sines and cosines to make up polar
> coordinates *)
> StorMatrix = {{B^2+C^2, A B, A C},
> {B A, A^2+C^2, B C},
> {C A, C B, A^2+B^2}};
Do you have areference for this matrix and the following computations?
What is the application and derivation of the integral and matrix? Often
it is better to go back to the mathematics to decide the best approach
for a Mathematica implementation.
Importantly, if the symbolic result ends up being too complicated, it is
unlikely to be that useful -- especially if the final goal is numerical
computation of a range of integrals.
> (* My integrant in the case (0, 0) *)
> Integrant = Simplify[StorMatrix j[k A, n] j[k B, m] j[k a, 0] Exp[I k (A
> x + B y + C z)]/.{n->0, m->0},
> Assumptions -> {A \[Element] Reals, B \[Element] Reals,
> C \[Element] Reals, a > 0,
> x \[Element] Reals, y \[Element] Reals,
> z \[Element] Reals}];
>
>
> (* Mathematica refuses to do the definite integral but happily does the
> indefinite one *)
> KIntegral = Integrate[Integrant, k,
> Assumptions -> {A \[Element] Reals, B \[Element] Reals,
> C \[Element] Reals, a > 0,
> x \[Element] Reals, y \[Element] Reals,
> z \[Element] Reals}];
A better approach is to identify exactly what you are trying to compute.
For example, consider the following integral:
Integrate[j[n, t] Exp[I w t], {t, -Infinity, Infinity}]
where j[n, t] is a spherical Bessel function (reversing the order of the
arguments compared to your definition -- acutally, j[n][t] is a better
notation). This is, essentially, a much simpler version of your
integral. However, even in this much simpler problem, Mathematica is not
capable of computing this directly. However, it is just the Fourier
transform of the spherical Bessel function, which is proportional to
LegendreP[n, w] for -1 < w < 1.
(Mathematica cannot compute this general Fourier transform directly
either).
The conclusion to draw from this though is that I expect that your
general integral can be computed by suitable use of integral transforms.
I note that at http://www.tcm.phy.cam.ac.uk/~pdh1001/thesis/node31.html
the integral of a particular triple product of spherical Bessel
functions is computed.
> (* I calculate the lower limit, no problems here *)
> Klowlimit = Limit[KIntegral, k -> 0,
> Assumptions -> {A \[Element] Reals, B \[Element] Reals,
> C \[Element] Reals, a > 0,
> x \[Element] Reals, y \[Element] Reals,
> z \[Element] Reals}]//Simplify;
>
> (* Upper limit, with ComplexExpand and cheating. True? *)
> KinfIntegral = ComplexExpand[KIntegral] /.
> {ExpIntegralEi[ I A_ k] -> Sign[ I A] Pi,
> ExpIntegralEi[-I A_ k] -> Sign[-I A] Pi};
It should be possible to justify this type of approach (one that I often
use). However, using Sign is probably not optimal. UnitStep is better
(for example, Mathematica knows how to differentiate and inegrate
UnitStep). Another approach would be to use Piecewise.
> Kinflimit = Limit[KinfIntegral, k -> \[Infinity],
> Assumptions -> {A \[Element] Reals, B \[Element] Reals,
> C \[Element] Reals, a > 0,
> x \[Element] Reals, y \[Element] Reals,
> z \[Element] Reals}];
>
> Thetaintegrant = (Kinflimit-Klowlimit)/.{A->Sqrt[1-w^2] P, B->Sqrt[1-w^2]
> Q, C-> w};
>
> (* Warning: Mathematica 5.1 gets stuck on this integral : *)
> Thetaintegral =
> Integrate[Thetaintegrant, {w, -1, 1},
> Assumptions -> {P >= -1, P <= 1, Q >= -1, Q <= 1, a > 0}]
You could try interchanging the order of integration, k <-> w. It does
not look promising to me though.
Cheers,
Paul
--
Paul Abbott Phone: +61 8 6488 2734
School of Physics, M013 Fax: +61 8 6488 1014
The University of Western Australia (CRICOS Provider No 00126G)
35 Stirling Highway
Crawley WA 6009 mailto:paul at physics.uwa.edu.au
AUSTRALIA http://physics.uwa.edu.au/~paul
Prev by Date:
** Re: Integrating a complicated expression involving Sign[...] etc.**
Next by Date:
**Re: removing sublist . Again and Different**
Previous by thread:
** Re: Integrating a complicated expression involving Sign[...] etc.**
Next by thread:
**Re: Integrating a complicated expression involving Sign[...] etc.**
| |