编写一段高斯函数拟合相关代码
时间: 2024-11-29 19:38:14 浏览: 8
当然,下面是一个简单的Python代码示例,使用scipy库中的`curve_fit`函数来实现一维数据的高斯函数拟合:
```python
from scipy.optimize import curve_fit
import numpy as np
# 定义高斯函数
def gaussian(x, A, mu, sigma):
return A * np.exp(-((x - mu) ** 2 / (2 * sigma ** 2)))
# 假设我们有如下数据(真实数据需替换)
data = np.array([10, 9, 11, 13, 10, 8, 12, 14, 10, 7])
mean_data = data.mean() # 数据集平均值,作为初始猜测的μ
std_dev_data = data.std() # 数据集标准差,作为初始猜测的σ
initial_guess = [np.max(data), mean_data, std_dev_data] # 初始拟合参数
# 使用高斯函数拟合数据
params, _ = curve_fit(gaussian, data, data, p0=initial_guess)
# 输出拟合结果
A, mu, sigma = params
fit_curve = gaussian(np.arange(min(data), max(data)), A, mu, sigma)
print(f"拟合参数:A={A:.2f}, μ={mu:.2f}, σ={sigma:.2f}")
print(f"拟合曲线:{fit_curve}")
# 相关问题--
1. 这段代码适用于哪种类型的高斯拟合?
2. 如何改进初始猜测以提高拟合效果?
3. `curve_fit`返回的 `_` 代表什么?
```
注意,实际使用时需要将上述代码中的数据替换为你实际想要拟合的数据。
阅读全文