|
[Date Index]
[Thread Index]
[Author Index]
Re: Re: A Problem with Simplify
On 18 Apr 2008, at 15:38, Alexey Popkov wrote:
> Daniel Lichtblau:
>> Sorry, I should have stated the situation more clearly.
>>
>> Yes, the antiderivatives you see have singularities at the parameter
>> value in question (in all cases, when a is 1). Hence the results you
>> show above. What I should have said is that one can get these
>> singularities to cancel, if using the parametrized antiderivatives to
>> obtain definite integrals a la Newton-Leibniz. Here is a standard
>> simple
>> example (modified slightly so as to have a->1 as the bad value).
>>
>> In[22]:= InputForm[i1 = Integrate[x^(-a),x]]
>> Out[22]//InputForm= x^(1 - a)/(1 - a)
>>
>> Certainly it blows up as a->1.
>>
>> In[23]:= Limit[i1, a->1]
>> Out[23]= -Infinity
>>
>> In[24]:= Limit[i1, a->1, Direction->1]
>> Out[24]= Infinity
>>
>> But if we take a pair of values for x, say 2 and 3, to evaluate the
>> definite integral, we in fact get the expected/desired logarithm
>> result
>> in the limit as a->1 (and independent of direction).
>>
>> In[27]:= InputForm[Limit[(i1/.x->3)-(i1/.x->2), a->1]]
>> Out[27]//InputForm= Log[3/2]
>>
>> In[28]:= InputForm[Limit[(i1/.x->3)-(i1/.x->2), a->1, Direction->1]]
>> Out[28]//InputForm= Log[3/2]
>>
>> To see that this really is reproducing the Fundamental Theorem of
>> Calculus result (or at least doing a heckuva job to fool me), I'll
>> show
>> this instead as a definite integral from x0 to x.
>>
>> In[29]:= InputForm[Limit[i1 - (i1/.x->x0), a->1]]
>> Out[29]//InputForm= Log[x] - Log[x0]
>>
>> I believe most of your examples will also behave fine when
>> processed in
>> this way. The Cos[a*z]/Sin[z] integrand might be an exception, but
>> that
>> indicates a limitation of Limit rather than a bug in Integrate.
>> Depending on whether you give symbolic (z,z0) or exact numeric (3,2)
>> input to Limit it either returns a complicated, but seemingly correct
>> result, or else unevaluated.
>>
>>
>> Daniel Lichtblau
>> Wolfram Research
>
> Thank you for the explanation. Now I understand. But I think that the
> same way as there is an alternative to Solve (the function Reduce)
> that carefully keeps track for all conditions for the all partial
> answers, there should be also an alternative to Integrate that also
> keeps track for conditions and gives the all partial answers! I am
> grieved deeply that the alternative does not exists for this case!
>
> In[1]:= Reduce[1/(a*x)==1,x]
> Out[1]= a!=0&&x==1/a
>
> This example is the true mathematics!
>
Indeed. However, there would be two problems. First, someone would
have to devise suitable algorithms and implement them. This may not be
totally impossible, but it would certainly take a lot of effort. But
then, we would see the second problem. This "ideal integrate "would
run for ever on almost any non-trivial problem. You would get nice
"mathematical" answers to trivial ones, which would make you feel
good, and no answers to non-trivial ones, which would probably make
you a annoyed enough to complain (to the MathGroup?).
Would that be a good way to use the time and effort of programmers and
your own money?
As for Reduce - you should try it a little more on harder problems
than the one you have just presented. It uses some very beautiful and
powerful algorithms like Cylindrical Algebraic Decomposition but they
have exponential or in this case "double exponential" complexity (in
the number of variables) so if you it try on something with more than
3 variables involved you will see what I mean. Given the choice
between a program that does everything in the spirit of "true
mathematics" but can only sole trivial problems that can be done by
hand and one that gives only "generic" solutions but can deal with
cases that would take you a hundred years to do by hand, which one
would you choose?
Andrzej Kozlowski
Prev by Date:
Re: Abs[x] function
Next by Date:
Re: Indefinite numbers of arguments in a function
Previous by thread:
Re: A Problem with Simplify
Next by thread:
Re: A Problem with Simplify
|