Blog | Nonlinear Constrained Optimization Using Fmincon (2024)

Table of Contents

1

Description and foundation of nonlinear optimization

2

1st and 2nd order optimality conditions

3

Formulation of the optimization problem

Formulation of the NLP problem

Newton's method

4

Nonlinear problem with equality constraints - Karush-Kuhn-Tucker(KKT) conditions

5

Nonlinear problem with inequality constraints - KKT conditions

6

Equality-constrained Sequential Quadratic Programming problem

7

Inequality-constrained Sequential Quadratic Programming problem with the example

8

MATLAB Implementation of nonlinear constrained optimization with equality and inequality constraints

i. Code for equality constrained SQP nonlinear optimization problem

ii. Code for inequality constrained SQP nonlinear optimization problem

9

Output

i. Nonlinear equality constrained problem with SQP algorithm in fmincon function

ii. Nonlinear inequality constrained problem with SQP algorithm in fmincon function

10

Conclusion

Since most practical engineering design problems are nonlinear, applying nonlinear programming techniques is paramount. This blog applies both graphical and numerical methods to obtain the optimal solution. The focus here will be on optimization using the advanced sequential quadratic programming (SQP) algorithm of MATLAB's fmincon solver. The theory behind Karush-Kuhn-Tucker's conditions for optimality in the cases of equality and inequality constraints is discussed.

Description and foundation of nonlinear optimization

This blog deals with an optimization problem with multiple design variables. There are different methods of solving multivariate problems, as discussed below.

Unconstrained optimization problems:

1. Zeroth order: Simplex search method, pattern search method

2. First-order: Steepest descent, Conjugate gradient

3. Second-order: Newton's method, Quasi-Newton's method, Line-search method

Constrained optimization problems:

1. Elimination method

2. Penalty methods

3. Karush-Kuhn-Tucker(KKT) conditions

4. Sequential linear programming

5. Sequential Quadratic Programming(SQP)

This blog deals with solving by the Lagrange multiplier method with KKT conditions using the sequential quadratic programming algorithm(SQP) approach.

1st and 2nd order optimality conditions

Constrained optimization problems can be reformulated as unconstrained optimization problems.

Its derivatives can obtain the local optima of an objective function, and the optimality conditions involve the gradient vector and Hessian matrices of the objective functions.

Given that a function f(x) is continuous and has first and second derivatives that are continuous, it can be expressed as a Taylor Series expansion and neglecting higher-order terms as,

Blog | Nonlinear Constrained Optimization Using Fmincon (1)

with Blog | Nonlinear Constrained Optimization Using Fmincon (2) being the local optimum. Therefore, if Blog | Nonlinear Constrained Optimization Using Fmincon (3) is a local minimum then,

Blog | Nonlinear Constrained Optimization Using Fmincon (4)

Therefore, the first order necessary condition that needs to be satisfied by the local minimum is,

Blog | Nonlinear Constrained Optimization Using Fmincon (5)

which makes the equation as,

Blog | Nonlinear Constrained Optimization Using Fmincon (6)

which means that Blog | Nonlinear Constrained Optimization Using Fmincon (7) is positive-semidefinite (2nd order necessary condition)

However an additional 2nd sufficient condition needs to be satisfied to guarantee a local minimum at Blog | Nonlinear Constrained Optimization Using Fmincon (8) which requires that the Hessian of f(x) is positive definite at the point where Blog | Nonlinear Constrained Optimization Using Fmincon (9) and hence,

Blog | Nonlinear Constrained Optimization Using Fmincon (10)

Blog | Nonlinear Constrained Optimization Using Fmincon (11)

Maximum and minimum

Blog | Nonlinear Constrained Optimization Using Fmincon (12)

Local and global maxima and minima

Formulation of the optimization problem

Formulation of the NLP problem


A nonlinear programming problem can have a linear or nonlinear objective function with linear and/or nonlinear constraints.

The NLP solver in MATLAB uses the formulation as shown below –

Blog | Nonlinear Constrained Optimization Using Fmincon (13)

where

Blog | Nonlinear Constrained Optimization Using Fmincon (14)

Blog | Nonlinear Constrained Optimization Using Fmincon (15)

Blog | Nonlinear Constrained Optimization Using Fmincon (16)

Blog | Nonlinear Constrained Optimization Using Fmincon (17)

C(X) is a vector-valued function with all the non-linear inequality constraints

Blog | Nonlinear Constrained Optimization Using Fmincon (18) is a vector-valued function with all the non-linear equality constraints

Such that

Blog | Nonlinear Constrained Optimization Using Fmincon (19)

