Quantcast

Documentation Center

  • Trial Software
  • Product Updates

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

Was this topic helpful?