python曲线拟合实现,python多项式拟合曲线方程

  python曲线拟合实现,python多项式拟合曲线方程

  计算机编程语言实现lhdct曲线拟合

  1.目的

  针对光谱离散数据,寻峰完成后截取近的峰值的数据,利用lhdct拟合重绘单峰曲线,进而实现分峰功能

  2.原理

  3.代码

  从数学导入日志中导入numpy作为NP,exp导入matplotlib。作为来自scipy的PLT的py图。优化从scipy导入curve _ fit作为数组作为ar,exp #将文本文件(文本文件)文件读入数组数组yo原创=NP。load txt( C:\工作\数据. txt)#一维数据# yo原创=NP。数组([5.81528 e-05,0.000111682,0.000271214,0.000391546,0.000786933,0.002034528,0.002968284,0.005004177,0.007329225,0.0111111输入数据n ,yo original)average=sum(yo original)/len(yo original)# y=yo original # x=XO original # print(过滤数据n ,y)y=NP。log(y)z矩阵=NP。矩阵(y)打印(取对数n ,y) #构造X矩阵x矩阵=NP。矩阵(NP。形状(NP。连接。one((len(y))),x,x*x)),(3,len(y)))x矩阵=NP。矩阵(x矩阵.t)打印( X矩阵n’,x矩阵)# NP。矩阵。_ _ mul _ _=NP。圆点#重载运算符print(x矩阵* x矩阵)b矩阵=((x矩阵* x矩阵).I * x矩阵)* z矩阵.T#矩阵运算打印( B矩阵n ,bMatrix) b2,b1,b0=float(bMatrix[2][0]),float(bMatrix[1][0]),float(b matrix[0][0])print( B0={ } B1={ } B2={ } .format(b0,b1,B2))s=-1/B2 xMaxi=s * B1/2 yMaxi=exp(B0 xMaxi * * 2/s)print(yMaxi,xMaxi,s)def gaussian(x,* param):return param[0]* NP。exp(-NP。power(x-param[1],2。)/(2 * np.power(param[2],2 .)))#lhdct公式popt,pcov=curve_fit(gaussian,xOriginal,yo original,p0=[yMaxi,xMaxi,s])print(popt)print(pcov)PLT。plot(x原始,yo原始, b:,label= data )PLT。plot(x original,gaussian(xOriginal,*popt), ro:,label=fit)#绘图plt.legend()plt.show() 4 .效果

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: