# Symbolic Computation

One of the important features of *Mathematica* is that it can do *symbolic*, as well as *numerical* calculations. This means that it can handle algebraic formulas as well as numbers.

Here is a typical numerical computation.

Out[1]= | |

This is a symbolic computation.

Out[2]= | |

Numerical computation | |

Symbolic computation | |

Numerical and symbolic computations.

You can type any algebraic expression into

*Mathematica*.

Out[3]= | |

*Mathematica* automatically carries out basic algebraic simplifications. Here it combines

and

to get

.

Out[4]= | |

You can type in any algebraic expression, using the operators listed in "Arithmetic". You can use spaces to denote multiplication. Be careful not to forget the space in . If you type in with no space, *Mathematica* will interpret this as a single symbol, with the name , not as a product of the two symbols and .

*Mathematica* rearranges and combines terms using the standard rules of algebra.

Out[5]= | |

Here is another algebraic expression.

Out[6]= | |

The function

Expand multiplies out products and powers.

Out[7]= | |

Out[8]= | |

When you type in more complicated expressions, it is important that you put parentheses in the right places. Thus, for example, you have to give the expression in the form . If you leave out the parentheses, you get instead. It never hurts to put in too many parentheses, but to find out exactly when you need to use parentheses, look at "Operator Input Forms".

Here is a more complicated formula, requiring several parentheses.

Out[9]= | |

When you type in an expression, *Mathematica* automatically applies its large repertoire of rules for transforming expressions. These rules include the standard rules of algebra, such as , together with much more sophisticated rules involving higher mathematical functions.

*Mathematica* uses standard rules of algebra to replace

by

.

Out[10]= | |

*Mathematica* knows no rules for this expression, so it leaves the expression in the original form you gave.

Out[11]= | |

The notion of transformation rules is a very general one. In fact, you can think of the whole of *Mathematica* as simply a system for applying a collection of transformation rules to many different kinds of expressions.

The general principle that *Mathematica* follows is simple to state. It takes any expression you input, and gets results by applying a succession of transformation rules, stopping when it knows no more transformation rules that can be applied.

• Take any expression, and apply transformation rules until the result no longer changes. |

The fundamental principle of *Mathematica*.