python 双高斯拟合
时间: 2023-06-29 20:14:34 浏览: 321
pthon 高斯拟合
双高斯拟合也被称为高斯混合模型拟合,它是一种基于统计学的非线性拟合方法,可用于对数据进行建模和预测。在 Python 中,可以使用 scipy 库中的 curve_fit 函数实现双高斯拟合。
以下是一个示例代码:
```python
import numpy as np
from scipy.optimize import curve_fit
def gaussian(x, amplitude, mean, stddev):
return amplitude * np.exp(-((x - mean) / stddev) ** 2)
def bimodal(x, A1, mu1, sigma1, A2, mu2, sigma2):
return gaussian(x, A1, mu1, sigma1) + gaussian(x, A2, mu2, sigma2)
# 生成一些测试数据
x = np.linspace(-5, 5, 500)
y = bimodal(x, 1, -1, 0.5, 0.5, 1, 0.3)
y_noise = 0.2 * np.random.normal(size=x.size)
y += y_noise
# 进行双高斯拟合
p0 = [1, 0, 1, 1, 0, 1] # 初始参数估计值
params, cov = curve_fit(bimodal, x, y, p0=p0)
# 输出拟合结果
print("A1 = {:.3f}, mu1 = {:.3f}, sigma1 = {:.3f}".format(params[0], params[1], params[2]))
print("A2 = {:.3f}, mu2 = {:.3f}, sigma2 = {:.3f}".format(params[3], params[4], params[5]))
```
在上面的示例中,我们首先定义了两个高斯函数 gaussian 和 bimodal,其中 gaussian 表示单个高斯函数,bimodal 表示双高斯函数。然后我们生成了一些测试数据,包含两个高斯峰。最后使用 curve_fit 函数进行双高斯拟合,并输出拟合结果。
阅读全文