为什么只有两点的`scipy.optimize.curve_fit`会引发OptimizeWarning:无法估计参数的协方差?

时间:2017-01-15 22:38:24

标签: python numpy scipy curve-fitting covariance

为什么这个简单的适合不起作用?

import numpy as np
from scipy.optimize import curve_fit
exponential = lambda x, a, b: np.exp(a * x + b)
popt, pcov = curve_fit(f=exponential, xdata=[350, 380], ydata=[48, 17], p0=[-0.01, 1])
print("a =", popt[0])
print("b =", popt[1])

输出结果为:

python-3.4.4\lib\site-packages\scipy\optimize\minpack.py:715:
OptimizeWarning: Covariance of the parameters could not be estimated
category=OptimizeWarning)

a = -0.03459958889505575
b = 15.981057124177402

1 个答案:

答案 0 :(得分:1)

它在计算pcov时有效:

  

如果解的雅可比矩阵没有满秩,则'lm'方法返回一个用np.inf填充的矩阵。

您的情况如何,因此您会看到警告消息。