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)