# What Is Nonlinear Programming?

Nonlinear programming is minimizing or maximizing a nonlinear objective function subject to bound constraints, linear constraints, or nonlinear constraints, where the constraints can be inequalities or equalities. Example problems in engineering include analyzing design tradeoffs, selecting optimal designs, computing optimal trajectories, and portfolio optimization and model calibration in computational finance.

Unconstrained nonlinear programming is the mathematical problem of finding a vector $$x$$ that is a local minimum to the nonlinear scalar function $$f(x)$$. Unconstrained means that there are no restrictions placed on the range of $$x$$:

$\min_x f(x)$

The following algorithms are commonly used for unconstrained nonlinear programming:

• Quasi-Newton: uses a mixed quadratic and cubic line search procedure and the Broyden-Fletcher-Goldfarb-Shanno (BFGS) formula for updating the approximation of the Hessian matrix
• Nelder-Mead: uses a direct-search algorithm that uses only function values (does not require derivatives) and handles nonsmooth objective functions
• Trust-region: used for unconstrained nonlinear optimization problems and is especially useful for large-scale problems where sparsity or structure can be exploited

Constrained nonlinear programming is the mathematical problem of finding a vector $$x$$ that minimizes a nonlinear function $$f(x)$$ subject to one or more constraints.

Algorithms for solving constrained nonlinear programming problems include:

• Interior-point: is especially useful for large-scale nonlinear optimization problems that have sparsity or structure
• Sequential quadratic programming (SQP): solves general nonlinear problems and honors bounds at all iterations
• Trust-region reflective: solves bound constrained nonlinear optimization problems or linear equalities only

For more information on nonlinear programming, see Optimization Toolbox™.

The algorithms listed above find a local minimum when the problem is nonconvex; all except Nelder-Mead require smooth functions. Global Optimization Toolbox has derivative-free optimization algorithms that search for a global minimum and work with both smooth and nonsmooth functions.

See also: Optimization Toolbox, Global Optimization Toolbox, linear programming, quadratic programming, integer programming, multiobjective optimization, genetic algorithm, simulated annealing, design optimization, prescriptive analytics, convex optimization