利用Python的scipy包实现曲线的拟合

利用Python的scipy包实现曲线的拟合,第1张

概述调用scipy包中的curve_fit,可以根据指定的函数形式,对一组已知自变量和因变量的数据进行曲线拟合。 import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom scipy.optimize import curve_fit# 自定义函数def func(x, a, b):

调用scipy包中的curve_fit,可以根据指定的函数形式,对一组已知自变量和因变量的数据进行曲线拟合。

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom scipy.optimize import curve_fit# 自定义函数def func(x,a,b):    return a*pow(x,b)data = pd.read_excel(rC:\Users\YBM\Desktop\data.xlsx)x = data[x]y = data[y]popt,pcov = curve_fit(x,y)a = popt[0]b = popt[1]yvals = func(x,b)plot1 = plt.plot(x,y,s,label=original values)plot2 = plt.plot(x,yvals,r,label=polyfit values)plt.xlabel(x)plt.ylabel(y)plt.legend(loc=4) # 指定legend的位置在右下角plt.Title(curve_fit)

 

也可以定义三个参数的函数:

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom scipy.optimize import curve_fitdef func(x,b,c):    return a * np.exp(-b * x) + cxdata = np.linspace(0,4,50)y = func(xdata,2.5,1.3,0.5)y_noise = 0.2 * np.random.normal(size=xdata.size)ydata = y + y_noiseplt.plot(xdata,ydata,b-,label=data)popt,pcov = curve_fit(func,xdata,ydata)a = popt[0]b = popt[1]c = popt[2]yvals = func(xdata,c)plot1 = plt.plot(xdata,label=original values)plot2 = plt.plot(xdata,label=polyfit values)# 或:plt.plot(xdata,func(xdata,*popt),r-,label=fit)# 限制参数范围:0<a<3,0<b<20<c<1popt,pcov = curve_fit(func,bounds=(0,[3.,2.,1.]))plt.plot(xdata,label=fit)
总结

以上是内存溢出为你收集整理的利用Python的scipy包实现曲线的拟合全部内容,希望文章能够帮你解决利用Python的scipy包实现曲线的拟合所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1191791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存