Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2009-09-08
帖子: 2
声望力: 0 ![]() |
![]()
比如:目标函数为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行不行? 求教各位大侠。谢谢。 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2009-03-05
年龄: 43
帖子: 1
声望力: 0 ![]() |
![]()
我一直在研究如何使用优化工具箱的问题,也许我可以帮上忙。但是,你的描述我没看明白。请你把目标函数和约束条件全部都写清楚。
还有,你的a b 什么意思?优化变量到底是x还是 a b? 至于你说global帮助文件写得很清楚,就是在使用之前,无论是主程序还是子函数中,都要声明,才能够是全局变量生效。 |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2009-09-08
帖子: 2
声望力: 0 ![]() |
![]()
我的模型比较复杂,写出来要很大篇幅。
a,b是我自己表示的过程变量,他们也可以用x(1),x(2)等表示。只是为了表示清楚而且容易检查才这么写的,其实也可以将a,b等代入式子中就没问题了,只不过式子就比较麻烦了。 模型中变量也就10个左右,但这种可以用变量表示的中间变量有50个,以前我把这些中间变量也赋值计算,发现算出的结果不太合理。 |
![]() |
![]() |