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
- Follow-Ups:
- Re: Re: Why can't Mathematica tell when something is algebraically zero?
- From: Andrzej Kozlowski <akoz@mimuw.edu.pl>
- Re: Re: Why can't Mathematica tell when something is algebraically zero?