scipy.optimize curve_fit拟合效果佳但标准误差过高求助
磁滞回线线性拟合参数标准误差异常偏高问题
我正在对磁滞回线拟合线性函数:先用ruptures库识别变点以确定线性区域,再使用scipy.optimize.curve_fit()对该区域拟合线性方程,核心代码如下:
#Ausgleichsgeraden berrechnen def fit(x,a,b): return a*x+b #Messung 1 popt_x11, pcov_x11 = curve_fit(fit, Magnet_x11, Kerr_x11) popt_x21, pcov_x21 = curve_fit(fit, Magnet_x21, Kerr_x21) popt_y11, pcov_y11 = curve_fit(fit, Magnet_y11, Kerr_y11) popt_y21, pcov_y21 = curve_fit(fit, Magnet_y21, Kerr_y21)
其中Magnet_x..和Kerr_x..对应曲线线性区域的X、Y轴数据。
目前存在的问题:通过np.sqrt(np.diag(pcov))计算出的参数标准误差,比测量值至少高10倍——尽管拟合直线与数据的契合度视觉上非常好。我已尝试调整拟合范围、排查scipy.optimize相关参数问题,也确认curve_fit不存在未使用参数的情况,但均无成效。
举个实际拟合结果的例子:
- Messung 2: HC_rechts = 4693.0262 +- 36583.3256
- Messung 2: HC_links = -3364.4523 +- 40484.9339
误差范围远超出拟合质量对应的合理区间,现求助该高偏差的成因。
示例数据说明:X轴取第一列数据(无不确定度),Y轴为第三列数据除以2倍第二列数据。
内容的提问来源于stack exchange,提问作者Peter Koch
相关产品推荐
相关产品推荐

