急!!!!高分求函数最大化问题。希望得到matlab或者lingo程序,请高手指点。 问题见附件。
追问:
非常感谢你的解答,你的解答十分正确。 可是当我把上面式子改为:
max=(2-0.9*x1)*(200-40*x2)*0.4*(1-(3-x1)/0.9*(x2-x1))-0.9*x1*(200-40*x2)*0.04*(1-(3-x1)/0.9*(x2-x1)^2);
(200-80*x2+40*x1)*0.04*(0.9*(x2-x1)-3+x1)+0.08*(3-x1)=0;
20/9>x1;
x2<5;
3<x2;
x1+9*x2>30;
end
改为上述式子时,得到的结果有些不理想。你可以帮我算一下这种情况吗?我给你继续加分。谢谢!!
你把x2的系数改了,相应的系数下,4.068188这个值已经是全局最优解了····这你令x1,x2为其他任意值那么解出来都会比这个值小。
大侠,我是问x1和x2的值哦,你算出的是多少呢?谢谢你哈
X1的值为:2.086678
X2的值为:3.594769
对了,我发现max=这个式子里面-0.9*x1*(200-40*x2)*0.04*(1-(3-x1)/0.9*(x2-x1)^2),后面这个平方是不是应该在括号外面???好晕啊!!!!!
刚才哪个是我搞错了,现在这个对了在出好后面应该打括号,我忘了打了
max=(2-0.9*x1)*(200-40*x2)*0.4*(1-(3-x1)/(0.9*(x2-x1)))-0.9*x1*(200-40*x2)*0.04*(1-(3-x1)/(0.9*(x2-x1)))^2;
(200-80*x2+40*x1)*0.04*(0.9*(x2-x1)-3+x1)+0.08*(3-x1)=0;
20/9>x1;
x2<5;
3<x2;
x1+9*x2>30;
end
结果为:
Global optimal solution found.
Objective value: 2.089767
Extended solver steps: 100
Total solver iterations: 12444
呵呵 ,非常感谢你的帮助。我也是才发现你的这个平方应该打在外面的。好了,最后一个追问,我想知道在括号问题正确后,我最开始的问题的答案是多少??要有x1和x2的取值哦。对你的回答我非常满意,我将再追加给你10分。谢谢哦!
目标值为: 5.490310
X1 1.552565
X2 3.427215
谢谢····
谢谢!你辛苦了~不知道为什么,我用你的程序计算我最开始的问题,得出的结果却是:
x1=0 x2=10.05…………很郁闷,要是你这个结果就好了
呵呵 不管怎样就这样吧 谢谢你哦
谢谢你!你说的这个我也知道 并且试过 发现出现错误 主要原因在于y不是线性的
答案:用lingo求解的,程序如下:
model:
max=(2-0.9*x1)*(200-10*x2)*0.4*(1-(3-x1)/0.9*(x2-x1))-0.9*x1*(200-10*x2)*0.04*(1-(3-x1)/0.9*(x2-x1)^2);
(200-20*x2+10*x1)*0.04*(0.9*(x2-x1)-3+x1)+0.08*(3-x1)=0;
20/9>x1;
x2<20;
3<x2;
x1+9*x2>30;
end
结果为y的最大值为:513.0279
此时x1为:1.981881
x2为:11.00527
希望回答对你有帮助····
其他:lingo中求最大值和最小值比matlab简单多了。在lingo中首先输入max=y(既你要求的方程式),然后再输入你的条件,最后点击一个红色圈圈的按钮就可以了。
上一个:matlab lsqcurvefit 函数的使用
下一个:matlab中找出两个数组相同数据的个数的函数