Main Content

Optimize

Optimize or solve equations in the Live Editor

Description

TheOptimizetask lets you interactively optimize linear and nonlinear objective functions subject to constraints of various types, and to solve nonlinear systems of equations. The task automatically generates MATLAB®code for your live script.

Using this task, you can:

  • Choose a solver based on the characteristics of your problem. If you haveGlobal 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.

For suggestions on how to useOptimize, seeUse Optimize Live Editor Task Effectively. Currently, you cannot use thefseminf,GlobalSearch, orMultiStartsolvers withOptimize.

对于一般的信息ve Editor tasks, seeAdd Interactive Tasks to a Live Script.

Open the Task

To add theOptimizetask to a live script in the MATLAB Editor, on the Live EditorInserttab, selectTask > Optimize.

Insert an Optimize Live Editor task

Alternatively, in a code block in the script, type a relevant keyword, such asoptimorfmincon. SelectOptimizefrom the suggested command completions.

Choosing Optimize from command completion suggestions

Parameters

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 (seeSolver).

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 (seeSolver).

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 selectedObjectiveandConstraints.

Available Solvers

Constraint Type Objective Type
Linear Quadratic Least Squares Nonlinear Nonsmooth
Unconstrained Solution is trivial quadprog lsqcurvefit,lsqnonlin,lsqnonneg,lsqlin fgoalattain,fminsearch,fminimax,fminunc,fsolve,fzero,ga(Global Optimization Toolbox),gamultiobj(Global Optimization Toolbox),paretosearch(Global Optimization Toolbox),patternsearch(Global Optimization Toolbox),particleswarm(Global Optimization Toolbox),simulannealbnd(Global Optimization Toolbox) fminsearch,ga(Global Optimization Toolbox),gamultiobj(Global Optimization Toolbox),paretosearch(Global Optimization Toolbox),patternsearch(Global Optimization Toolbox),particleswarm(Global Optimization Toolbox),simulannealbnd(Global Optimization Toolbox)
Bounds Only linprog quadprog lsqcurvefit,lsqnonlin,lsqnonneg,lsqlin fgoalattain,fminbnd,fmincon,fminimax,ga(Global Optimization Toolbox),gamultiobj(Global Optimization Toolbox),paretosearch(Global Optimization Toolbox),patternsearch(Global Optimization Toolbox),particleswarm(Global Optimization Toolbox),simulannealbnd(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox) fminbnd,ga(Global Optimization Toolbox),gamultiobj(Global Optimization Toolbox),paretosearch(Global Optimization Toolbox),patternsearch(Global Optimization Toolbox),particleswarm(Global Optimization Toolbox),simulannealbnd(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox)
Linear linprog quadprog lsqlin,fmincon fgoalattain,fmincon,fminimax,ga(Global Optimization Toolbox),gamultiobj(Global Optimization Toolbox),paretosearch(Global Optimization Toolbox),patternsearch(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox) ga(Global Optimization Toolbox),gamultiobj(Global Optimization Toolbox),paretosearch(Global Optimization Toolbox),patternsearch(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox)
Linear + Integer intlinprog ga(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox) ga(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox) ga(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox) ga(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox)
Second-order cone coneprog fgoalattain,fmincon,fminimax,ga(Global Optimization Toolbox),gamultiobj(Global Optimization Toolbox),paretosearch(Global Optimization Toolbox),patternsearch(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox) fgoalattain,fmincon,fminimax,ga(Global Optimization Toolbox),gamultiobj(Global Optimization Toolbox),paretosearch(Global Optimization Toolbox),patternsearch(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox) fgoalattain,fmincon,fminimax,ga(Global Optimization Toolbox),gamultiobj(Global Optimization Toolbox),paretosearch(Global Optimization Toolbox),patternsearch(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox) ga(Global Optimization Toolbox),gamultiobj(Global Optimization Toolbox),paretosearch(Global Optimization Toolbox),patternsearch(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox)
Nonlinear fgoalattain,fmincon,fminimax,ga(Global Optimization Toolbox),gamultiobj(Global Optimization Toolbox),paretosearch(Global Optimization Toolbox),patternsearch(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox) fgoalattain,fmincon,fminimax,ga(Global Optimization Toolbox),gamultiobj(Global Optimization Toolbox),paretosearch(Global Optimization Toolbox),patternsearch(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox) fgoalattain,fmincon,fminimax,ga(Global Optimization Toolbox),gamultiobj(Global Optimization Toolbox),paretosearch(Global Optimization Toolbox),patternsearch(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox) fgoalattain,fmincon,fminimax,ga(Global Optimization Toolbox),gamultiobj(Global Optimization Toolbox),paretosearch(Global Optimization Toolbox),patternsearch(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox) ga(Global Optimization Toolbox),gamultiobj(Global Optimization Toolbox),paretosearch(Global Optimization Toolbox),patternsearch(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox)
Nonlinear + Integer ga(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox) ga(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox) ga(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox) ga(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox) ga(Global Optimization Toolbox),surrogateopt(Global Optimization Toolbox)

Example:fmincon

Tips

  • For functions with extra inputs,Optimize需要你选择优化变量,and to specify which workspace variables contain the fixed data inputs. For example, seePlace Optimization Variables in One Vector and Data in Other Variables, which contains three function inputs:

    Optimization input = vars, Fixed input y = y, Fixed input w = w.

    Optimizegenerates code only after you specify all function inputs.

  • Optimizecannot parse a function containing thevarargininput or a function that contains an error.

  • If you select an objective or nonlinear constraint function from a file,Optimizeadds the file location to your MATLAB path.

  • IfOptimizehas a parsing error or if multiple local functions have the same name, the list of available local functions is empty.

Introduced in R2020b