相关疑难解决方法(0)

使用scipy.optimize.curve_fit传递其他参数?

我正在用Python编写一个程序,它将高斯和洛伦兹的形状与某些给定的共振数据相匹配.我最初开始使用scipy.optimize.leastsq但是optimize.curve_fit在从协方差矩阵中检索优化参数中的错误之后变得难以使用.

我已经定义了一个函数来拟合Gaussian和Lorentzian的和:

def mix(x,*p):
    ng = numg
    p1 = p[:3*ng]
    p2 = p[3*ng:]
    a = sumarray(gaussian(x,p1),lorentzian(x,p2))
    return a
Run Code Online (Sandbox Code Playgroud)

其中p是拟合参数的初始猜测数组.以下是使用curve_fit以下方法调用它的实例:

leastsq,covar = opt.curve_fit(mix,energy,intensity,inputtot)
Run Code Online (Sandbox Code Playgroud)

目前numg(高斯形状的数量)是一个全局变量.有没有什么方法可以将它curve_fit作为一个额外的参数纳入,就像可以做到的那样leastsq

python scipy

15
推荐指数
1
解决办法
6859
查看次数

Python 中的傅里叶级数拟合

我有一些数据想要使用二阶、三阶或四阶傅立叶级数进行拟合。

虽然关于堆栈溢出的这个问题和答案接近我想要使用 scipy 做的事情,但他们已经将系数预先定义为 tau = 0.045 。我希望我的拟合能够找到具有 95% 置信区间的可能系数(a0、w1、w2、w3 等),就像傅里叶级数的MATLAB 曲线拟合等效项一样。我看到的另一个选项是使用sympy 中的 fourier_series,但是该函数仅适用于适合定义函数的符号参数,而不适用于原始数据。

1)有没有办法让 sympy fourier_series 接受原始数据而不是函数或使用该库的其他解决方法?

2)或者考虑到存在多个未知数(系数),对数据进行 scipy 曲线拟合

python matlab curve-fitting sympy scipy

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

python ×2

scipy ×2

curve-fitting ×1

matlab ×1

sympy ×1