python高斯函数拟合,python拟合曲线求方程
有很多方法可以将高斯函数拟合到数据集。我经常在拟合数据时使用天文望远镜,这就是为什么我想添加这个作为额外的答案。
我使用的一些数据集应该模拟高斯噪声:将数组作为铭牌导入
从天文望远镜导入建模
m=modeling.models.Gaussian1D(振幅=10,平均值=30,标准差=5)
x=np.linspace(0,100,2000)
数据=m(x)
数据=数据NP。sqrt(数据)* NP。随机的。随机(x .尺寸)-0.5
data -=data.min()
plt.plot(x,数据)
然后拟合它实际上非常简单,您可以指定要拟合数据的模型和拟合者:钳工=建模。试衣。levmarlsqfitter()
模型=建模。模特。高斯1d()#根据数据你需要给出一些初始值
fitted_model=fitter(模型,x,数据)
并绘制:plt.plot(x,data)
plt.plot(x,拟合_模型(十))
不过,也可以只使用Scipy,但必须自己定义函数:从科学计算导入优化
def高斯(x,振幅,平均值,标准差):
返回幅度* NP。指数(-((x-均值)/4/标准偏差)* * 2)
popt,_=optimize.curve_fit(高斯,x,数据)
这将返回拟合的最佳参数,您可以这样绘制:plt.plot(x,data)
plt.plot(x,gaussian(x,*popt))
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。