matlab程序设计优化问题实验实例
无约束优化问题、线性规划问题、非线性规划问题。使用xy轴网格,mesh函数画图,z设置为100;在xy平面上使用mesh、contour函数画图,使用plot和text函数标记起始点和解;代码块如下:
% 设置xy平面网格
[x,y] = meshgrid(-20:1:10,-13:1:21);
% 非线性优化
f = @(x) 100*(x(2)-x(1)^2)^2+(1-x(1))^2;
[xopt,fopt,exitflag,output] = fminunc(f,[-1,2]);
% Plot曲线和起点、解
figure(1)
mesh(x,y,zeros(size(x)));
hold on
plot(xopt(1),xopt(2),'-o','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',10)
text(xopt(1)+1,xopt(2)+1,sprintf('Start point: (%g,%g)',-1,2),'Color','r','FontSize',12)
figure(2)
contour(x,y,zeros(size(x)),20)
hold on
plot(xopt(1),xopt(2),'-o','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',10)
text(xopt(1)+1,xopt(2)+1,sprintf('Solution: (%g,%g)',xopt(1),xopt(2)),'Color','r','FontSize',12)
drawnow
用户评论