Equalities and equality constraints

An `OptimizationEquality`

object contains equalities and equality
constraints in terms of `OptimizationVariable`

objects or `OptimizationExpression`

objects. Each equality uses the comparison operator
`==`

.

A single statement can represent an array of equalities. For example, you can express the
equalities that each row of a matrix variable `x`

sums to one in this single
statement:

constrsum = sum(x,2) == 1

Use `OptimizationEquality`

objects as constraints in an `OptimizationProblem`

,
or as equations in an `EquationProblem`

.

Create equalities using optimization expressions with the comparison operator
`==`

.

Include equalities in the `Constraints`

property of an optimization
problem, or the `Equations`

property of an equation problem, by using dot
notation.

```
prob = optimproblem;
x = optimvar(x,4,6);
SumToOne = sum(x,2) == 1;
prob.Constraints.SumToOne = SumToOne;
% Or for an equation problem:
eqprob = eqnproblem;
eqprob.Equations.SumToOne = SumToOne;
```

You can also create an empty optimization equality by using `optimeq`

or
`optimconstr`

.
Typically, you then set the equalities in a loop. For an example, see Create Equalities in Loop. However, for the most
efficient problem formulation, avoid setting equalities in loops. See Create Efficient Optimization Problems.

`infeasibility` | Constraint violation at a point |

`show` | Display optimization object |

`write` | Save optimization object description |

`EquationProblem`

| `OptimizationConstraint`

| `OptimizationExpression`

| `OptimizationInequality`

| `OptimizationProblem`

| `OptimizationVariable`

| `eqnproblem`

| `infeasibility`

| `optimconstr`

| `optimeq`

| `show`

| `write`