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

请大侠给看看我的程序出的问题:

%目标函数m文件:
function f=fun3(x,r)
f=8/(4.4^2)*x(2)*(x(1)-1)*2/3.14*acos(exp((-1.5)*(22-r)/22/sin(atan((1-x(1))/(0.2*r)/(1+x(2))))))*((0.2*r)^3);

**************************

%约束方程m文件:
function [c,ceq]=mycon(x,r)
c=[];
ceq=x(1)*(1-x(1))*2/3.14*acos(exp((-1.5)*(22-r)/22/sin(atan((1-x(1))/(0.2*r)/(1+x(2))))))-x(2)*(1+x(2))*((0.2*r)^2);

*****************************
命令窗口输入:
for r=0:2:22;
b0=10/4.4*exp(12*r/22);
options = optimset('LargeScale','off'); % run medium-scale algorithm
x = fmincon(@(x)fun3(x,r),[0.1776;b0],[],[],[],[],[],[],
@(x)mycon(x,r),options)
a=x(1);
b=x(2);
disp(['a=',num2str(a),',b=',num2str(b)]);
end
********************
运行结果:
Optimization terminated: first-order optimality measure less
than options.TolFun and maximum constraint violation is less
than options.TolCon.

x =

-0.000000000022446
2.272727272727273

a=-2.2446e-011,b=2.2727
Optimization terminated: first-order optimality measure less than options.TolFun
and maximum constraint violation is less than options.TolCon.

x =

0.323692417924452
0.722322735147062

a=0.32369,b=0.72232
Optimization terminated: first-order optimality measure less than options.TolFun
and maximum constraint violation is less than options.TolCon.

x =

0.343711550580153
0.260882339173652

a=0.34371,b=0.26088
Optimization terminated: magnitude of directional derivative in search
direction less than 2*options.TolFun and maximum constraint violation
is less than options.TolCon.

x =

0.349775935555869
0.132437721439401

a=0.34978,b=0.13244
Optimization terminated: first-order optimality measure less than options.TolFun
and maximum constraint violation is less than options.TolCon.

x =

0.351895342659175
0.079118454212966

a=0.3519,b=0.079118
Optimization terminated: first-order optimality measure less than options.TolFun
and maximum constraint violation is less than options.TolCon.

x =

0.353768090625213
0.052213108339198

a=0.35377,b=0.052213

***************
问题:r从0—22,步长为2,应该出12个结果,但运行后只出来6个,左下角显示continue entering statement,好像是陷入了死循环,估计是程序有漏洞,请大侠给看看,感激不尽啊!我的email:[email protected]

QQ:370154016
lijun19841022 当前离线   回复时引用此帖
回复


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

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



所有时间均为北京时间。现在的时间是 15:48


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