Re: A Simplify that really simplifies? Summary
- To: mathgroup at yoda.physics.unc.edu
- Subject: Re: A Simplify that really simplifies? Summary
- From: withoff
- Date: Mon, 5 Oct 92 15:07:24 CDT
> Hi mathgroup, > Just a short summary of the answers I received concerning > my question about simplification rules for Mathematica. > Actually I received only one hint (Package SubExpressionAccess.m, > Mathematica Journal Vol.1) which however was only of limited use because > the Package was also unable to Simplify my trivial example (a^2+2 a b +b^2 +x) > in an easy manner. > On the other hand quite a few people said to have similar problems with > Mathematica. > Example: > >> I hope someone has such a Simplify function. If you find one, > >> please let me know. I have found this severely limits the usefulness om Mma > >> for me. > > Sorry, but until know I haven't seen one. > > Heino Falcke In the specific case of a^2+2 a b +b^2 +x, I'm not sure that simplifying this expression is a mathematically well-defined operation. It's not clear, for example, what this operation would do with (x^2 + 2 x) or (a^2 + 2 a b + b^2 + 2 a c + c^2). If the operation isn't well-defined, and there isn't a good set of heuristics for deciding what to do in ambiguous cases, then it is quite impossible to implement it in Mathematica or any other computer program. One heuristic for partial factoring of sums is to go through the sum dropping one term at a time and checking to see if the rest of the sum can be factored. This heuristic would recognize the first example, but none of the others. There are similar heuristics that will recognize that x^4 + 4 x^3 + 6 x^2 + 4 x is (x + 1)^4 - 1. All of these methods suffer from various problems, such as non-trivial dependence on the form of the input and the names of the variables and coefficients. Still, a package to implement such a collection of partial factoring heuristics might be useful in some situations. It is not possible to incorporate all of these operations into a single function like Simplify. Some of the heuristics are incompatible with each other, and even if they weren't, the resulting function would be prohibitively slow.