![]() |
求解非线性约束最优化的变量问题
比如:目标函数为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行不行? 求教各位大侠。谢谢。 |
回复: 求解非线性约束最优化的变量问题
我一直在研究如何使用优化工具箱的问题,也许我可以帮上忙。但是,你的描述我没看明白。请你把目标函数和约束条件全部都写清楚。
还有,你的a b 什么意思?优化变量到底是x还是 a b? 至于你说global帮助文件写得很清楚,就是在使用之前,无论是主程序还是子函数中,都要声明,才能够是全局变量生效。 |
回复: 求解非线性约束最优化的变量问题
我的模型比较复杂,写出来要很大篇幅。
a,b是我自己表示的过程变量,他们也可以用x(1),x(2)等表示。只是为了表示清楚而且容易检查才这么写的,其实也可以将a,b等代入式子中就没问题了,只不过式子就比较麻烦了。 模型中变量也就10个左右,但这种可以用变量表示的中间变量有50个,以前我把这些中间变量也赋值计算,发现算出的结果不太合理。 |
所有时间均为北京时间。现在的时间是 11:06。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.