Blog | Nonlinear Constrained Optimization Using Fmincon (20)

NLP problems are iterative, which implies that it starts with an initial guess as a starting point Blog | Nonlinear Constrained Optimization Using Fmincon (21) for what the optimum might be. The solver iteratively goes through from the starting point following the gradient of the objective function and the constraints to reach the point where the gradient is equal to zero. Another issue commonly encountered in nonlinear optimization is the non-convexity of the function. This implies that the solver may not be able to find the global minimum and instead finds one of many local minima. Therefore, the choice of starting point will significantly impact the solution found, and this problem will be computationally expensive for solvers, especially when the problem involves more than two variables. Additionally, the constraints can also be non-convex.

Blog | Nonlinear Constrained Optimization Using Fmincon (22)

Convex and concave functions

Newton's method


In this method, the objective function is approximated by a quadratic function at each iteration, and this approximation is then minimized, and a descent direction is computed. The quadratic approximation of the function is given by,

Blog | Nonlinear Constrained Optimization Using Fmincon (23)

By the 1st order necessary condition,

Blog | Nonlinear Constrained Optimization Using Fmincon (24), which gives

Blog | Nonlinear Constrained Optimization Using Fmincon (25)

Blog | Nonlinear Constrained Optimization Using Fmincon (26)

Blog | Nonlinear Constrained Optimization Using Fmincon (27)

where Blog | Nonlinear Constrained Optimization Using Fmincon (28) is the inverse of the Hessian and

Blog | Nonlinear Constrained Optimization Using Fmincon (29) is the descent direction from which Blog | Nonlinear Constrained Optimization Using Fmincon (30) is found as,

Blog | Nonlinear Constrained Optimization Using Fmincon (31)

Blog | Nonlinear Constrained Optimization Using Fmincon (32)

Feasible Region with constraint with gradient of f and gradient of g

Nonlinear problem with equality constraints - Karush-Kuhn-Tucker(KKT) conditions

Suppose we have a function to be minimized as

Blog | Nonlinear Constrained Optimization Using Fmincon (33)

s.t Blog | Nonlinear Constrained Optimization Using Fmincon (34)

This problem can be converted from a constrained problem to an unconstrained problem using the Lagrange function is given by,

Blog | Nonlinear Constrained Optimization Using Fmincon (35)

The above-stated equation is the KKT condition for stationarity.

The constants Blog | Nonlinear Constrained Optimization Using Fmincon (36) are the Lagrange multipliers. Suppose that the minimum for the unconstrained problem Blog | Nonlinear Constrained Optimization Using Fmincon (37) is x* , and x* satisfies the constraint equation. For all values of x which satisfy the constraint equation, the minimum of Blog | Nonlinear Constrained Optimization Using Fmincon (38) is the minimum of f(x) subject to the constraint equation.

Blog | Nonlinear Constrained Optimization Using Fmincon (39)

KKT conditions for example constraints

Blog | Nonlinear Constrained Optimization Using Fmincon (40)

The gradient of the objective function is antiparallel to the gradient of the constraint function

Blog | Nonlinear Constrained Optimization Using Fmincon (41)

Gradient of the objective function is antiparallel to the gradient of the constraint function

Then the equations Blog | Nonlinear Constrained Optimization Using Fmincon (42) and Blog | Nonlinear Constrained Optimization Using Fmincon (43) are solved. Blog | Nonlinear Constrained Optimization Using Fmincon (44) is the KKT condition for primal feasibility. When there are no inequality constraints, the KKT conditions turn into the Lagrange conditions and the specified parameters are the Lagrange multipliers

Nonlinear problem with inequality constraints - KKT conditions

Suppose we have a function to be minimized as

Blog | Nonlinear Constrained Optimization Using Fmincon (45)

s.t Blog | Nonlinear Constrained Optimization Using Fmincon (46)

KKT Dual feasibility condition:

Blog | Nonlinear Constrained Optimization Using Fmincon (47) for all Blog | Nonlinear Constrained Optimization Using Fmincon (48)

KKT Complementary slackness condition:

Blog | Nonlinear Constrained Optimization Using Fmincon (49) for all Blog | Nonlinear Constrained Optimization Using Fmincon (50)

For the case of inequality constraints, it is important to note that there are sign restrictions on the Lagrange multipliers as described above

The Lagrangian can also be written for multiple constraints consisting of equality and inequality constraints as -

Blog | Nonlinear Constrained Optimization Using Fmincon (51)

Blog | Nonlinear Constrained Optimization Using Fmincon (52)

Example of active constraint

