Convert function to optimization expression

When possible, create your objective or nonlinear constraint functions by using supported operations on optimization variables and expressions instead of

`fcn2optimexpr`

. Doing so has these advantages:`solve`

includes gradients calculated by automatic differentiation. See Effect of Automatic Differentiation in Problem-Based Optimization.`solve`

has a wider choice of available solvers. When using`fcn2optimexpr`

,`solve`

uses only`fmincon`

or`fminunc`

.

For details, see Convert Nonlinear Function to Optimization Expression and Supported Operations on Optimization Variables and Expressions.

To find the output size of each returned expression when you do not specify
`OutputSize`

, `fcn2optimexpr`

evaluates the function
at the following point for each element of the problem variables.

Variable Characteristics | Evaluation Point |
---|---|

Finite upper bound `ub` and finite lower bound
`lb` | `(lb + ub)/2 + ((ub - lb)/2)*eps` |

Finite lower bound and no upper bound | `lb + max(1,abs(lb))*eps` |

Finite upper bound and no lower bound | `ub - max(1,abs(ub))*eps` |

No bounds | `1 + eps` |

Variable is specified as an integer | `floor` of the point given previously |

An evaluation point might lead to an error in function evaluation. To avoid this error,
specify '`OutputSize`

'.