【发布时间】:2016-02-24 10:04:00
【问题描述】:
我在 java 中使用非线性最小二乘 Levenburg Marquardt 算法来拟合许多指数曲线 (A+Bexp(Cx))。尽管数据非常干净并且与模型具有良好的近似性,但即使迭代次数过多(5000-6000),算法也无法对其中的大多数进行建模。对于它可以建模的曲线,它需要大约 150 次迭代。
LeastSquaresProblem problem = new LeastSquaresBuilder()
.start(start).model(jac).target(dTarget)
.lazyEvaluation(false).maxEvaluations(5000)
.maxIterations(6000).build();
LevenbergMarquardtOptimizer optimizer = new LevenbergMarquardtOptimizer();
LeastSquaresOptimizer.Optimum optimum = optimizer.optimize(problem);}
我的问题是如何在 apache commons 中定义收敛标准以阻止它达到最大迭代次数?
【问题讨论】:
-
不可能 - 这取决于您的数据和您最初的猜测。
-
查看编辑,我并不是说给我一个更确切的解决方案,更像是一些 java 技术帮助!
标签: java apache-commons least-squares