MathGroup Archive 2010

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

Search the Archive

Re: Why can't Mathematica tell when something is algebraically zero?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg108167] Re: Why can't Mathematica tell when something is algebraically zero?
  • From: Simon <simonjtyler at gmail.com>
  • Date: Tue, 9 Mar 2010 06:26:52 -0500 (EST)
  • References: <hn2ltj$3kt$1@smc.vnet.net>

Hi md,

I think that you're being a little harsh on Mathematica.
Your expression is zero when r>=0.  You can't expect mathematica to
assume that r is a radius.

In[1]:= FullSimplify[r^2 Sqrt[(r^3 + r + 2)/r] - Sqrt[r^3 (r^3 + r +
2)], r >= 0]
Out[1]= 0

In fact it can do better than that, and tell you exactly when it is
zero:

In[2]:= Reduce[r^2 Sqrt[(r^3 + r + 2)/r] - Sqrt[r^3 (r^3 + r + 2)] ==
0, Reals]
Out[2]= r <= -1 || r > 0

More generally, I remember having read that the question of when a
complex algebraic object consisting of elementary functions and
absolute values as zero is undecidable.  That's why Mathematica (and other
systems) have (and internally use) things like PossibleZeroQ.  The
documentation says
-----
The general problem of determining whether an expression has value
zero is undecidable; PossibleZeroQ provides a quick but not always
accurate test.
With the setting Method->"ExactAlgebraics", PossibleZeroQ will use
exact guaranteed methods in the case of explicit algebraic numbers.
-----
Can anyone supply a reference or argument proving the undecidability??

Simon

On Mar 8, 7:09 pm, mmdanziger <mmdanzi... at gmail.com> wrote:
> This isn't the first time that I've encountered something like this in
> Mathematica but in my calculations I got a term like this:
>
> r^2 Sqrt[(r^3 + r + 2)/r] - Sqrt[r^3 (r^3 + r + 2)]
>
> Which is obviously identically zero.  For some reason Simplify or even
> FullSimplify can't figure this out.  Once you get dependent on
> Mathematica these things are pretty disturbing...you forget about your
> own knowledge because the program tells you that things are
> different.  Then you sit there like an idiot checking an algebraic
> identity that any beginning precalc student should be able to solve no
> problem.
>
> Is there any way to get Mathematica to "wake up" to these things?  It
> has such a powerful algebraic engine for most things, why can't it see
> something simple like the above?  Do you really have to manually
> override and tell the program when things should be zero?
>
> For the time being I'll just sift through and test things by hand but
> I can't believe that there isn't a better way.
>
> Best,
> md



  • Prev by Date: Re: find index in an array
  • Next by Date: Re: find index in an array
  • Previous by thread: Re: Why can't Mathematica tell when something is algebraically zero?
  • Next by thread: Re: Re: Why can't Mathematica tell when something is algebraically zero?