Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-03-28
年龄: 24
帖子: 6
声望力: 0 ![]() |
![]()
大家好,请教大家一个问题,我在用fmincon函数进行优化,但我的约束条件是非线性的,那我应该怎么写程序啊?
附件是具体的题目,希望大家给些指点。 告诉我方法或类似的例子都行 谢谢各位了 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2009-02-20
年龄: 37
帖子: 4
声望力: 0 ![]() |
![]()
定义非线性约束函数 function [c,ceq]=confun(x)
c=[c1(x)-26800;c2(x)-0.3;c3(x)-60]; ceq=[]; 此函数保存在confun.m文件中 最后在主程序中调用confun(x) [x,fval]=fmincon('objfun',x0,[],[],[],[],[],[],'confun',options); objfun为目标函数,x0为给定的初始值 |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2009-03-28
年龄: 24
帖子: 6
声望力: 0 ![]() |
![]()
真是太感谢了!我用这个方法调试出了结果,但是得出的结果与初始值特别相关,初始值一变,结果变化特别大,能告诉我初始值应该怎么定吗,我好像还不是特别了解初始值的意思
|
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2009-02-20
年龄: 37
帖子: 4
声望力: 0 ![]() |
![]()
初始值的取法我也没解决好,不同的取值可能得到一个局部最优解而不是全局最优解,一般尽量取在最优解附近,要不就多试几次
|
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2009-03-28
年龄: 24
帖子: 6
声望力: 0 ![]() |
![]()
对啊,我刚开始取得时候结果只是和初值特别接近,到后来有时结果都和初值一样了,哎。。。。头疼。。。
|
![]() |
![]() |