Accelerating the pace of engineering and science

# Documentation Center

• Trial Software

## Evaluations in Symbolic Computations

Evaluation is one of the most common mathematical operations. Therefore, it is important to understand how and when MuPAD® performs evaluations. For example, assign the value 2 + 2 to the variable y. Instead of assigning the expression 2 + 2, MuPAD evaluates this expression, and assigns the result of the evaluation, the value 4, to the variable y:

`y := 2 + 2: y`

The variable y is an identifier, and the number 4 is the value of that identifier. Values of identifiers are not always numbers. For example, a value of an identifier can also contain identifiers. In the following assignment, y is an identifier, and the expression a + x is the value of that identifier:

`y := a + x`

The value of y is a sum of two identifiers, a and x. You can assign a value to any of these identifiers. For example, assign the value 10 to the identifier a. Now, MuPAD recognizes that a is equal to 10. Therefore, the system evaluates the value a + x of the identifier y to the expression x + 10:

`a := 10: y`

 Note:   The value of an identifier is the value computed at the time of assignment.

The value of the identifier y is still x + a. If you assign any other value to a, MuPAD evaluates y using this new value:

`a := 15: y`

Now, assign the value 10 to the identifier a, and then assign the expression x + a to y. As in the previous example, MuPAD evaluates the identifier y and returns the expression x + 10:

```a := 10:
y := a + x: y```

Although the evaluation returns the same result as in the previous example, the value of y is different. Here the value of y is the expression x + 10. This value does not depend of the identifier a:

`a := 15: y`

For further computations, clear the identifiers a, x, and y:

`delete a, x, y`

The value of an identifier can be any MuPAD object. For example, the value of an identifier can be a list:

`list := [x^k \$ k = 1..10]`

If later you assign the value to x, the evaluation of the identifier list changes accordingly:

`x := 1/2: list`

MuPAD applies the same evaluation mechanism to function names. For example, assign the function call f( π ) to the identifier y:

`y := f(PI)`

Now, assign the function sin to f. If you evaluate the identifier y, the system replaces the identifier f by its value sin. Then, the system evaluates the call sin( π ) and returns 0:

`f := sin: y`

If you change or delete the value of f, the evaluation of f( π ) changes accordingly:

`f := cos: y`

`delete f: y`