问题描述
这是我的第一篇文章,所以请不要太苛刻 如果信息不完善。
我是 scipy 的普通用户,我通常用它来拟合.... 我看到有人问过类似的问题,但我真的无法得到 我的头脑围绕这个问题....
这是我试图拟合的函数的(简化版本):
(这里的总和是最大 n 的奇数)
和我的代码:
def func(x,a,b,n_max):
y = 0
for n in np.arange(1,n_max,2):
y =+ 2*a + 4*np.pi * (1/(n*a))*math.exp(n*b*x)
return y
a = 10
n_max = 20
parameters,covariance = curve_fit(lambda x,b: func(x,n_max),x_data,y_data)
它给了我错误: 它给了我错误“类型错误:只有大小为 1 的数组可以转换为 Python 标量”。 我知道这个错误意味着什么,但我不知道如何更正我的代码。
- 我需要计算一个总和....尽管 Stack 上有几个例子,但我不知道如何处理它。用几行来解释它会很棒。
- 参数“a”和“n”应该是我将根据情况提供的固定值。所以不应该对它们进行优化。 (这应该在 curve_fit 中使用 lambda 来解决。)