首页 > 编程知识 正文

高斯曲线拟合优点,高斯曲线拟合迭代次数对比

时间:2023-05-03 12:51:16 阅读:230294 作者:2539

一、fzdfbx函数

a表示得到曲线的高度,b是指曲线在x轴的中心,c指width(与半峰全宽有关),图形如下:

fzdfbx拟合(Gaussian Fitting)即使用形如:

Gi(x)=Ai*exp((x-Bi)2/Ci2)

的fzdfbx函数对数据点集进行函数逼近的拟合方法。

其实可以跟多项式拟合类比起来,不同的是多项式拟合是用幂函数系,
而fzdfbx拟合是用fzdfbx函数系。

使用fzdfbx函数来进行拟合,优点在于计算积分十分简单快捷。


二、多fzdfbx拟合

import numpy as npimport pylab as plt#import matplotlib.pyplot as pltfrom scipy.optimize import curve_fitfrom scipy import asarray as ar,exp x = ar(range(10))y = ar([0,1,2,3,4,5,4,3,2,1]) def gaussian(x,*param): return param[0]*np.exp(-np.power(x - param[2], 2.) / (2 * np.power(param[4], 2.)))+ param[1]*np.exp(-np.power(x - param[3], 2.) / (2 * np.power(param[5], 2.))) popt,pcov = curve_fit(gaussian,x,y,p0=[3,4,3,6,1,1])print poptprint pcov plt.plot(x,y,'b+:',label='data')plt.plot(x,gaussian(x,*popt),'ro:',label='fit')plt.legend()plt.show()

运行结果:

[ 4.68035609 0.36961389 4.94329154 8.34528036 2.13310944 0.67913747][[ 0.03858998 0.02308755 -0.00386378 0.01181436 -0.0162972 -0.00306613] [ 0.02308755 0.22679753 -0.04375697 -0.0531039 -0.05173268 0.00435262] [-0.00386378 -0.04375697 0.04252537 0.11052757 0.03062613 -0.24351661] [ 0.01181436 -0.0531039 0.11052757 0.81824277 0.08714636 -0.87927837] [-0.0162972 -0.05173268 0.03062613 0.08714636 0.03972189 -0.20849818] [-0.00306613 0.00435262 -0.24351661 -0.87927837 -0.20849818 2.47203996]]

参考博客:
https://blog.csdn.net/zhangap123/article/details/76673689

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。