大众信息网

MATLAB中非线性最小二乘拟合曲线时OPTIONS中设置参数为什么没有效果呢

关注:134  答案:4  手机版
解决时间 2021-01-08 17:08
MATLAB中使用lsqcurvefit进行非线性最小二乘拟合曲线时,OPTIONS中设置参数为什么没有效果呢?
程序如下:
options=optimset('MaxFunEvals',2*10^(5));
options=optimset('MaxIter',1000);
options=optimset('MaxPCGIter',1000);
options=optimset('TolFun',10^(-3));
[betafit,resnorm]=lsqcurvefit(myfun,beta0,X,y,lb,ub,options)
运行中发现以上设置的OPTIONS参数都没有起作用,有什么问题呢

不会的。我设置的options=optimset('MaxFunEvals',2*10^(5)); 而运行程序结束后经常提示说,拟合超时,不成功,因为已经达到MaxFunEvals,我甚至改到10^(20));,程序还是很快运行结束,仍然提示“已经达到MaxFunEvals”
最佳答案
改成Inf,不过可能是初值选错了
全部回答
也许你设置的参数正好与默认值一致了。
者不可能阿。也许并不是你的optimset的原因,可能是你拟合时数据有问题吧。
最优化终止:变化的相对函数值已小于options.tolfun,一般出现这样的字就是说优化结束了,达到了预定的精度。options.tolfun是控制精度的参数,一般默认的是1.0000e-006,自己也可以进行设置,options = optimset('tolfun',value1).
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!