[Date Index]
[Thread Index]
[Author Index]
Re: comparing implicit 0 with machine floats
*To*: mathgroup at smc.vnet.net
*Subject*: [mg71139] Re: [mg71108] comparing implicit 0 with machine floats
*From*: Bob Hanlon <hanlonr at cox.net>
*Date*: Thu, 9 Nov 2006 03:37:57 -0500 (EST)
*Reply-to*: hanlonr at cox.net
Using Simplify will force the comparison
Sqrt[2] + Sqrt[3] - Sqrt[5 + 2*Sqrt[6]] == 2.//Simplify
False
Sqrt[2] + Sqrt[3] - Sqrt[5 + 2*Sqrt[6]] == N[10^3]//Simplify
False
Bob Hanlon
---- Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote:
> Consider the following:
>
>
> Sqrt[2] + Sqrt[3] - Sqrt[4 + 2*Sqrt[6]] == 2.
>
> False
>
> No problem here. Now let's make a small change
>
> In[17]:=
> Sqrt[2] + Sqrt[3] - Sqrt[5 + 2*Sqrt[6]] == 2.
>
> Out[17]=
>
> Sqrt[2] + Sqrt[3] - Sqrt[5 + 2*Sqrt[6]] == 2.
>
> In fact the expression on the LHS is exactly 0:
>
> In[19]:=
> RootReduce[Sqrt[2]+Sqrt[3]-Sqrt[5+2*Sqrt[6]]]
>
> Out[19]=
>
> The curious thing is that if you try a comparison between a zero of
> this kind and any machine float, however large, Mathematica 5.1 will
> return the original input:
>
> In[20]:=
> Sqrt[2] + Sqrt[3] - Sqrt[5 + 2*Sqrt[6]] == N[10^3]
>
> Out[20]=
> Sqrt[2] + Sqrt[3] - Sqrt[5 + 2*Sqrt[6]] == 1000.
>
> yet if the number of the left hand side is altered, however slightly,
> the comparison will be made:
>
>
> Sqrt[2] + Sqrt[3] - Sqrt[5 + 2*Sqrt[6+1/10^20]] == 2.
>
> False
>
> This suggests that Mathematica actually did perform a computation of
> the left hand side in the examples where it just returned the input
> and having discovered that it could not determine if the LHS is an
> exact zero decided "not to answer the question". But this seems quite
> unreasonable; after all it is not being asked if the LHS is an exact
> 0, or even an approximate 0, but if it is an approximate large number
> like 1000., and this it certainly can decide.
>
> I believe this used to be handled differently (better?) in older
> versions of Mathematica but I no longer have any installed to check.
>
> Andrzej Kozlowski
>
Prev by Date:
**Re: Plotting multi-column data**
Next by Date:
**RE: Plotting multi-column data**
Previous by thread:
**comparing implicit 0 with machine floats**
Next by thread:
**Re: comparing implicit 0 with machine floats**
| |