高斯曲线拟合python
时间: 2023-10-17 07:37:26 浏览: 247
高斯曲线拟合是一种常见的数据拟合方法,可以用来对数据进行参数估计和预测。在Python中,可以使用SciPy库来进行高斯曲线拟合。
下面是一个简单的示例代码,展示了如何使用SciPy库中的curve_fit函数进行高斯曲线拟合:
```python
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
# 定义高斯函数
def gaussian(x, amplitude, mean, stddev):
return amplitude * np.exp(-((x - mean) / stddev) ** 2 / 2)
# 生成测试数据
x = np.linspace(0, 10, 100)
y = gaussian(x, 3, 5, 1.5) + np.random.normal(0, 0.2, x.size)
# 执行拟合
initial_guess = [1,1, 1] # 初始猜测参数
params, _ = curve_fit(gaussian, x, y, p0=initial_guess)
# 绘制原始数据和拟合结果
plt.scatter(x, y, label='Data')
plt.plot(x, gaussian(x, params[0], params[1], params[2]), 'r-', label='Fit')
plt.legend()
plt.show()
# 输出拟合参数
print('Amplitude:', params[0])
print('Mean:', params[1])
print('Standard Deviation:', params[2])
```
在上述代码中,首先定义了一个高斯函数`gaussian`,然后生成了一组测试数据。接下来,调用`curve_fit`函数进行拟合,传入x、y数据以及初始猜测的参数。拟合结果存储在`params`变量中,可以通过索引访问对应的拟合参数。
最后,使用Matplotlib库绘制原始数据和拟合结果,并输出拟合参数。
希望以上代码对你有帮助!如果有任何问题,请随时提问。
阅读全文