【发布时间】:2012-04-27 04:36:04
【问题描述】:
我正在尝试拟合一个函数,该函数将 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 个参数调用它,所以也许你应该重新阅读文档。
标签: python numpy scipy curve-fitting