dywang 发表于 2007-12-24 22:53

如何使用fmincon 函数

各位学长,我在使用fmincon函数进行有约束非线性优化时,出现以下问题:
不能加入非线性约束条件,一加入,程序就报错,我演算教材上的例子也出现同样问题,比如:
目标函数opt_1.m: function f=myfun(x)
                        f=-x(1)*x(2)*x(3);
非线性约束条件opt_1c.m:
                        function =mycon(x)
                        ceq=x(2)*x(3)+x(3)*x(1)+x(1)*x(2)-75;
主程序:x0=;
lb=zeros(3,1);
=fmincon(@opt_1,x0,[],[],[],[],lb,[],@opt_1c)
这是我按书上的例子做的,可是我运行的结果是:
?? Error using ==> fmincon
FMINCON cannot continue because user supplied nonlinear constraint function
failed with the following error:

One or more output arguments not assigned during call to 'feval'.

Error in ==> E:\yi\matlab\optimize_fourbar\opt_1main.m
On line 3==> =fmincon(@opt_1,x0,[],[],[],[],lb,[],@opt_1c)
我不知问题出在哪,望高手指点

eight 发表于 2007-12-24 23:00

原帖由 dywang 于 2007-12-24 22:53 发表 http://www.chinavib.com/forum/images/common/back.gif
各位学长,我在使用fmincon函数进行有约束非线性优化时,出现以下问题:
不能加入非线性约束条件,一加入,程序就报错,我演算教材上的例子也出现同样问题,比如:
目标函数opt_1.m: function f=myfun(x)
   ...
搜索版面成功的示例

happy 发表于 2007-12-25 09:13

非线性约束条件opt_1c.m:
                        function =mycon(x)
                        ceq=x(2)*x(3)+x(3)*x(1)+x(1)*x(2)-75;

至少有一个明显的错误,c没有返回值

[ 本帖最后由 happy 于 2007-12-25 09:14 编辑 ]
页: [1]
查看完整版本: 如何使用fmincon 函数