我正在尝试拟合一个函数,该函数以两个独立变量x和y以及三个待定参数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