Main Content

Optimization Toolbox

Solve linear, quadratic, conic, integer, and nonlinear optimization problems

Optimization Toolbox™ provides functions for finding parameters that minimize or maximize objectives while satisfying constraints. The toolbox includes solvers for linear programming (LP), mixed-integer linear programming (MILP), quadratic programming (QP), second-order cone programming (SOCP), nonlinear programming (NLP), constrained linear least squares, nonlinear least squares, and nonlinear equations.

You can define your optimization problem with functions and matrices or by specifying variable expressions that reflect the underlying mathematics. You can use automatic differentiation of objective and constraint functions for faster and more accurate solutions.

You can use the toolbox solvers to find optimal solutions to continuous and discrete problems, perform tradeoff analyses, and incorporate optimization methods into algorithms and applications. The toolbox lets you perform design optimization tasks, including parameter estimation, component selection, and parameter tuning. It enables you to find optimal solutions in applications such as portfolio optimization, energy management and trading, and production planning.

Get Started

Learn the basics of Optimization Toolbox

Problem-Based Optimization Setup

Formulate optimization problems using variables and expressions, solve in serial or parallel

Solver-Based Optimization Problem Setup

Choose solver, define objective function and constraints, compute in parallel

Nonlinear Optimization

Solve constrained or unconstrained nonlinear problems with one or more objectives, in serial or parallel

Linear Programming and Mixed-Integer Linear Programming

Solve linear programming problems with continuous and integer variables

Quadratic Programming and Cone Programming

Solve problems with quadratic objectives and linear constraints or with conic constraints

Least Squares

Solve least-squares (curve-fitting) problems

Systems of Nonlinear Equations

Solve systems of nonlinear equations in serial or parallel

Optimization Results

Understand solver outputs and improve results