python高斯函数拟合
时间: 2023-10-11 15:10:23 浏览: 163
在Python中进行高斯函数拟合有多种方法。一种常用的方法是使用scipy库中的curve_fit函数,但这需要手动编写高斯分布的函数表达式,比较繁琐。另一种更方便的方法是使用astropy库提供的高斯拟合包。以下是一个示例使用astropy进行高斯拟合的步骤:
1. 首先导入所需的库:
```python
from astropy.modeling import models, fitting
import numpy as np
import matplotlib.pyplot as plt
```
2. 生成一个高斯的数据作为拟合的输入:
```python
x = np.linspace(0, 1, 100)
y = func_gaosi(x, 0.5, 0.2) # 这里的func_gaosi是生成高斯数据的函数,可以根据需要自定义
y = np.random.normal(0., 0.02, x.shape) # 添加噪声,以模拟真实数据
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
```
3. 使用astropy进行高斯拟合:
```python
g_init = models.Gaussian1D(amplitude=1., mean=0, stddev=1.) # 初始化一个高斯模型
fit_g = fitting.LevMarLSQFitter() # 使用Levenberg-Marquardt最小二乘拟合方法
g = fit_g(g_init, x, y) # 进行拟合
```
通过以上步骤,你可以得到一个经过高斯拟合的曲线模型g,其中包含了拟合的参数。你可以根据需要使用这个模型进行预测、提取拟合曲线的参数等操作。
阅读全文