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  References and Notes  

04 February  05A 


09 February  06A 


11 February  06B 


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


04 March  08B 

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


11 March  09B 
Guest lecture 

16 March  10A 

Handout from class (continued with handout 09A) 

18 March  10B 


23 March  11A 

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];