Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2011-01-31, 13:01   #1
zj201
初级会员
 
注册日期: 2011-01-31
年龄: 40
帖子: 4
声望力: 0
zj201 正向着好的方向发展
默认 求助,fmincon函数报错

各位前辈,本人初次接触matlab,在使用fmincon函数后报告如下错误:
??? Error using ==> fmincon
The constraint function mycon must return two outputs:
the nonlinear inequality constraints and the nonlinear equality constraints.
意思是说我的那个非线性约束函数必须有两个输出值,但是在我的mycon函数里已经有了c和ceq了 为什么还报错呢 请前辈们指教,谢谢了
zj201 当前离线   回复时引用此帖
旧 2011-02-01, 08:33   #2
anbcjys
高级会员
 
注册日期: 2008-09-14
年龄: 43
帖子: 351
声望力: 24
anbcjys 正向着好的方向发展
默认 回复: 求助,fmincon函数报错

约束处理不正确 把约束的方程给出来 以及你写的约束和调用程序。
__________________
qq604443022
anbcjys 当前离线   回复时引用此帖
旧 2011-02-01, 09:00   #3
zj201
初级会员
 
注册日期: 2011-01-31
年龄: 40
帖子: 4
声望力: 0
zj201 正向着好的方向发展
默认 回复: 求助,fmincon函数报错

谢谢楼上,我的约束函数如下:

function [c,ceq]=mycon(x)
x1=x(1);
x2=x(2);
x3=x(3);
x4=x(4);
x5=x(5);
x6=x(6);
x7=x(7);
x8=x(8);
c=[x6+x7+x8+asin((x5-x4*sin(alpha+x6+x7))/x3)-150*pi/180;
asin(x1*sin(x6+x8)-(x1+x2)*sin(x6))-50*pi/180;
x1/x2-0.9;
0.7-x1/x2;
45-sqrt(x1*x1+x4*x4-2*x1*x2*cos(x7));
x5-x4*sin(x6+x7)+x3;
x4*sin(x6+x7)+x1*sin(80*pi/180)-x5;
(275-x4*sin(x6+x7))^2-x3^2;(275-x4*sin(x6+x7+x8))^2-x3^2;
(x1*sin(x7+x8)-(x1+x2)*sin(x7))^2-x2^2];
ceq=[];
调用程序如下:
OPT=optimset;OPT.LargeScale='off';
OPT.TolFun=1e-30;OPT.TolX=1e-15;OPT.Tolcon=1e-20;
x0=[260,370,93.6,173.9,160,0.07152,0.32098,1.8125];
A=[];B=[];Aeq=[];Beq=[];
lb=[0,0,290,0,0,3*pi/180,15*pi/180,90*pi/180];
ub=[290,1e5,1e5,297.5,290,5*pi/180,25*pi/180,110*pi/180];
>> [x,fval,exitflag,output]=fmincon(@fun1,x0,A,B,Aeq,Beq,lb,ub,@mycon,OPT)
zj201 当前离线   回复时引用此帖
旧 2011-02-02, 08:11   #4
zj201
初级会员
 
注册日期: 2011-01-31
年龄: 40
帖子: 4
声望力: 0
zj201 正向着好的方向发展
生气 回复: 求助,fmincon函数报错

我发现好像是alpha没有定义。现在的问题是运行以后不出结果一直busy
zj201 当前离线   回复时引用此帖
旧 2011-02-02, 09:13   #5
anbcjys
高级会员
 
注册日期: 2008-09-14
年龄: 43
帖子: 351
声望力: 24
anbcjys 正向着好的方向发展
默认 回复: 求助,fmincon函数报错

引用:
作者: zj201 查看帖子
我发现好像是alpha没有定义。现在的问题是运行以后不出结果一直busy
是的 需要有数值才行 busy是因为没有找到最优解 可修改初始数值 或者采用其他优化算法 比如遗传粒子群等试验
__________________
qq604443022
anbcjys 当前离线   回复时引用此帖
旧 2011-02-02, 10:07   #6
zj201
初级会员
 
注册日期: 2011-01-31
年龄: 40
帖子: 4
声望力: 0
zj201 正向着好的方向发展
默认 回复: 求助,fmincon函数报错

好的,我大概明白了,非常感谢
zj201 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 22:21


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.