请高手帮助求解Matlab最优化问题- 极值问题- Monte Carlo方法。希望得到你的答案以及代码,急!不胜感激!

目标函数:maxf=[1125,1476]X1+[765,1194.8]x2限制条件:X1+X2<=1200;[4.3,5.2]X1+[3.2,3.6]X2<=[3730... 目标函数:max f=[1125, 1476]X1+[765,1194.8]x2
限制条件:X1+X2<=1200;
[4.3, 5.2]X1+[3.2, 3.6]X2 <= [3730, 4414];
[0.42, 0.48]X1+[0.27, 0.32]X2 <=[341, 379];
X1, X2>=0;

请用 Monte Carlo 方法模拟五百万次,求出目标函数的最大、最小值。
很感谢一楼给出的答案,但是这答案并不能解决问题,所以追加悬赏,继续求助!
展开
 我来答
wacs5
2011-02-18 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2817万
展开全部
N=5000000;
x1=1200*rand(N,1);
x2=1200*rand(N,1);

index=find(x1+x2<=1200 & 4.3*x1+3.2*x2<=3730 & 5.2*x1+3.6*x2<=4414 & 0.41*x1+0.27*x2<=341 & 0.48*x1+0.32*x2<=279);
%xx1和xx2是满足限制条件的集合
xx1=x1(index);
xx2=x2(index);

%目标函数(你给的是多目标,我不知道如何处理,我只选第一个目标函数)
ff1=1125*xx1+765*xx2;

%min
[minf1,minindex1]=min(ff1);
minx1=xx1(minindex1);
minx2=xx2(minindex1);
%依次是x1,x2,f
[minx1,minx2,minf1]

%max
[maxf1,maxindex1]=max(ff1);
maxx1=xx1(maxindex1);
maxx2=xx2(maxindex1);
%依次是x1,x2,f
[maxx1,maxx2,maxf1]

==================
当然多目标函数极值问题,我虽然没有弄过。
但是如果是单目标函数的话,我可以确定是上面这样的。
你这个问题的最小值为0,你用MC方法,想得到这个值是相当困难的。

500000对随机数,经过约束条件筛选,只有17%左右符合。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式