我試圖擬合一個函數,它將輸入2個獨立變量x,y和3個參數作爲參數a,b,c。這是我的測試代碼:將參數傳遞給函數進行擬合
import numpy as np
from scipy.optimize import curve_fit
def func(x,y, a, b, c):
return a*np.exp(-b*(x+y)) + c
y= x = np.linspace(0,4,50)
z = func(x,y, 2.5, 1.3, 0.5) #works ok
#generate data to be fitted
zn = z + 0.2*np.random.normal(size=len(x))
popt, pcov = curve_fit(func, x,y, zn) #<--------Problem here!!!!!
但我得到錯誤:「func()需要5個參數(給定51)」。如何正確地傳遞我的參數x,y?
'curve_fit'的文檔是怎麼說'func'參數的?顯然它試圖用51個參數來調用它,所以也許你應該重新閱讀文檔。 – Wes 2012-04-15 17:06:56