Re: Why does Mathematica change the precision of an expression to check equality?
- To: mathgroup at smc.vnet.net
- Subject: [mg69409] Re: [mg69386] Why does Mathematica change the precision of an expression to check equality?
- From: "Chris Chiasson" <chris at chiasson.name>
- Date: Mon, 11 Sep 2006 05:39:03 -0400 (EDT)
- References: <200609101119.HAA11181@smc.vnet.net>
My *guess* is that it has to do with the difficulty (impossible) of telling wether a general expression is truly equivalent to another expression and the balanced decision to make Mathematica practical to use rather than absolutely correct. On 9/10/06, Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com> wrote: > These thoughts come after answering a similar question in a forum > dedicated to anther CAS. Having ran the following code, I am a little > perplexed by the behavior of Mathematica. > > y = (Sqrt[5] - 2)*(Sqrt[5] + 2); > y == 1 > > --> N::"meprec" : "Internal precision limit $MaxExtraPrecision = > (49.99999999999999) reached while evaluating -1 + (-2 + Sqrt[5])*(2 + > Sqrt[5]). More... > > --> (-2 + Sqrt[5])*(2 + Sqrt[5]) == 1 > > At least Mathematica returns a warning message in addition to the > unevaluated expression > > I used to thought that Mathematica was not attempting to do any > algebraic simplifications when testing, say, equality, and that one have > to request explicitly such transformations. > > However, it is pretty clear that Mathematica transforms the expression > in some way, in this case changing infinite precision -- that is exact > numbers -- into arbitrary precision -- that is better precision that > hardware but still not exact. > > So the question is, "Why, when an expression is only written with exact > numbers, Mathematica would "downgrade" the precision to a lower and > inexact one before attempting to answer a boolean question?" > > I do not see the rational behind this design choice... > > Best regards, > Jean-Marc > > P.S. I know that one can get the correct answer by using Simplify. > > -- http://chris.chiasson.name/
- References:
- Why does Mathematica change the precision of an expression to check equality?
- From: Jean-Marc Gulliet <jeanmarc.gulliet@gmail.com>
- Why does Mathematica change the precision of an expression to check equality?