Blog | Nonlinear Constrained Optimization Using Fmincon (53)

Example of inactive constraint

Equality-constrained Sequential Quadratic Programming problem

Sequential quadratic programming is one of the algorithms used to solve nonlinear constrained optimization problems by converting the problem into a sequence of quadratic program sub-problems. To get a linear system of equations applying the KKT conditions, it is necessary to have a quadratic objective function and linear constraint functions. This is what you would call a quadratic programming problem. This involves approximating the problem with a quadratic objective and linear constraints and iteratively solving by updating the Hessian, gradient, and Jacobian.

For a problem with equality constraints, the KKT conditions require that

Blog | Nonlinear Constrained Optimization Using Fmincon (54) at the optimal solution.

The steps Blog | Nonlinear Constrained Optimization Using Fmincon (55) and Blog | Nonlinear Constrained Optimization Using Fmincon (56) are obtained with Newton’s method for solving the unconstrained optimization as –

Blog | Nonlinear Constrained Optimization Using Fmincon (57) - (1)

Using the solution for Blog | Nonlinear Constrained Optimization Using Fmincon (58) and Blog | Nonlinear Constrained Optimization Using Fmincon (59) , the next iteration step of Blog | Nonlinear Constrained Optimization Using Fmincon (60) and Blog | Nonlinear Constrained Optimization Using Fmincon (61) are obtained as

Blog | Nonlinear Constrained Optimization Using Fmincon (62)

The 1st order optimality condition that needs to be satisfied is represented by the equation (1) above for the following optimization problem–

Blog | Nonlinear Constrained Optimization Using Fmincon (63)

s.t Blog | Nonlinear Constrained Optimization Using Fmincon (64)

At each iteration, a quadratic program sub-problem needs to be solved to find the steps Blog | Nonlinear Constrained Optimization Using Fmincon (65) which will be necessary to updateBlog | Nonlinear Constrained Optimization Using Fmincon (66)

x_{1}[/latex]= 1, Blog | Nonlinear Constrained Optimization Using Fmincon (67) = 2, Blog | Nonlinear Constrained Optimization Using Fmincon (68) = 1, Blog | Nonlinear Constrained Optimization Using Fmincon (69)= 2 indicates that constraint-1 is active and constraint-2 is inactiveIn MATLAB, the objective function is coded into a separate file where it takes input as the vector X containing Blog | Nonlinear Constrained Optimization Using Fmincon (70) and Blog | Nonlinear Constrained Optimization Using Fmincon (71), and the output would be the value of the objective function. Vectors are created defining the lower and upper bounds, and the constraints are specified as empty if there are none. There must be a separate file to specify the nonlinear constraints, a function of X containing the input variables.

Be a Brand Representative

Join Training Modules

Participate in Online Quiz

Get Research Assistance

Inequality-constrained Sequential Quadratic Programming problem with the example

For example minimise –

Blog | Nonlinear Constrained Optimization Using Fmincon (72)

s.t Blog | Nonlinear Constrained Optimization Using Fmincon (73)

Blog | Nonlinear Constrained Optimization Using Fmincon (74)

It is necessary to introduce slack variables to convert inequality constraints to equality constraints as follows –

Blog | Nonlinear Constrained Optimization Using Fmincon (75)

Blog | Nonlinear Constrained Optimization Using Fmincon (76)

For the second constraint,

Blog | Nonlinear Constrained Optimization Using Fmincon (77)

Blog | Nonlinear Constrained Optimization Using Fmincon (78)

The KKT inequality constraints would include the complementary slackness condition which in the general form is given by,

Blog | Nonlinear Constrained Optimization Using Fmincon (79) for all i = 1..m

The Lagrangian for this problem is given by –

Blog | Nonlinear Constrained Optimization Using Fmincon (80)

Then, the partial derivatives of the Lagrangian with respect to each of these variables are taken and set to be zero as –

Blog | Nonlinear Constrained Optimization Using Fmincon (81) - (1)

Blog | Nonlinear Constrained Optimization Using Fmincon (82) - (2)

Blog | Nonlinear Constrained Optimization Using Fmincon (83) - (3)

Blog | Nonlinear Constrained Optimization Using Fmincon (84) - (4)

Blog | Nonlinear Constrained Optimization Using Fmincon (85) – (5)

Blog | Nonlinear Constrained Optimization Using Fmincon (86) – (6)

Blog | Nonlinear Constrained Optimization Using Fmincon (87)

The last two equations are complementary slackness conditions.

These indicate that the Blog | Nonlinear Constrained Optimization Using Fmincon (88) is zero or s is zero.

