我有數據in.csv文件,它包含2列x和y軸。該軸從.csv文件讀取,然後用伸展的指數函數擬合數據,但顯示錯誤。Reg:拉伸指數函數擬閤中的錯誤
這裏我給示例數據以便於理解。
我的功能是f(x) = a. exp (-b.t)^c + d
。 (拉伸指數擬合)。我想根據這個函數擬合這個數據,我想要a,b,c和d的最終值。
我的編碼是:
# Reading data
x=data[1,2,3,4,5,6,7,8,9,10]
y=data[7.2489, 7.0123, 7.0006, 7.0003, 7, 7, 7, 7, 7, 7]
# Fitting Streched Exponential Decay Curve
smoothx = np.linspace(x[0], x[-1], (5*x[-1]))
guess_a, guess_b, guess_c, guess_d = 4000, -0.005, 4, 4000
guess = [guess_a, guess_b, guess_c, guess_d]
f_theory1 = lambda t, a, b, c, d: a * np.exp((b*t)^(c)) + d
p, cov = curve_fit(f_theory1, x, y, p0=np.array(guess))
f_fit1 = lambda t: p[0] * np.exp((p[1] * t)^((p[2]))) + p[3]
plt.show()
我在這裏只顯示猜測和我的程序的裝配部分。
請在我的代碼中更正錯誤以更好地擬合。
我不知道你正在使用的數據類型,但是''^通常是「按位異或」在Python,而不是冪。如果用**替換它們會發生什麼?另外,當你說「其顯示錯誤」時,錯誤信息到底是什麼? – Kevin
謝謝凱文。我用**代替^。之後,我得到這個錯誤 RuntimeWarning:在權力遇到無效值。 – Vicknesh
錯誤可能是由於您根據負數計算根源所致。我糾正了這一點並在下面添加了一個答案請讓我知道這是否能解決您的問題或是否需要修改答案。 – Cleb