Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2009-08-29
年龄: 40
帖子: 1
声望力: 0 ![]() |
![]()
请大侠给看看我的程序出的问题:
%目标函数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 |
![]() |
![]() |