If Blog | Nonlinear Constrained Optimization Using Fmincon (89) is zero, then the constraint-1 is active. If Blog | Nonlinear Constrained Optimization Using Fmincon (90) is zero, then the constraint-1 is inactive. This implies that the constraint is either active or inactive. This gives four possibilities, and it is necessary to test each of the possibilities.

Case 1: Blog | Nonlinear Constrained Optimization Using Fmincon (91)= Blog | Nonlinear Constrained Optimization Using Fmincon (92) = 0

Equation 2 is violated.

Case 2: Blog | Nonlinear Constrained Optimization Using Fmincon (93) = 0, Blog | Nonlinear Constrained Optimization Using Fmincon (94) = 0,

  • Gives negative Lagrange multipliers

Case 3: Blog | Nonlinear Constrained Optimization Using Fmincon (95)= 0, Blog | Nonlinear Constrained Optimization Using Fmincon (96) = 0,

  • gives negative Lagrange multipliers

Case 4: Blog | Nonlinear Constrained Optimization Using Fmincon (97)= 0, Blog | Nonlinear Constrained Optimization Using Fmincon (98) = 0,

Gives a valid solution as, Blog | Nonlinear Constrained Optimization Using Fmincon (99)= 1, Blog | Nonlinear Constrained Optimization Using Fmincon (100) = 2, Blog | Nonlinear Constrained Optimization Using Fmincon (101) = 1, Blog | Nonlinear Constrained Optimization Using Fmincon (102)= 2 indicates that constraint-1 is active and constraint-2 is inactive

MATLAB Implementation of nonlinear constrained optimization with equality and inequality constraints

Get Access to
Codes & Report!

Learn how to solve nonlinearities in modeling practical objective functions and constraints using the fmincon solver and graphically interpret the optimal solutions; Developed in MATLAB R2022a with Optimization Toolbox

i. Code for equality constrained SQP nonlinear optimization problem

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

main_optimization_equality.m

% This script contains the graphical as well as the numerical solution for the
% non-linear optimization problem with linear/non-linear equality constraints

% Topic: Non-linear constrained optimization with MATLAB's fmincon
% function(main function)
% Website: https://matlabhelper.com
% Date: 09-04-2022

clc
clear all
close all

global fcount;
lb = [];
ub = [];

% Creates a mesh grid with variables x1 and x2
[x1, x2] = meshgrid(-5:.01:25,-5:.01:25);
% Evaluates the objective function on the grid
z = (x1.^2) - 8*x1 + x2.^2 - 12.*x2 ;

(Rest of the code to set constraints, bounds graphically to determine the feasible region and find the optimal solution with fmincon. Two m-files for the objective function and the constraint function are created)

