Matlab提示 Optimization terminated:magnitude of search directi
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/31 23:09:54
Matlab提示 Optimization terminated:magnitude of search direction less than 2*options.T
第一个M文件
function [c,ceq]=opt_con1(x)
ceq=[x(1)-0.0548*x(4)/1.205;
x(2)-2.84*50*x(5)/1028/0.6/1;
x(6)-0.00153*x(5)*(x(7)-x(8));
x(4)-x(6)/((1-0.82)*(1-0.82));
x(3)-x(6)*4/(4-1);
x(7)-x(9);
x(8)-x(10);
x(11)-1000/4.3/1000/(80+60-2*x(10)-2*1000/700/45);
x(5)-x(6)];
c=[];
第二个M文件
y=@(x)((x(1)+x(2))*1.2+6*x(3))*7500;
ff=optimset;
ff.LargeScale='off';
%ff.Algorithm='off';
ff=optimset('largescale','off','Algorithm','active-set');
ff.TolFun=1e-30;
ff.TolX=1e-15;
ff.TolCon=1e-20;
A=[];
B=[];
Aeq=[];
Beq=[];
x0=[10;10;10;10;10;10;10;10;10;10;10];
xm=[0;0;0;0;0;0;0;19.9;0;0];
xM=[];
[x,f_opt,c,d]=fmincon(y,x0,A,B,Aeq,Beq,xm,xM,@opt_con1,ff);
错误提示:
Optimization terminated:magnitude of search direction less than 2*options.TolX
and maximum constraint violation is less than options.TolCon.
Active inequalities (to within options.TolCon = 1e-020):
lower upper ineqlin ineqnonlin
1
2
3
4
5
6
第一个M文件
function [c,ceq]=opt_con1(x)
ceq=[x(1)-0.0548*x(4)/1.205;
x(2)-2.84*50*x(5)/1028/0.6/1;
x(6)-0.00153*x(5)*(x(7)-x(8));
x(4)-x(6)/((1-0.82)*(1-0.82));
x(3)-x(6)*4/(4-1);
x(7)-x(9);
x(8)-x(10);
x(11)-1000/4.3/1000/(80+60-2*x(10)-2*1000/700/45);
x(5)-x(6)];
c=[];
第二个M文件
y=@(x)((x(1)+x(2))*1.2+6*x(3))*7500;
ff=optimset;
ff.LargeScale='off';
%ff.Algorithm='off';
ff=optimset('largescale','off','Algorithm','active-set');
ff.TolFun=1e-30;
ff.TolX=1e-15;
ff.TolCon=1e-20;
A=[];
B=[];
Aeq=[];
Beq=[];
x0=[10;10;10;10;10;10;10;10;10;10;10];
xm=[0;0;0;0;0;0;0;19.9;0;0];
xM=[];
[x,f_opt,c,d]=fmincon(y,x0,A,B,Aeq,Beq,xm,xM,@opt_con1,ff);
错误提示:
Optimization terminated:magnitude of search direction less than 2*options.TolX
and maximum constraint violation is less than options.TolCon.
Active inequalities (to within options.TolCon = 1e-020):
lower upper ineqlin ineqnonlin
1
2
3
4
5
6
这个提示并不意味着出错.
你可以查看fmincon的退出代码(一般用符号exitflag,你用的是c),值为4.只有有效集算法(active-set )算法才可能得到代码4和5.该代码的常见数值及含义如下(抄来的,由MATLAB官方文档翻译的,但译得不算好,不过我也不能译得更好>___<):
1、一阶最优性条件满足容许范围
2、X的变化小于容许范围
3、目标函数的变化小于容许范围
4、重要搜索方向小于规定的容许范围,并且约束违背小于options.TolCon
5、重要方向导数小于规定的容许范围,并且约束违背小于options.TolCon
0、到达最大迭代次数或到达函数评价
-1、算法由输出函数终止
-2、无可行点
看起来有点晕,但大致上可以总结如下(这段是自己总结的,不保证正确):
正数代表可能是一个最优点(如果值为1可以确定,其他值表示虽然不能确定,但该算法无法进一步找到更好的点);
负数代表优化失败或被终止;
0代表算法还可以进一步运行,但受迭代次数限制而终止.
也就是说,你现在得到的退出代码为4,应该很可能是一个最优点——注意,这里说到的所谓“最优点”,都是局部意义的.fmincon任何情况下都不不能保证找到的是全局最优点.所以,通过优化函数求解之后,一般还要对结果进行分析.
例如,对于你现在的这个问题而言,很容易看出,在满足约束条件的情况下,x1-x3应该取尽量小的值,而从优化结果看,的确在你要求的精度意义上是满足的,而约束条件也都满足,所以,实际上优化是成功的.
再问: 不懂你在说什么啊?能通俗点解释一下吗?谢谢
再答: 我说的很清楚了吧:1、这个并非【错误提示】,而是关于fmincon优化结束原因的信息。2、关于优化结束的的原因,想要真正搞明白并不容易。3、可以根据退出代码exitflag(你的程序中用的返回变量是c)大致判断结束的原因。4、你现在的结束代码是正数4,一般性的判断是优化可能是成功的。5、fmincon得到的结果只是局部最优的,不能保证全局最优。6、就你的具体问题而言,现在的结果是正确的,是全局最优点。
再问: 我这个4和c写在了那里?别笑话我啊
再答: 第二个M文件最后一句:[x,f_opt,c,d]=fmincon(y,x0,A,B,Aeq,Beq,xm,xM,@opt_con1,ff);
如果你把结果显示出来,就会知道c=4.
你可以查看fmincon的退出代码(一般用符号exitflag,你用的是c),值为4.只有有效集算法(active-set )算法才可能得到代码4和5.该代码的常见数值及含义如下(抄来的,由MATLAB官方文档翻译的,但译得不算好,不过我也不能译得更好>___<):
1、一阶最优性条件满足容许范围
2、X的变化小于容许范围
3、目标函数的变化小于容许范围
4、重要搜索方向小于规定的容许范围,并且约束违背小于options.TolCon
5、重要方向导数小于规定的容许范围,并且约束违背小于options.TolCon
0、到达最大迭代次数或到达函数评价
-1、算法由输出函数终止
-2、无可行点
看起来有点晕,但大致上可以总结如下(这段是自己总结的,不保证正确):
正数代表可能是一个最优点(如果值为1可以确定,其他值表示虽然不能确定,但该算法无法进一步找到更好的点);
负数代表优化失败或被终止;
0代表算法还可以进一步运行,但受迭代次数限制而终止.
也就是说,你现在得到的退出代码为4,应该很可能是一个最优点——注意,这里说到的所谓“最优点”,都是局部意义的.fmincon任何情况下都不不能保证找到的是全局最优点.所以,通过优化函数求解之后,一般还要对结果进行分析.
例如,对于你现在的这个问题而言,很容易看出,在满足约束条件的情况下,x1-x3应该取尽量小的值,而从优化结果看,的确在你要求的精度意义上是满足的,而约束条件也都满足,所以,实际上优化是成功的.
再问: 不懂你在说什么啊?能通俗点解释一下吗?谢谢
再答: 我说的很清楚了吧:1、这个并非【错误提示】,而是关于fmincon优化结束原因的信息。2、关于优化结束的的原因,想要真正搞明白并不容易。3、可以根据退出代码exitflag(你的程序中用的返回变量是c)大致判断结束的原因。4、你现在的结束代码是正数4,一般性的判断是优化可能是成功的。5、fmincon得到的结果只是局部最优的,不能保证全局最优。6、就你的具体问题而言,现在的结果是正确的,是全局最优点。
再问: 我这个4和c写在了那里?别笑话我啊
再答: 第二个M文件最后一句:[x,f_opt,c,d]=fmincon(y,x0,A,B,Aeq,Beq,xm,xM,@opt_con1,ff);
如果你把结果显示出来,就会知道c=4.
matlab中用linprog函数提示Optimization terminated怎么解?
Magnitude of DFT在Matlab中是什么意思
MATLAB 中magnitude什么意思?
英语翻译magnitude of voltage?
order of magnitude是什么意思
search \in search of
英语翻译Search Engine Optimization And Magic Fairy DustI used th
an order of magnitude是什么意思
英语翻译Exploitational optimization.After completion of technolo
Optimization of Construction Projects Safety Management是什么意思
下面java代码运行时提示search():This method must return a result of ty
search for和in search of