目标函数有两个未知变量,怎么用matlab求最优解?

以上这个式子比较复杂,未知变量Q和p的约束条件都是大于零,求Z最大值时的最优解,有哪位大神可以提供matlab或者Lingo的求解程序给我,不胜感激!... 以上这个式子比较复杂,未知变量Q和p的约束条件都是大于零,求Z最大值时的最优解,有哪位大神可以提供matlab或者Lingo的求解程序给我,不胜感激! 展开
 我来答
tianxiawulang
2015-05-10 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2577万
展开全部

参考代码(里面有些系数请再仔细检查,我虽已尽量小心,但不敢保证录入无误):

z = @(x)(1.8-x(1))/400*x(2)^2 + (-1.8*x(1)^2+146.24*x(1)-1270)/50*x(2) ...
    +(-3.24*x(1)^3+262.872*x(1)^2-3771*x(1)-82375)/100;
x = fmincon(@(x)-z(x),[0 0],[],[],[],[],[0 0])

得到的结果为:

x =
   35.6887  195.5207

其中第一个值为p,第二个为Q。目标函数为:

>> z(x)
ans =
  2.9446e+003

需要注意的是初值的选择需要慎重,选择不当很容易落在局部最优点(0,0)处。

 

优化结果绘制二维图如下:

h=ezmesh(@(p,Q)arrayfun(@(x1,x2)z([x1,x2]),p,Q),[0 50 0 300]);
set(h,'edgealpha',0.2)
hold on
plot3(x(1),x(2),z(x),'rp')
view(-20,6)
hold off

这里需要注意,ezmesh那句不能简单写成ezmesh(@(x1,x2)z([x1 x2])),因为匿名函数z不支持向量运算。

N_0_1
高粉答主

2015-10-31 · 关注我不会让你失望
知道大有可为答主
回答量:8628
采纳率:47%
帮助的人:806万
展开全部
问题主要是三角形隶属函数参数的确定问题,具体是如何求出第1张图中t1和t2。第1张图是一个三角形隶属函数,其函数的形式为图2所示,目的是求使图3所示的函数达到最小值时的t1和t2的值,t1和t2的取值范围是(8.8,16.8)和(16.8,31.3),x取值为一系列离散值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式