如何通过astropy的LevMarLSQFitter判断拟合是否收敛?
获取LevMarLSQFitter拟合的收敛状态参数
你可以直接从LevMarLSQFitter实例的fit_info字典中提取ier和mesg参数,这两个值正是内部调用scipy.optimize.leastsq返回的结果:
# 执行你的拟合代码 fit_something = fitting.LevMarLSQFitter() fitted = fit_something(initial_guess_and_model, x, y, acc=accuracy, maxiter=maximumum_iterations) # 提取收敛相关参数 ier_code = fit_something.fit_info['ier'] converge_msg = fit_something.fit_info['mesg']
补充说明:
fit_info字典还包含其他拟合细节,比如nfev(总迭代次数)、cov_x(参数协方差矩阵)等。- 判断收敛状态:根据scipy的规则,当
ier_code取值为1、2、3、4时,代表拟合成功收敛;其他数值对应不同的未收敛场景(比如迭代次数耗尽、参数超出边界等),converge_msg会给出对应的具体描述。
内容的提问来源于stack exchange,提问作者Claudio Pedrazzi
相关产品推荐
相关产品推荐

