function opt m = 15; x = 0:m; y1 = 4-x; y2 = (12-x)/3; y3 = (0-x)/-1; ybottom = max([y1; y2; zeros(1,size(x,2))]); ytop = max([y3; zeros(1,size(x,2))]); area(x,ytop); hold on; area(x,ybottom); [u v] = meshgrid(0:m,0:m); contour(u,v,2*u+v); hold off; f = [2 1] A = [-1 -3; -1 -1; -1 1; -1 0; 0 -1] b = [-12; -4; 0; 0; 0] linprog(f,A,b) f*ans