gpt4 book ai didi

python - 如何在Python中创建N个指数的函数来拟合数据

转载 作者:行者123 更新时间:2023-11-30 22:33:48 34 4
gpt4 key购买 nike

我正在尝试用 python 编写一段代码,将指数和与某些数据相匹配。不过,我希望能够自由选择使用多少个指数。

def fcn(x,nexp):
return sum(ai * np.exp(-Ei * x) for ai, Ei in range(nexp))

我尝试定义上述内容,然后在 scipy.optimize.curve_fit 中调用它,但收到错误“'int'对象不可迭代”。任何帮助将不胜感激。目前我只是继续定义新函数并添加术语,如下

def f1(t,a1,E1):
return a1*np.exp(-E1*t)


def f2(t,a1,E1,a2,E2):
return a1*np.exp(-E1*t)+a2*np.exp(-E2*t)


def f3(t,a1,E1,a2,E2,a3,E3):
return a1*np.exp(-E1*t)+a2*np.exp(-E2*t)+a3*np.exp(-E3*t)


def f4(t,a1,E1,a2,E2,a3,E3,a4,E4):
return a1*np.exp(-E1*t)+a2*np.exp(-E2*t)+a3*np.exp(-E3*t)+a4*np.exp(-E3*t)

最佳答案

您可以使用一个接受二元组列表的函数(例如 [(a1,E1),(a2,E2 )])然后迭代。

def f(t, lst):
总和 = 0
对于 lst 中的 a、E:
sum += a*np.exp(-E*t)
返回总和
这可以写得更短,为了清楚起见,我一步一步地给出了它。

关于python - 如何在Python中创建N个指数的函数来拟合数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45043667/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com