matlab二元函数求最大值
想用matalb求二元函数的最大值。我先用diff命令求z关于x,y的偏导数再用fsolve求解方程组,希望得到各驻点的坐标,但一直不成功。z=(294067503786...
想用matalb求二元函数的最大值。我先用diff命令求z关于x,y的偏导数
再用fsolve求解方程组,希望得到各驻点的坐标,但一直不成功。
z=(2940675037869895*x^2)/(288230376151711744*(tanh(2*(x^2 + y^2)^(1/2))*(x^2 + y^2)^(1/2) - (2960289404442881*x^2)/9007199254740992)) + (1046382468744793*x^2)/4503599627370496 - (1290927876507717*y^2)/4503599627370496 - 1558145760697481/144115188075855872;
变量x和y都是在0.2附近。想得到z的最大值,以及x,y的取值。
谢谢。 展开
再用fsolve求解方程组,希望得到各驻点的坐标,但一直不成功。
z=(2940675037869895*x^2)/(288230376151711744*(tanh(2*(x^2 + y^2)^(1/2))*(x^2 + y^2)^(1/2) - (2960289404442881*x^2)/9007199254740992)) + (1046382468744793*x^2)/4503599627370496 - (1290927876507717*y^2)/4503599627370496 - 1558145760697481/144115188075855872;
变量x和y都是在0.2附近。想得到z的最大值,以及x,y的取值。
谢谢。 展开
2个回答
展开全部
在[0,0.4]范围内作图可知x=y=0.2附近并没有驻点,所以如果你不给出x,y的具体区间,则求不出最大值,因为最值显然在边界上取得。
>> f = @(x,y) (2940675037869895*x.^2)./(288230376151711744*(tanh(2*(x.^2 + y.^2).^(1/2)).*(x.^2 + y.^2).^(1/2) - (2960289404442881*x.^2)/9007199254740992)) + (1046382468744793*x.^2)/4503599627370496 - (1290927876507717*y.^2)/4503599627370496 - 1558145760697481/144115188075855872;
>> [x,y]=meshgrid(0:0.005:0.4);
>> mesh(x,y,f(x,y))
>> xlabel('x');ylabel('y');zlabel('z')
追问
谢谢你的回答。我检查了一下,并且化简了,原来的函数表达式有点错误,应该是这样的:
z=(-0.2323*x^2+0.2866*y^2)*(0.2323*x^2-0.2866*y^2+2*(-0.5406)*0.1^2+1.0203*0.1^2*x^2/((x^2+y^2)^0.5*tanh(2*(x^2+y^2)^0.5)-x^2*0.5733^2)) 的最大值,变量x和y都在(0.1, 0.4)之间。求z的最大值,以及x,y的取值。
能否求出来?
东莞大凡
2024-08-07 广告
2024-08-07 广告
作为东莞市大凡光学科技有限公司的一员,我们深知Matlab圆点标定板在相机标定中的重要性。该标定板通过均匀分布的圆点,帮助精确计算相机参数,优化成像效果。Matlab强大的编程功能,使得我们能够灵活设计标定板,调整圆点大小、数量和分布,以满...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询