MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB数学相关] 求解非线性约束最优化的变量问题 (https://www.labfans.com/bbs/showthread.php?t=9609)

lzhanjie 2009-09-08 17:37

求解非线性约束最优化的变量问题
 
比如:目标函数为f=x(1)+b*x(2)+x(3)*x(4)+a*x(5)
a=x(1)*x(2)*x(3) b=x(4)*x(5)*a
还有若干约束。
为了说明问题,例子举得简单了些。问题在如何表示a和b这种变量,我matlab比较初级,一开始想将a和b分别表示成x(6)和x(7),给初值迭代,发现结果受初值影响比较大,也就是说初值稍微一变动结果就变,没有求道最优值。后来搜到用globle a b,老是报错,也不清楚错在哪。用persistent行不行?
求教各位大侠。谢谢。

funduck 2009-09-09 21:33

回复: 求解非线性约束最优化的变量问题
 
我一直在研究如何使用优化工具箱的问题,也许我可以帮上忙。但是,你的描述我没看明白。请你把目标函数和约束条件全部都写清楚。


还有,你的a b 什么意思?优化变量到底是x还是 a b?


至于你说global帮助文件写得很清楚,就是在使用之前,无论是主程序还是子函数中,都要声明,才能够是全局变量生效。

lzhanjie 2009-09-10 11:41

回复: 求解非线性约束最优化的变量问题
 
我的模型比较复杂,写出来要很大篇幅。
a,b是我自己表示的过程变量,他们也可以用x(1),x(2)等表示。只是为了表示清楚而且容易检查才这么写的,其实也可以将a,b等代入式子中就没问题了,只不过式子就比较麻烦了。
模型中变量也就10个左右,但这种可以用变量表示的中间变量有50个,以前我把这些中间变量也赋值计算,发现算出的结果不太合理。


所有时间均为北京时间。现在的时间是 11:06

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.