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