在lsqcurvefit设置精度

6视图(30天)
马可Gaetani d 'Aragona
马可Gaetani d 'Aragona 2020年1月16日
评论道: 马特·J 2020年1月16日
你好,
我想设置输出的精度的有效数字。特别地,我想实现精度为0.01。设置变量的初始值,选择如下:
a0 = (0.01; 0.01; 0.01);
选择= optimoptions (“lsqcurvefit”,“算法”,“levenberg-marquardt”,“MaxFunctionEvaluations”,10000,“MaxIterations”,5000);
磅= [];
乌兰巴托= [];
[ahat, resnorm,残余,exitflag输出,λ,雅可比矩阵)= lsqcurvefit(预测、a0 x, y,磅,乌兰巴托,选项);
例如,输出系数 ahat = (2.002 0.0251 0.1253)
我可以转到指定significan数字优化后回归。然而,我想最初设置精度以达到指定精度的最佳解决方案。
谁能帮我解决这个问题?
谢谢提前

答案(2)

马特·J
马特·J 2020年1月16日
编辑:马特·J 2020年1月16日
你不能做这样的事 lsqcurvefit 。你描述需要重写你的目标函数和边界的不同的参数单位,从而扩展参数(在本例中了100倍),这样你的精度要求就相当于约束整数参数值。您将使用一个优化程序,支持整数约束,等等金宝app ga () 或者 surrogateopt (), 实现最小二乘法最小化。
这些优化往往比非整数约束算法不可靠,所以我倾向于认为你会做,而怀疑权衡除非post-rounding真的,真的无法接受你一些强大的原因。
1评论
马特·J
马特·J 2020年1月16日
这些优化往往比非整数约束算法不可靠,所以我倾向于认为你会做出相当可疑的权衡
尽管如此,你可以试试一个两步细化方法。首先,配合使用 lsqcurvefit post-rounding。那么,precision-constrained优化使用 遗传算法 正如我上面列出,但包括结果 lsqcurvefit 在初始种群。这将大大提高可靠性,我怀疑。

登录置评。


斯宾塞陈
斯宾塞陈 2020年1月16日
查看:
医生optimoptions
我认为这样 OptimalityTolerance 是你正在寻找的。
祝福,
斯宾塞

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!