Nonlinear programming
From Optimization for Chemical Engineering: 4G3
(Redirected from Nonlinear programming (2015))
Class date(s):  04 February 2015  
 
 
 
 
 
 
 
 
 
 
Resources
Scroll down, if necessary, to see the resources.
Date  Class number  Topic  Slides/handouts for class  Video file  References and Notes 

04 February  05A 

Video  
09 February  06A 

Video  
11 February  06B 

Video  
16 to 27 February  07 
Reading week break and midterm  
02 March  08A 

Video  
04 March  08B 

Video 
Code used in class (see below)  
09 March  09A 

Video  
11 March  09B 
Guest lecture 
Video  
16 March  10A 

Handout from class (continued with handout 09A) 
Video  
18 March  10B 

Video  
23 March  11A 

Video 
Taking full Newton's steps to solve the class example
clear all; close all; clc; [X1,X2] = meshgrid(0.5:0.1:6, 0:0.01:9); Z = func(X1,X2); contour(X1, X2, Z) hold on grid on x = [1,3]'; plot(x(1), x(2), 'o') text(x(1)+0.2, x(2), '0') for k = 1:10 slope = first_deriv(x) step = hessian(x)\slope; % Solves the Ax=b problem, as x = A\b x = x + step; plot(x(1), x(2), '*') text(x(1)+0.1, x(2), num2str(k)) end
func.m
function y = func(x1,x2) y = 4.*x1.*x2  5.*(x12).^4  3.*(x25).^4;
first_deriv.m
function y = first_deriv(x) y = [4*x(2)  20*(x(1)2)^3; 4*x(1)  12*(x(2)5)^3];
hessian.m
function y = hessian(x) y = [60*(x(1)2)^2, 4; 4, 36*(x(2)5)^2];