声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2369|回复: 2

[综合讨论] 如何使用fmincon 函数

[复制链接]
发表于 2007-12-24 22:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
各位学长,我在使用fmincon函数进行有约束非线性优化时,出现以下问题:
不能加入非线性约束条件,一加入,程序就报错,我演算教材上的例子也出现同样问题,比如:
目标函数opt_1.m: function f=myfun(x)
                          f=-x(1)*x(2)*x(3);
非线性约束条件opt_1c.m:
                          function [c,ceq]=mycon(x)
                          ceq=x(2)*x(3)+x(3)*x(1)+x(1)*x(2)-75;
主程序:x0=[4;5;6];
lb=zeros(3,1);
[x,fval,exitflag,output,lambda]=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  ==> [x,fval,exitflag,output,lambda]=fmincon(@opt_1,x0,[],[],[],[],lb,[],@opt_1c)
我不知问题出在哪,望高手指点
回复
分享到:

使用道具 举报

发表于 2007-12-24 23:00 | 显示全部楼层
原帖由 dywang 于 2007-12-24 22:53 发表
各位学长,我在使用fmincon函数进行有约束非线性优化时,出现以下问题:
不能加入非线性约束条件,一加入,程序就报错,我演算教材上的例子也出现同样问题,比如:
目标函数opt_1.m: function f=myfun(x)
   ...

搜索版面成功的示例
发表于 2007-12-25 09:13 | 显示全部楼层
非线性约束条件opt_1c.m:
                          function [c,ceq]=mycon(x)
                          ceq=x(2)*x(3)+x(3)*x(1)+x(1)*x(2)-75;


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

[ 本帖最后由 happy 于 2007-12-25 09:14 编辑 ]

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 17:22 , Processed in 0.069611 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表