MathGroup Archive 2003

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

Search the Archive

Re: Trouble with Integrate

  • To: mathgroup at
  • Subject: [mg39268] Re: [mg39264] Trouble with Integrate
  • From: Andrzej Kozlowski <akoz at>
  • Date: Fri, 7 Feb 2003 03:07:11 -0500 (EST)
  • Sender: owner-wri-mathgroup at

On Thursday, February 6, 2003, at 05:08 PM, Marko Vojinovic wrote:

> Consider the function:
> f = Sqrt[1+x^4] -x^2
> Upon asking to
> Integrate[f,{x,0,Infinity}]
> Mathematica 4.0 answers:
> -Infinity
> which is not correct. However,
> NIntegrate[f,{x,0,Infinity}]
> gives the correct (numerical) answer:
> 1.23605
> The correct (analytical, i.e.. exact) answer to the integral is:
> Gamma[1/4] Gamma[1/4] / 6 Sqrt[Pi]
> which can be obtained after some paperwork. However, if I ask
> Integrate[1/(Sqrt[1+x^4] + x^2),{x,0,Infinity}]
> (this integrand is equivalent to f) one gets a complicated answer in 
> terms
> of EllipticF. Meanwhile, when I ask Mathematica 3.0 the same set of
> questions, I get correct answers, and analytical integration gives 
> answer in
> terms of Gamma. Two questions:
> 1) Why does version 4.0 give so fairly incorrect result "-Infinity" 
> for the
> first integral?
> 2) How can I 'switch off' the use of elliptic functions and/or 'force'
> Mathematica to use Gamma?
> Thanks,
>                              Marko

1). Well, it's a bug. The problem seems to be that attempts to fix bugs 
and improve the capabilities of Integrate in each new version of 
Mathematica tend to result in previously "good" integrals getting 
broken. In this case Mathematica's use of elliptic functions seems to 
be the culprit.
2). Unfortunately there is no "official" way to turn off the use of 
elliptic functions or anything else in Integrate. I have always 
considered this to be a fundamental error in design: it seems to me 
that Integrate should have been designed in such a way that you could 
turn off and on the use of certain methods, which expand the number of 
integrals Mathematica can manage but at the cost of increasing the risk 
of getting incorrect answers.

Having said that, there is a way that sometimes works, and which 
luckily includes your case. Here is how. First we use a limit for 
Integrate and force Integrate to generate conditions. Since I do not 
wish to see the condition generated (it is simply b>0) I use Simplify 
with the appropriate assumption:

Simplify[Integrate[Sqrt[1 + x^4] - x^2, {x, 0, b},
    GenerateConditions -> True], b > 0]

-(b^3/3) + b*Hypergeometric2F1[-(1/2), 1/4, 5/4, -b^4]

Note that we got an answer without elliptic functions (which you would 
get if you did not set GenerateConditions to True). So now we try to 
use Limit:

Limit[%, b -> Infinity]


Numerically this seems to agree with your answer (given by Mathematica 
3.0) although Mathematica 4.2 does not seem to be able to prove that 
the two answers are equivalent.

Andrzej Kozlowski
Yokohama, Japan

  • Prev by Date: Re: finding periodicity in a set
  • Next by Date: Plot3D ? or sth
  • Previous by thread: Re: Trouble with Integrate
  • Next by thread: Re: Re: Trouble with Integrate