我想用一個常數pw
擬合指數函數y=x ** pw
來適應兩個數據點。 scipy
curve_fit
函數應優化adj1
和adj2
。我已經嘗試了下面的代碼,但無法使其工作。曲線不通過數據點。我該如何解決它?用scipy通過兩個數據點擬合指數函數curve_fit
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
def func(x, adj1,adj2):
return np.round(((x+adj1) ** pw) * adj2, 2)
x = [0.5,0.85] # two given datapoints to which the exponential function with power pw should fit
y = [0.02,4]
pw=15
popt, pcov = curve_fit(func, x, y)
xf=np.linspace(0,1,50)
plt.figure()
plt.plot(x, y, 'ko', label="Original Data")
plt.plot(xf, func(xf, *popt), 'r-', label="Fitted Curve")
plt.show()
lmfit是一個真正偉大的工具,並在幾個案件工作,在那裏SciPy的失敗(限定或限制本地解算器) – Moritz