Solver-Based Nonlinear Optimization
Solve nonlinear minimization and semi-infinite programming problems in
serial or parallel using the solver-based approach
Before you begin to solve an optimization problem, you must choose the appropriate approach: problem-based or solver-based. For details, see First Choose Problem-Based or Solver-Based Approach.
For problem setup, see Solver-Based Optimization Problem Setup.
Functions
fminbnd | Find minimum of single-variable function on fixed interval |
fmincon | Find minimum of constrained nonlinear multivariable function |
fminsearch | Find minimum of unconstrained multivariable function using derivative-free method |
fminunc | Find minimum of unconstrained multivariable function |
fseminf | Find minimum of semi-infinitely constrained multivariable nonlinear function |
checkGradients | Check first derivative function against finite-difference approximation (Since R2023b) |
optim.coder.infbound | Infinite bound support for code generation (Since R2022b) |
Live Editor Tasks
Optimize | Optimize or solve equations in the Live Editor (Since R2020b) |
Topics
Unconstrained Solver-Based Applications
- Banana Function Minimization
Shows how to solve for the minimum of Rosenbrock's function using different solvers, with or without gradients. - Solve Nonlinear Problem with Many Variables
Choose appropriate options for large nonlinear problems. - Unconstrained Minimization Using fminunc
Example of unconstrained nonlinear programming. - Minimization with Gradient and Hessian
Example of unconstrained nonlinear programming including derivatives. - Minimization with Gradient and Hessian Sparsity Pattern
Example of nonlinear programming using some derivative information.
Constrained Solver-Based Applications
- Tutorial for Optimization Toolbox
Tutorial example showing how to solve nonlinear problems and pass extra parameters. - Optimize Live Editor Task with fmincon Solver
Example of nonlinear programming with constraints using the Optimize Live Editor Task. - Nonlinear Inequality Constraints
Example of nonlinear programming with nonlinear inequality constraints. - Nonlinear Constraints with Gradients
Example of nonlinear programming with derivative information. - fmincon Interior-Point Algorithm with Analytic Hessian
Example of nonlinear programming with all derivative information. - Linear or Quadratic Objective with Quadratic Constraints
This example shows how to solve an optimization problem that has a linear or quadratic objective and quadratic inequality constraints. - Nonlinear Equality and Inequality Constraints
Nonlinear programming with both types of nonlinear constraints. - How to Use All Types of Constraints
Example showing all constraints. - Obtain Best Feasible Point
Find the best feasible point in theoutput
structure. - Solve Nonlinear Problem with Many Variables
Choose appropriate options for large nonlinear problems. - Minimization with Bound Constraints and Banded Preconditioner
Example showing efficiency gains possible with structured nonlinear problems. - Minimization with Linear Equality Constraints, Trust-Region Reflective Algorithm
Example showing nonlinear programming with only linear equality constraints. - Minimization with Dense Structured Hessian, Linear Equalities
Example showing how to save memory in nonlinear programming with a structured Hessian and only linear equality constraints or only bounds. - Calculate Gradients and Hessians Using Symbolic Math Toolbox
Example showing how to calculate derivatives symbolically for optimization solvers. - Using Symbolic Mathematics with Optimization Toolbox Solvers
Use Symbolic Math Toolbox™ to generate gradients and Hessians.
Code Generation
- Code Generation in fmincon Background
Prerequisites to generate C code for nonlinear optimization. - Code Generation for Optimization Basics
Learn the basics of code generation for thefmincon
optimization solver. - Static Memory Allocation for fmincon Code Generation
Use static memory allocation in code generation when the problem changes. - Optimization Code Generation for Real-Time Applications
Explore techniques for handling real-time requirements in generated code.
Semi-Infinite Constraints
- One-Dimensional Semi-Infinite Constraints
Example showing how to use one-dimensional semi-infinite constraints in nonlinear programming. - Two-Dimensional Semi-Infinite Constraint
Example showing how to use two-dimensional semi-infinite constraints in nonlinear programming. - Analyzing the Effect of Uncertainty Using Semi-Infinite Programming
This example shows how to use semi-infinite programming to investigate the effect of uncertainty in the model parameters of an optimization problem.
Parallel Computing
- What Is Parallel Computing in Optimization Toolbox?
Use multiple processors for optimization. - Using Parallel Computing in Optimization Toolbox
Perform gradient estimation in parallel. - Improving Performance with Parallel Computing
Investigate factors for speeding optimizations. - Minimizing an Expensive Optimization Problem Using Parallel Computing Toolbox
Example showing how to use parallel computing in both Global Optimization Toolbox and Optimization Toolbox™ solvers.
Simulation or ODE
- Optimizing a Simulation or Ordinary Differential Equation
Special considerations in optimizing simulations, black-box objective functions, or ODEs.
Algorithms and Other Theory
- Unconstrained Nonlinear Optimization Algorithms
Minimizing a single objective function in n dimensions without constraints. - Constrained Nonlinear Optimization Algorithms
Minimizing a single objective function in n dimensions with various types of constraints. - fminsearch Algorithm
Steps thatfminsearch
takes to minimize a function. - Optimization Options Reference
Explore optimization options. - Local vs. Global Optima
Explains why solvers might not find the smallest minimum. - Smooth Formulations of Nonsmooth Functions
Reformulate some nonsmooth functions as smooth functions by using auxiliary variables. - Optimization Bibliography
Lists published materials that support concepts implemented in the optimization solver algorithms.