全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
1316 3
2009-08-09
我自定义了三个函数,one(x1),two(x2), three(x3),
现知道x1+x2+x3=66501.807,且,x1,x2,x3均大于0,如何用MATLAB求m=one(x1)+two(x2)+three(x3)的最大值?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2009-8-9 19:46:00
我不懂MATLAB,不过这不就是求两元函数的极值问题吗?
x3 可以用 x1,x2消去。。然后就 m = f(x1,x2) 了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-8-9 19:53:17
因为函数很复杂,我只能用插值法求出函数值,没法得到函数式
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-8-9 23:14:44
用fmincon函数,在你的目标函数前面加个负号,求出来的极小就是你要的极大。
也可以将X3用X1,X2代入,可以用无约束的函数fminunc来求解。
是否能收敛到全局最小,要看你的函数了。Matlab全局搜索能力比较差的。。。
另一种方法,如果你知道X1,X2的大致范围的话,可以先生成网格,画出目标函数值曲面来,这样最大值一目了然!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群