opts = optimoptions(@fmincon,'Display','iter-detailed','Algorithm','sqp'
[x,fval] = fmincon(@objfun_equality,x0,A,b,Aeq,beq,lb,ub,'confun_equality',opts);

ii. Code for inequality constrained SQP nonlinear optimization problem

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

main_optimization_inequality.m

% This script contains the graphical as well as the numerical solution for the
% nonlinear optimization problem with linear and/or nonlinear inequality constraints

% Topic: Non-linear constrained optimization with MATLAB's fmincon
% function(main function)
% Website: https://matlabhelper.com
% Date: 09-04-2022

clc
clear all
close all

global fcount;
lb = [];
ub = [];

% Creates a mesh grid with variables x1 and x2
[x1, x2] = meshgrid(-5:.01:5,-5:.01:5);

% Evaluates the objective function on the grid
z = (x1.^2) - x2 ;

(Rest of the code to set constraints, bounds graphically to determine the feasible region and find the optimal solution with fmincon. Two m-files for the objective function and the constraint function are created)

opts = optimoptions(@fmincon,'Display','iter-detailed','Algorithm','sqp')
[x,fval] = fmincon(@objfun_inequality,x0,A,b,Aeq,beq,lb,ub,'confun_inequality',opts);

Output

i. Nonlinear equality constrained problem with SQP algorithm in fmincon function

The variables Blog | Nonlinear Constrained Optimization Using Fmincon (103), Blog | Nonlinear Constrained Optimization Using Fmincon (104) and f(X) are plotted as variables x, y and z respectively.

The plot of the objective function vs Blog | Nonlinear Constrained Optimization Using Fmincon (105) and Blog | Nonlinear Constrained Optimization Using Fmincon (106) without the constraints is as follows –

Blog | Nonlinear Constrained Optimization Using Fmincon (107)

Unconstrained objective function (equality constrained)

Upon including the constraints, the feasible region of the solution is obtained as shown here in the contour plot –

Blog | Nonlinear Constrained Optimization Using Fmincon (108)

Contour plot of the objective function with equality constraint

It is observed that the graphical solution to the minimum of the objective function is the same as that obtained using the fmincon solver with the initial guess as

Blog | Nonlinear Constrained Optimization Using Fmincon (109)

So, in this case, the optimum is at

Blog | Nonlinear Constrained Optimization Using Fmincon (110)

Blog | Nonlinear Constrained Optimization Using Fmincon (111)

Blog | Nonlinear Constrained Optimization Using Fmincon (112)

The non-linear problem solution lies on feasible region defined by the equality constraint.

ii. Nonlinear inequality constrained problem with SQP algorithm in fmincon function

The plot of the objective function vs Blog | Nonlinear Constrained Optimization Using Fmincon (113) and Blog | Nonlinear Constrained Optimization Using Fmincon (114) without the constraints is as follows –

Blog | Nonlinear Constrained Optimization Using Fmincon (115)

Unconstrained objective function(inequality constrained problem)

Upon including the constraints, the feasible region of the solution is obtained, as shown here

Blog | Nonlinear Constrained Optimization Using Fmincon (116)

Feasible region (inequality constrained problem)

The contour plot of the objective function with the constraints is as shown,

Blog | Nonlinear Constrained Optimization Using Fmincon (117)

Contour plot of objective with inequality constraints

It is observed that the graphical solution to the minimum of the objective function is the same as that obtained using the fmincon solver with the initial guess as

Blog | Nonlinear Constrained Optimization Using Fmincon (118)

So, in this case, the optimum is at

Blog | Nonlinear Constrained Optimization Using Fmincon (119)

Blog | Nonlinear Constrained Optimization Using Fmincon (120)

Blog | Nonlinear Constrained Optimization Using Fmincon (121)

The non-linear problem solution lies within the feasible region.

Blog | Nonlinear Constrained Optimization Using Fmincon (122)

Graphical solution(Unconstrained optimization problem)

Conclusion

We have seen how to solve the nonlinear optimization problem by taking the case of equality constraints and inequality constraints separately. The theory of Karush-Kuhn-Tucker conditions has been presented to obtain insights into how the constrained nonlinear optimization problems are solved. The basics of the SQP algorithm used by MATLAB's fmincon solver to solve these problems have been discussed.

Get instant access to the code, model, or application of the video or article you found helpful! Simply purchasethe specific title, if available, and receive the download link right away!#MATLABHelper #CodeMadeEasy

Ready to take your MATLAB skills to the next level? Look no further! At MATLAB Helper, we've got you covered. From free community support to expert help and training, we've got all the resources you need to become a pro in no time. If you have any questions or queries, don't hesitate to reach out to us. Simply post a comment below or send us an email at [emailprotected].

And don't forget to connect with us on LinkedIn, Facebook, and Subscribe to ourYouTube Channel! We're always sharing helpful tips and updates, so you can stay up-to-date on everything related to MATLAB. Plus, if you spot any bugs or errors on our website, just let us know and we'll make sure to fix it ASAP.

Ready to get started? Book your expert help with Research Assistanceplantoday and get personalized assistance tailored to your needs. Or, if you're looking for more comprehensive training, join one of our training modules and get hands-on experience with the latest techniques and technologies. The choice is yours – start learning and growing with MATLAB Helper today!

Education is our future. MATLAB is our feature. Happy MATLABing!

About the author

Anuradha Viswanathan

MATLAB Developer at MATLAB Helper,
M.S in Telecommunications and Networking,
M.S in Physics

  • good and useful information

    Log in to Reply

  • Blog | Nonlinear Constrained Optimization Using Fmincon (2024)
    Top Articles
    Latest Posts
    Article information

    Author: Rev. Leonie Wyman

    Last Updated:

    Views: 6514

    Rating: 4.9 / 5 (59 voted)

    Reviews: 90% of readers found this page helpful

    Author information

    Name: Rev. Leonie Wyman

    Birthday: 1993-07-01

    Address: Suite 763 6272 Lang Bypass, New Xochitlport, VT 72704-3308

    Phone: +22014484519944

    Job: Banking Officer

    Hobby: Sailing, Gaming, Basketball, Calligraphy, Mycology, Astronomy, Juggling

    Introduction: My name is Rev. Leonie Wyman, I am a colorful, tasty, splendid, fair, witty, gorgeous, splendid person who loves writing and wants to share my knowledge and understanding with you.