Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive

MathGroup Archive 2008

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

Search the Archive

Re: Re: A Problem with Simplify

Alexey Popkov wrote:
> On 15 =C1=D0=D2, 13:51, Daniel Lichtblau <d... at> wrote:
>>Alexey Popkov wrote:
>>>On Apr 10, 10:14 am, "Kevin J. McCann" <Kevin.McC... at> wrote:
>>>>I have the following rather simple integral of two sines, which should
>>>>evaluate to zero if m is not equal to n and to L/2 if they are the same.=
>>>Try the following:
>>>Integrate[Exp[(a - 1)*x], x] /. a -> 1
>>>Integrate[Cos[(a - 1)*x], x] /. a -> 1
>>>Integrate[(a - 1)^x, {x, -1, 0}] /. a -> 1
>>>Integrate[Cos[a x]/Sin[x], x] /. a -> 1
>>>There is the ONE underlying BUG! In some complicated cases this bug
>>>may result in random partial answers.
>>Removing the replacements, here are the Integrate results.
>>In[17]:= InputForm[Integrate[Exp[(a - 1)*x], x]]
>>Out[17]//InputForm= E^((-1 + a)*x)/(-1 + a)
>> [...]
>>As far as I am aware thse are correct. What is the bug?
>>Daniel Lichtblau
>>Wolfram Research
> The above answers are correct only if "a" is not equal to 1. Answers
> with a=1 are lost!
> And code:
> int1 = Integrate[Cos[a*x]/Sin[x], x];
> int1 /. a -> 1
> MUST give us answer equal to
> int2 = Integrate[Cos[x]/Sin[x], x]

Capitalization notwithstanding, it need not do any such thing. Integrate 
should give a generic result that behaves sensibly in the limit as a->1 
from whatever path is specified to Limit. This is similar to the 
situation of

In[18]:= InputForm[solns = x /. Solve[a*x^2 + x == 1, x]]
Out[18]//InputForm= {(-1 - Sqrt[1 + 4*a])/(2*a),
   (-1 + Sqrt[1 + 4*a])/(2*a)}

In[20]:= Limit[solns, a->0]
Out[20]= {-Infinity, 1}

Note that a blind substitution of a->0 will not give "nice" results.

In[21]:= solns /. a->0

Power::infy: Infinite expression - encountered.

Power::infy: Infinite expression - encountered.

Infinity::indet: Indeterminate expression 0 ComplexInfinity encountered.

Out[21]= {ComplexInfinity, Indeterminate}

> But the first answer is invalid in this simple case... :(
> I should emphasize that in some complicated cases this BUG may result
> in random partial answers!

I'll emphasize that this is not a bug; it's the way Integrate is 
intended to work in Mathematica. An antiderivative of a function that 
depends on parameters can be invalid for some values of those 
parameters. Provided we are talking about analytic functions (things 
that can be said to have antiderivatives in the usual meaning of the 
term), the "bad set" will have measure zero.

Daniel Lichtblau
Wolfram Research

  • Prev by Date: Re: Re: Deleting Integrate[] transformation rule (some
  • Next by Date: Re: Re: A Problem with Simplify
  • Previous by thread: Re: A Problem with Simplify
  • Next by thread: Re: Re: A Problem with Simplify