Optimize
Optimize or solve equations in the Live Editor
Description
The Optimize task lets you choose between two ways to interactively optimize problems or to solve nonlinear systems of equations:
Problem-based (recommended) — Create symbolic optimization variables and expressions to represent the objective function and constraints or equations.
Solver-based — Represent the objective function and constraints or equations using standard MATLAB® code.
The task automatically generates MATLAB code for your live script.
Using the problem-based version of this task, you can:
Specify optimization variable arrays, including their bounds and initial values.
Specify the problem type: minimization, maximization, feasibility, or equation-solving.
Specify the objective and constraint functions, either by writing expressions or browsing for functions.
Optionally, choose a solver, and specify nondefault options..
Run the optimization.
Using the solver-based version of this task, you can:
Choose a solver based on the characteristics of your problem. If you have Global Optimization Toolbox, you can choose to use its solvers as well.
Specify the objective and constraint functions, either by writing functions or browsing for functions.
Specify solver options.
Run the optimization.
To get started using Optimize, see Get Started with Solver-Based Optimize Live Editor Task and Get Started with Problem-Based Optimize Live Editor Task. For suggestions on how to
use Optimize, see Use Solver-Based Optimize Live Editor Task Effectively or Use Problem-Based Optimize Live Editor Task Effectively. Currently, you cannot use
the fseminf
, GlobalSearch
, or
MultiStart
solvers with
Optimize.
For general information about Live Editor tasks, see Add Interactive Tasks to a Live Script.
Open the Task
To add the Optimize task to a live script in the MATLAB Editor, on the Live Editor Insert tab, select Task > Optimize.
Alternatively, in a code block in the script, type a relevant keyword, such as
optim
or fmincon
. Select
Optimize from the suggested command completions.
Examples
- Get Started with Solver-Based Optimize Live Editor Task
- Get Started with Problem-Based Optimize Live Editor Task
- Constrained Nonlinear Problem Using Optimize Live Editor Task or Solver
- Feasibility Using Problem-Based Optimize Live Editor Task
- Optimize Live Editor Task with fmincon Solver
- Optimize Live Editor Task with lsqlin Solver
- Optimize Using the GPS Algorithm (Global Optimization Toolbox)
- Minimize Function with Many Local Minima (Global Optimization Toolbox)
- Pareto Front for Two Objectives (Global Optimization Toolbox)
- Use Problem-Based Optimize Live Editor Task Effectively
- Use Solver-Based Optimize Live Editor Task Effectively
- Solver-Based Optimization Problem Setup
- How to Use the Solver-Based Optimize Live Editor Task
- How to Use the Problem-Based Optimize Live Editor Task
Parameters
The problem-based variable names are dynamic; you can choose any names you like subject to the usual naming restrictions (see Variable Names).
Problem-BasedGoal
— Problem type
Minimize
(default) | Maximize
| Feasibility
| Solve equations
Problem type, specified by clicking the appropriate labeled button.
Objective
— Objective function
optimization expression | local function | function file
Objective function, specified as an optimization expression, a local function, or a
function file. Applies when the Goal
is Minimize
or Maximize
.
Constraints
— Constraints on solution
optimization expression | local function | function file
Constraints on solution, specified as an optimization expression, local function, or function file. Add constraints to the problem by clicking the + button.
Equations
— Problem equations
optimization expression | local function | function file
Problem equations, specified as an optimization expression, local function, or
function file. Applies when the Goal
is Solve
equations
. Add equations to the problem by clicking the + button.
Select task mode
— State of task
Define problem
| Solve problem
State of task, specified as Define problem
or Solve
problem
. For more information, see Use Problem-Based Optimize Live Editor Task Effectively.
Objective
— Objective function type
Linear
| Quadratic
| Least squares
| Nonlinear
| Nonsmooth
Objective function type, specified by clicking the appropriate labeled button. The
selected objective function determines which solvers are available and which solver is
recommended for the problem (see Solver
).
Constraints
— Constraint types
Unconstrained
| Lower bounds
| Upper bounds
| Linear inequality
| Linear equality
| Second-order cone
| Nonlinear
| Integer
Constraint types, specified by clicking the appropriate labeled buttons. You can
specify more than one constraint type. The selected constraints determine which solvers
are available and which solver is recommended for the problem (see Solver
).
Solver
— Optimization solver
solver name
Optimization solver that MATLAB uses to solve the problem, specified by selecting a solver from the list
of available solvers. The available solvers and the recommended solver depend on your
license and the selected Objective
and
Constraints
.
Limitations
Currently, Optimize has the following restrictions for multiobjective optimization.
You must specify your objective functions using a single function with multiple outputs. In other words, your objective function must output a vector of values, one entry for each objective.
All objective functions must use the same sense, minimization for the solver-based task, and either minimization or maximization for the problem-based task.
Tips
For functions with extra inputs, the solver-based and problem-based Optimize tasks have somewhat different requirements.
Solver-Based: Choose the optimization variable, and specify which workspace variables contain the fixed data inputs. For example, see Place Optimization Variables in One Vector and Data in Other Variables, which contains three function inputs:
Optimize generates code only after you specify all function inputs.
Problem-Based: Specify an optimization variable or workspace variable name for each function input. If an input argument name in the function signature matches an existing optimization variable or workspace variable name, Optimize automatically selects that name.
Optimize generates code only after you specify all function inputs.
Optimize cannot parse a function containing the
varargin
input or a function that contains an error.If you select a function from a file, Optimize adds the file location to your MATLAB path.
If Optimize has a parsing error or if multiple local functions have the same name, the list of available local functions is empty.
Version History
Introduced in R2020b
See Also
Functions
fmincon
|intlinprog
|surrogateopt
(Global Optimization Toolbox) |patternsearch
(Global Optimization Toolbox)