写在前面,同意楼上杜帅的回答。

我来补充一个傻白甜的答案(图文并茂)。

基本思路: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进行最优化求解的时候,两个参数变量,如何单独分别设置两个参数变量的步长?谢谢。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