Simplify & FullSimplify
Consider a special ComplexityFunction
One might like the following to simplify to 1-Exp[-x], and we would like
FullSimplify[Log[10^20]] to return (20 Log[10]) which FullSimplify does by
default.
The definitions in the next cell define a new setting for the
ComplexityFunction that does the trick.
In the next cell we see that using the new setting for ComplexityFunction
FullSimplify does what we want.
The next example is taken from the Help Browser. In this case the new setting
for ComplexityFunction gives the same result we get using ComplexityFunction
→Automatic.
In the next cell we see that when using the new setting for
ComplexityFunction FullSimplify still does a nice job of simplifying a
complicated algebraic expression.
A simple problem Simplify & FullSimplify can't handle
Jürgen Tischer sent a problem to the MathGroup that Simplify
couldn't simplify very well. Simplify has trouble with the example in the
next cell for the same reason as the more complicated example
Jürgen Tischer provided.
The code in the next cell forces Simplify to make the appropriate
simplification. This is based on a very clever solution Allan Hayes sent to
the MathGroup.
After evaluating the previous cell Simplify does better with the example
above.
One might wonder why isn't returned in the output above. The reason is that the kernel insists on changing into . You can use a function I defined called HoldTemporary which prevents further evaluation of an expression, but does not have to have a hold released when used in the future. Through use of HoldTemporary one can have the output above displayed as . I have a package which defines HoldTemporary posted at http://library.wolfram.com/infocenter/MathSource/705
Created by Mathematica (May 16, 2004)