# =, _equal

Equations (equal)

### Use only in the MuPAD Notebook Interface.

This functionality does not run in MATLAB.

## Syntax

````x = y`
_equal(`x`, `y`)
```

## Description

`x = y` defines an equation.

`x = y` is equivalent to the function call ```_equal(x, y)```.

The operator `=` returns a symbolic expression representing an equation. The resulting expression can be evaluated to `TRUE` or `FALSE` by the function `bool`. It also serves as control conditions in `if`, `repeat`, and `while` statements. In all these cases, testing for equality is a purely syntactical test. For example, ```bool(0.5 = 1/2)``` returns `FALSE` although both numbers coincide numerically. Further, Boolean expressions can be evaluated to `TRUE`, `FALSE`, or `UNKNOWN` by the function `is`. Tests using `is` are semantic comparing `x` and `y` applying mathematical considerations.

Equations have two operands: the left side and the right side. Use `lhs` and `rhs` to extract these operands.

The boolean expression `not x = y` is always converted to `x <> y`. The expression ```not x <> y``` is always converted to `x = y`.

## Examples

### Example 1

In the following example, note the difference between syntactical and numerical equality. The numbers 1.5 and coincide numerically. However, 1.5 is of domain type `DOM_FLOAT`, whereas is of domain type `DOM_RAT`. Consequently, they are not regarded as equal in the following syntactical test:

```1.5 = 3/2; bool(%)```

For equations with floating-point numbers, use the operator `~=` instead of `=`. The functions `bool` and `is` test whether the floating-point approximations coincide up to the relative precision given by `DIGITS`:

```1.5 ~= 3/2; bool(1.5 ~= 3/2); is(1.5 ~= 3/2);```

The following expressions coincide syntactically:

```_equal(1/x, diff(ln(x),x)); bool(%)```

The Boolean operator `not` converts equalities and inequalities:

`not a = b, not a <> b`

### Example 2

In this example, use the operator `=` to compare non-mathematical objects:

`if "text" = "t"."e"."x"."t" then "yes" else "no" end`

### Example 3

Test equality of these expressions by using the syntactical test via `bool` and the semantic test via `testeq`:

```bool(1 = x/(x + y) + y/(x + y)), testeq(1 = x/(x + y) + y/(x + y))```

### Example 4

Equations are typical input objects for system functions, such as `solve`:

`solve(x^2 - 2*x = -1, x)`

## Parameters

 `x`, `y` Arbitrary MuPAD® objects

## Return Values

Expression of type `"_equal"`.

Get trial now