# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English verison of the page.

## Use subs to Evaluate Expressions and Functions

### Evaluate Expressions

Evaluation is one of the most common mathematical operations. Therefore, it is important to understand how and when Symbolic Math Toolbox™ performs evaluations. For example, create a symbolic variable, `x`, and then assign the expression `x^2` to another variable, `y`.

```syms x y = x^2;```

Now, assign a numeric value to `x`.

`x = 2;`

This second assignment does not change the value of `y`, which is still `x^2`. If later you change the value of `x` to some other number, variable, expression, or matrix, the toolbox remembers that the value of `y` is defined as `x^2`. When displaying results, Symbolic Math Toolbox does not automatically evaluate the value of `x^2` according to the new value of `x`.

`y`
```y = x^2```

To enforce evaluation of `y` according to the new value of `x`, use the `subs` function.

`subs(y)`
```ans = 4```

The displayed value (assigned to `ans`) is now `4`. However, the value of `y` does not change. To replace the value of `y`, assign the result returned by `subs` to `y`.

`y = subs(y)`
```y = 4```

After this assignment, `y` is independent of `x`.

```x = 5; subs(y)```
```ans = 4```

### Evaluate Functions

Create a symbolic function and assign an expression to it.

```syms f(x) f(x) = x^2;```

Now, assign a numeric value to `x`.

`x = 2;`

The function itself does not change: the body of the function is still the symbolic expression `x^2`.

`f`
```f(x) = x^2```

In case of symbolic expressions, the recommended approach is to use `subs` to evaluate the expression with the most recent values of its parameters. This approach is not recommended for symbolic functions. For example, if you evaluate `f` using the `subs` function, the result is the expected value `4`, but it is assigned to a symbolic function, `fnew`. This new symbolic function formally depends on the variable `x`.

`fnew = subs(f)`
```fnew(x) = 4```

The function call, `f(x)`, returns the value of `f` for the current value of `x`. For example, if you assigned the value `2` to the variable `x`, then calling `f(x)` is equivalent to calling `f(2)`.

`f2 = f(x)`
```f2 = 4```
`f2 = f(2)`
```f2 = 4```

`f` remains independent of the value assigned to `x`.

```f [f(1),f(2),f(3)]```
```f(x) = x^2 ans = [ 1, 4, 9]```