Re: Re: simplification of 0/0 to 1?
- To: mathgroup at smc.vnet.net
- Subject: [mg77556] Re: [mg77543] Re: [mg77510] simplification of 0/0 to 1?
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Wed, 13 Jun 2007 07:20:48 -0400 (EDT)
- References: <200706110822.EAA20741@smc.vnet.net> <200706120527.BAA14286@smc.vnet.net> <1582EDB4-119B-4BE5-A6FA-E9D6452843A2@mimuw.edu.pl>
I forgot to note that, according to Mathematica,
1 == Indeterminate
is not False, so one can't hope to become famous simply by evaluating:
Implies[Simplify[(Cos[x]^2 + Sin[x]^2 - 1)/(Cos[x]^2 + Sin[x]^2 - 1)] ==
Simplify[Cos[x]^2 + Sin[x]^2 - 1]/
Simplify[Cos[x]^2 + Sin[x]^2 - 1], "The Riemann hypothesis is
false."]
If your convention were to be adopted then, (as I showed below),
there would be a chance.
Andrzej Kozlowski
Andrzej Kozlowski
On 12 Jun 2007, at 16:31, Andrzej Kozlowski wrote:
>
> I think if Mathematica followed your suggestion things might become
> just too good to be true! Note that:
>
> Simplify[(2*Cos[x]^2 + 2*Sin[x]^2 - 2)/(Cos[x]^2 + Sin[x]^2 - 1)]
> 2
>
> while
>
> Simplify[2*Cos[x]^2 + 2*Sin[x]^2 - 2]/Simplify[Cos[x]^2 + Sin[x]^2
> - 1]
>
> would return 1 or 0 (or whatever the user specified, according to
> your suggestion).
>
> At least the fact that you get Indeterminate with an error message
> alerts you to what is going on, without that it would be easy to
> "prove" that 1==2 or whatever you wished (and hide it so deeply in
> an obscure "one-liner" nobody might notice). And since
>
> Implies[1 == 2, "The moon is made of green cheese"]
> True
>
> you could then prove anything you have ever wished to prove :-)
>
> Andrzej Kozlowski
>
>
>
>
> On 12 Jun 2007, at 14:27, Murray Eisenberg wrote:
>
>> The issue of what a piece of software should do about 0/0 -- even
>> when
>> it arises in precisely that form, without any CAS first simplifying
>> algebraic expressions to reach that form -- is a sticky one. The
>> issue
>> was a mildly hot one many years ago in connection with the
>> programming
>> language APL (from which parts of the Mathematica language are
>> descended). Aside from the possibility of signaling an error,
>> there are
>> two other "good" possibilities for 0/0: 0 and 1. So I proposed in
>> APL
>> that the handling be user-specifiable.
>>
>> The simple answer is that there is no good way to handle 0/0 that
>> will
>> satisfy everyone.
>>
>> dimitris wrote:
>>> Hi fellas.
>>> This appeared in another forum as part of a question
>>> what another CAS does.
>>> Just of curiosity I check Mathematica's performance (5.2).
>>> The result was poor!
>>>
>>> Here is the expression
>>>
>>>
>>> In[16]:=
>>> o = (Log[2]*Cos[Pi/12] - Log[2]*Sin[Pi/12] - 2*Cos[Pi/12] + 2*Sin
>>> [Pi/
>>> 12] + Sqrt[2] +
>>> 2*Log[Cos[Pi/12] - Sin[Pi/12]]*Cos[Pi/12] - 2*Log[Cos[Pi/12] -
>>> Sin[Pi/12]]*Sin[Pi/12])/
>>> (Log[2]*Cos[Pi/12] - Log[2]*Sin[Pi/12] + 2*Log[Cos[Pi/12] -
>>> Sin[Pi/
>>> 12]]*Cos[Pi/12] -
>>> 2*Log[Cos[Pi/12] - Sin[Pi/12]]*Sin[Pi/12])
>>>
>>>
>>> Out[16]=
>>> (Sqrt[2] + (-1 + Sqrt[3])/Sqrt[2] - (1 + Sqrt[3])/Sqrt[2] - ((-1 +
>>> Sqrt[3])*Log[2])/(2*Sqrt[2]) +
>>> ((1 + Sqrt[3])*Log[2])/(2*Sqrt[2]) - ((-1 + Sqrt[3])*Log[-((-1 +
>>> Sqrt[3])/(2*Sqrt[2])) + (1 + Sqrt[3])/(2*Sqrt[2])])/
>>> Sqrt[2] + ((1 + Sqrt[3])*Log[-((-1 + Sqrt[3])/(2*Sqrt[2])) +
>>> (1 +
>>> Sqrt[3])/(2*Sqrt[2])])/Sqrt[2])/
>>> (-(((-1 + Sqrt[3])*Log[2])/(2*Sqrt[2])) + ((1 + Sqrt[3])*Log[2])/
>>> (2*Sqrt[2]) -
>>> ((-1 + Sqrt[3])*Log[-((-1 + Sqrt[3])/(2*Sqrt[2])) + (1 + Sqrt
>>> [3])/
>>> (2*Sqrt[2])])/Sqrt[2] +
>>> ((1 + Sqrt[3])*Log[-((-1 + Sqrt[3])/(2*Sqrt[2])) + (1 + Sqrt[3])/
>>> (2*Sqrt[2])])/Sqrt[2])
>>>
>>> Watch now a really bad performance!
>>>
>>> In[17]:=
>>> (Simplify[#1[o]] & ) /@ {Numerator, Denominator}
>>>
>>> Out[17]=
>>> {0, 0}
>>>
>>> That is Mathematica simplifies succesfully both the numerator
>>> and denominator to zero. So, you wonder what goes wrong?
>>>
>>> Try now to simplify the whole expression!
>>>
>>> In[19]:=
>>> Simplify[o]
>>>
>>> Out[19]=
>>> 1
>>>
>>> A very weird result to my opinion!
>>> Simplification of 0/0 to 1?
>>> I think no simplification or some
>>> warning messages would be much better
>>> than 1!
>>>
>>> Note also that
>>>
>>> In[20]:=
>>> RootReduce[o]
>>>
>>> Out[20]=
>>> 1
>>>
>>> Dimitris
>>>
>>>
>>
>> --
>> Murray Eisenberg murray at math.umass.edu
>> Mathematics & Statistics Dept.
>> Lederle Graduate Research Tower phone 413 549-1020 (H)
>> University of Massachusetts 413 545-2859 (W)
>> 710 North Pleasant Street fax 413 545-1801
>> Amherst, MA 01003-9305
>>
>
- References:
- simplification of 0/0 to 1?
- From: dimitris <dimmechan@yahoo.com>
- Re: simplification of 0/0 to 1?
- From: Murray Eisenberg <murray@math.umass.edu>
- simplification of 0/0 to 1?