MathGroup Archive 1997

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Trivial integral freezes 3.0

  • To: mathgroup at smc.vnet.net
  • Subject: [mg9888] Re: Trivial integral freezes 3.0
  • From: carlos at mars.Colorado.EDU (Carlos A. Felippa)
  • Date: Sun, 30 Nov 1997 00:39:37 -0500
  • Organization: University of Colorado, Boulder
  • References: <65md10$b56@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

> It also takes a very long (Infinite ??) time on my PP200 but
> replacing Integrate by NIntegrate gives the answer instantaneously.
> Of course the problem is that when you ask for "Integrate[", 
> Mathematica attempts do do the integration analytically. So find 
> out what it comes up with for indefinite inegral 
>
>                 Integrate[q,phi]
>
>The result is not pretty, after "Simplify"ing the result it looks like
>this,
>
>(6*(-(-1)^(1/3)*phi + (I + (-1)^(1/6) + phi + (-1)^(2/3)*phi)*
>       Cos[phi] - (I + (-1)^(1/6))*Cos[2*phi] + Sin[phi] + 
>      (-1)^(2/3)*Sin[phi] - I*phi*Sin[phi] - 
>      (-1)^(1/6)*phi*Sin[phi] + Sin[2*phi] + 
>      (-1)^(2/3)*Sin[2*phi]))/
>  ((3*Sqrt[3] + 8*Pi)*(-(-1)^(1/3) + (1 + (-1)^(2/3))*Cos[phi] - 
>      (I + (-1)^(1/6))*Sin[phi]))
>
> I don't know how it manages to get all those (-1)^x and complex
> expressions but undoubtedly it should simplify to something
> much simpler. I guess the evaluation of this is where 
> Mathematica gets stuck!
>

Actually I submitted your expression to FullSimplify, and after about 10
minutes of a valiant effort Mathematica 3.0 came up with the following:

(6*(1 + (-1)^(2/3))*phi - 6*(I + (-1)^(1/6))*Cos[phi] + 
      6*(-1 + (-1)^(1/3))^2*Sin[phi])/((1 + (-1)^(2/3))*(3*Sqrt[3] +
8*Pi))

Still a worthless answer.  Since (-1)^(m/n) has n complex values the
total  number of solutions for a given phi is 3 x 6 x 3 x 3 = 162.  For
a definite integral the number of combinations (if one assumes that
phi1 and phi2 could be on any branch pair) is 162^2=26244. 

If Full Simplify is not applied, the raw number of value combinations of
the original result is 944784.  For a definite integral the
combinations reach 944784^2=8.9261 10^11.  At 10 tries per second that
would take 2830 years.  No wonder it gets stuck.

This example, although admittedly trivial, shows how useful a
variable-typing  scheme, e.g.

                Declare[phi,{real,positive}];

would be.  Not only it gets rid of the branch morass, but it would allow
full  mapping of number-crunching, user-written Modules to C or C++,
which can  then be further compiled to machine language.   Full
competition with Matlab  would then be possible.



  • Prev by Date: Re: Re: Which, If and "neither True nor False"
  • Next by Date: Re: How do I create a cell or "Dialog Box" that simply states a control loop status?
  • Previous by thread: Re: Trivial integral freezes 3.0
  • Next by thread: Re: Re: Trivial integral freezes 3.0