MathGroup Archive 2003

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

Search the Archive

Re: Integrate 5.0

  • To: mathgroup at
  • Subject: [mg44240] Re: Integrate 5.0
  • From: "David W. Cantrell" <DWCantrell at>
  • Date: Fri, 31 Oct 2003 03:01:05 -0500 (EST)
  • Organization: NewsReader.Com Subscriber
  • References: <bnnvfj$61s$>
  • Sender: owner-wri-mathgroup at

Selwyn Hollis <sh2.7183 at> wrote:
> I've come to the conclusion that Integrate has become nearly worthless
> for computing definite integrals with symbolic limits. To cite a simple
> example,
>         Integrate[Sqrt[Cos[t] + 1], {t, 0, x}]
> returns an awful mess inside of an If statement (very mild in this
> case) that no one should have to deal with if they're only concerned
> with real numbers (specifically calculus students and a great many
> applied mathematicians).

But surely you would not want Mathematica to return

  2*Sqrt[1 + Cos[x]]*Tan[x/2]  without qualification,

as previous versions unfortunately did. After all, looking at the integral
itself (having a _continuous_ integrand), one would certainly suppose that
an unqualified answer should be valid for _all_ real x. But if we replace
x by, say, 2*Pi in the above unqualified result, we get 0, which is absurd.
Of course, Mathematica knows better if you give it a numerical upper bound
for the integration:

  Integrate[Sqrt[Cos[t] + 1], {t, 0, 2*Pi}]   yields   4*Sqrt[2],

as it should.

Anyway, if we're dealing with real x,
then for Integrate[Sqrt[Cos[t] + 1], {t, 0, x}],
the answer that I would like Mathematica to return is

  4*Sqrt[2]*Floor[(Pi + x)/(2*Pi)] + (2*Sin[x])/Sqrt[1 + Cos[x]]

which is valid for all real x.

But your general point, Selwyn, may still be valid. I haven't used the new
version to compute many definite integrals with symbolic limits yet. I was
just pointing out that this particular "simple example" of yours isn't so
simple and doesn't happen to convince me of your general point.

David Cantrell

> On the other hand, DSolve gives the simple, clean answer that Integrate
> used to give:
>     y[t]/. DSolve[{y'[t] == Sqrt[Cos[t] + 1], y[0] == 0}, y[t], t]
>            2*Sqrt[1 + Cos[t]]*Tan[t/2]
> Could it be that we need a new function such as this:
>         RealIntegral[expr_,{x_,a_,b_}]:=
>                 (y[x]/. First@DSolve[{y'[x] ==expr, y[a] == 0}, y[t],
>                 t])/.x->b
> that would be associated with \[Integral] ? ... leaving the current
> Integrate to be associated with \[ContourIntegral]??
> Or perhaps a simple option for Integrate like RealLimits->True?
> -----
> Selwyn Hollis

  • Prev by Date: Re: Integrate 5.0
  • Next by Date: now, while loops construct errors
  • Previous by thread: Re: Integrate 5.0
  • Next by thread: now, while loops construct errors