如何在python中创建N个指数的函数来适应d

2024-06-23 20:00:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用python编写一个代码,将指数和一些数据相匹配。不过,我想有自由选择多少指数我用。你知道吗

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

我试着定义上面的内容,然后在内部调用它scipy.optimize.curve\u fit曲线拟合但是我得到错误“'int'object is not iterable”。任何帮助都将不胜感激。目前,我只是不断定义新的函数,并添加如下术语

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)

Tags: 代码a2returndefa1np指数a3
1条回答
网友
1楼 · 发布于 2024-06-23 20:00:13

不必将每个a1, E1作为单独的参数传递,您可以让一个函数接受两个元组的列表(例如[(a1,E1),(a2,E2)]),然后遍历。你知道吗

def f(t, lst): sum = 0 for a, E in lst: sum += a*np.exp(-E*t) return sum 这可以写得短一些,为了清楚起见,我一步一步地写了出来。你知道吗

相关问题 更多 >

    热门问题