首页 > 解决方案 > scipy.optimize.curve_fit 返回 inf pcov

问题描述

我使用curve_fit来拟合一条非常简单的线,如下代码:

from scipy.optimize import curve_fit

def func(x, a, b):
    return a * x + b

x = [6.6000000000000005, 7.599]
y = [123.9835274456227, 144.9319749893788]

popt, pcov = curve_fit(func,x,y,method='dogbox',p0=[20,-15])
print(popt) # get [ 20.96941696 -14.4146245 ]
print(pcov) # get [[inf inf], [inf inf]]

但是 pcov 结果是 inf。如何获得正确的 pcov 值?

标签: pythonscipyscipy-optimize

解决方案


结果应该没有值,因为两点拟合曲线应该没有参数错误。所以参数的协方差为零。


推荐阅读