在尝试使指数适合数据时,scipy.optimize.curve_fit会返回TypeError
x = np.array([0.,1200.02220551,3600.06661654,6000.11102756,8400.15543858,10800.19984961])
y = np.array([0.51057636,0.63187347,0.72030091,0.75168574,0.79036657,0.81551974])
def f(x,p1,p2):
p1*np.exp(x*p2)
popt, pcov = curve_fit(f, x, y)
不幸的是,这会返回以下错误:
TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
对此出现问题的任何建议都将不胜感激。
答案 0 :(得分:0)
f
需要返回其结果。
def f(x,p1,p2):
return p1*np.exp(x*p2)
注意:如果您收到不同的错误(未找到最佳参数),请不要感到惊讶。数据看起来是对数而不是指数。切换x和y(curve_fit(f, y, x)
)可能与指数函数一起使用。