我试图在Python中为我的数据拟合曲线,如下所示:
def func(p1,p2,p3,x):
return p1*((p2-x)/p2)^(-p3)
我在另一个函数中调用此函数,并尝试拟合:
f1 = func(p1,p2,p3,x)
popt, pcov = curve_fit(f1, T, Susceptibility)
但Python并不认为p1,p2,p3
是一个合适的参数,因为我收到此错误消息:
global name 'p1' is not defined
答案 0 :(得分:1)
更仔细地阅读the docs,x
应该是第一个参数。您还需要使用函数作为输入而不是它的返回值
def func(x, p1, p2, p3):
return p1*((p2-x)/p2)^(-p3)
popt, pcov = curve_fit(func, T, Susceptibility)