所以我写了一个函数,它是伪voigt行的总和:

def fitfunc(x, vars):
    val = 0
    for key in vars:
        val += psvo(x,*vars[key])
    return val

psvo是我写的伪voigt函数,它接受五个参数(x,sigma,mu,amplitude,alpha),vars是一个包含四个值集的字典 . 这个功能让我可以根据变量中的键数快速计算出我想要的多个voigt峰值的总和 . 我想在optimize.curve_fit中使用它,但找不到一个好方法 . 有没有更好的方法来编写这个函数或更好的方法来适应它?我宁愿尝试同时适应所有峰值,否则会引入错误,因为峰值A的位置会影响峰值B的位置 .