2
我想适合幂律模型(x**m * c)
只有两个数据点找出斜率m
。我正在使用scipy.optimize
中的curve_fit
函数解决此问题。现在,当我运行下面的代码蟒蛇scipy.optimize曲线拟合只有两个点
import numpy as np
from scipy.optimize import curve_fit
func = lambda x, m, c: x**m * c
xdata = np.array([235e6, 610e6])
ydata = np.array([0.077, 0.054])
err = np.array([0.0086, 0.0055])
coeff, var = curve_fit(func, xdata, ydata, sigma=err)
print(coeff, var)
它成功返回的m
即coeff[0]
值。但是var
的值是[[ inf inf] [ inf inf]]
。由于只有两个数据点,是否有任何问题?它无法计算最佳拟合参数值的协方差?那么如何计算m
中的错误?
为什么不是错误而不是'inf'就是'0'呢? – Jayjayyy
即使它没有受到约束,也可以有一个完全适合数据点的模型,这会返回错误“0”。由于不可能计算错误,因此欠约束的问题会返回“inf”错误。 – Conor