1 | initial version |

x/sqrt(x^2) is NOT x/abs(x). There are two square roots of x^2, -x and +x. Neither one of them is abs(x).

If you proceed with the belief that the correct answer is abs(x), you can easily prove (for example) that 1=-1.

Because some people over the years have preferred the incorrect answer, Macsyma and then Maxima has incorporated heuristics that depend on the setting of a flag, radcan, and also depend on domain (e.g. real or complex) and on assumptions (e.g. assume(x>0)) to control the result in this case. Since Maxima (and apparently Sage) is not programmed to deal with multi-valued expressions, you can expect that the answer to such a simplification will be unsatisfactory to some people under some settings of some flags and some options.

Sage apparently has a command called "simplify_full" which calls something in Maxima, but since that command does not exist in Maxima, it is unclear what it is going to do. There are a host of commands in Maxima that do some sort of simplification, e.g. ratsimp, fullratsimp, trigsimp, poissimp, factor, expand, ratexpand, and others. They are controlled by various flags, too.

As for the general complaint that Sage should do something that DERIVE does --
(a) DERIVE is carefully crafted to match the expectations of a certain audience, and does very well at it. As long as the problems are not "too big".

(b) Sage is a behemoth program, but the authors have only a modest understanding of what is in it, at least with respect to Maxima. If your intention is "do high school math" maybe you should directly use Maxima, esp. wxmaxima. Accessing Maxima via Sage is clumsy. Like tying your shoes while wearing mittens.

There are other computer algebra systems (much simpler than Maxima) and maybe closer to DERIVE in spirit, that might do exactly what you want (high school algebra?) and not much more.

Good luck!

2 | No.2 Revision |

x/sqrt(x^2) is NOT x/abs(x). There are two square roots of x^2, -x and +x. Neither one of them is abs(x).

If you proceed with the belief that the correct answer is abs(x), you can easily prove (for example) that 1=-1.

Because some people over the years have preferred the incorrect answer, Macsyma and then Maxima has incorporated heuristics that depend on the setting of a flag, radcan, and also depend on domain (e.g. real or complex) and on assumptions (e.g. assume(x>0)) to control the result in this case. Since Maxima (and apparently Sage) is not programmed to deal with multi-valued expressions, you can expect that the answer to such a simplification will be unsatisfactory to some people under some settings of some flags and some options.

Sage apparently has a command called "simplify_full" which calls something in Maxima, but since that command does not exist in Maxima, it is unclear what it is going to do. There are a host of commands in Maxima that do some sort of simplification, e.g. ratsimp, fullratsimp, trigsimp, poissimp, factor, expand, ratexpand, and others. They are controlled by various flags, too.

[Edit by kcrisman - the issue here is Sage's use of `radcan()`

.]

As for the general complaint that Sage should do something that DERIVE does --
(a) DERIVE is carefully crafted to match the expectations of a certain audience, and does very well at it. As long as the problems are not "too big".

(b) Sage is a behemoth program, but the authors have only a modest understanding of what is in it, at least with respect to Maxima. If your intention is "do high school math" maybe you should directly use Maxima, esp. wxmaxima. Accessing Maxima via Sage is clumsy. Like tying your shoes while wearing mittens.

There are other computer algebra systems (much simpler than Maxima) and maybe closer to DERIVE in spirit, that might do exactly what you want (high school algebra?) and not much more.

Good luck!

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.