Re: Integrating a complicated expression involving Sign[...] etc.
- To: mathgroup at smc.vnet.net
- Subject: [mg56219] Re: Integrating a complicated expression involving Sign[...] etc.
- From: dh <dh at metrohm.ch>
- Date: Wed, 20 Apr 2005 05:29:50 -0400 (EDT)
- References: <d3t38d$8jd$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi Christian,
I can not answer all your questions, try to be a bit more specific.
Daniel
Christian Mikkelsen 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?
>
> 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?
try the following:
Shallow[TreeForm[ expr ], depth ]
with depth you can control how deep your tree is displayed.
>
> 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?
Wrap your calculations into
Assuming[assumptions, expr ]
>
>
> -----
> (* 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}};
>
> (* 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}];
>
> (* 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};
>
> 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}]
>