curve_fit拟合高斯函数
时间: 2023-09-10 09:05:38 浏览: 112
使用Python中的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)
# 创建数据
x = np.linspace(-5, 5, num=100)
y = gaussian(x, 2.5, 0.5, 1.2) + np.random.normal(size=x.size)
# 使用curve_fit进行高斯函数拟合
popt, pcov = curve_fit(gaussian, x, y, p0=[1, 0, 1])
# 绘制图形
plt.plot(x, y, 'b-', label='data')
plt.plot(x, gaussian(x, *popt), 'r-', label='fit')
plt.legend()
plt.show()
```
在该代码中,我们首先定义了高斯函数。然后我们创建了一些带有噪声的数据,并使用`curve_fit`函数拟合高斯函数。`curve_fit`函数需要传递三个参数:待拟合函数、自变量和因变量。我们还可以传递一个可选参数:初始拟合参数。在这里,我们将初始拟合参数设置为`[1, 0, 1]`。`curve_fit`函数返回两个值:拟合参数和协方差矩阵。在代码的最后,我们绘制了原始数据和拟合曲线。
阅读全文