写在前面,同意楼上杜帅的回答。
我来补充一个傻白甜的答案(图文并茂)。
基本思路:1.绘制三维图形。
2.寻找计算结果里面的最大值(就是楼上的方法,当然也有分布寻找的方法)。
3.在三维图形中标记出来。
贴图和源代码:
图中的红五角星就是找到的最大值(这里有两处,该方法有几个就能找到几个,不受1的限制)。
源代码(Matlab):
clc;
clear all;
close all;
x = -3:0.1:3;
y = -3:0.1:3;
[xx,yy] = meshgrid(x,y);
zz = example(xx,yy);
mesh(xx,yy,zz);
[y_loc,x_loc]=find(zz==max(max(zz))); % mesh命令后,坐标轴发生了旋转
hold on
plot3(x(x_loc),y(y_loc),example(x(x_loc),y(y_loc)),'rp');
hold off
子函数:
function zz = example(xx,yy)
zz = xx.^2+2*yy;
end
备注:需要说明的是,mesh命令后,坐标轴发生了旋转,找到的xy位置是相反的。
补充问个问题(望大佬们回答):在fmincon进行最优化求解的时候,两个参数变量,如何单独分别设置两个参数变量的步长?谢谢。