# 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

 Optimize Optimize or solve equations in the Live Editor

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

Unconstrained Minimization Using fminunc

Example of unconstrained nonlinear programming.

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.

Example of nonlinear programming with derivative information.

fmincon Interior-Point Algorithm with Analytic Hessian

Example of nonlinear programming with all derivative information.

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 the `output` structure.

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 the `fmincon` 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

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 that `fminsearch` 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.

Bibliography

Lists published materials that support concepts implemented in the solver algorithms.