Python曲线拟合代码实例
Python曲线拟合代码实例。
1、多项式拟合范例
这里写图片描述
#_*_coding:utf-8_*_
__author__='Alex_XT'
#Pythonimports
importmatplotlib.pyplotasplt
importnumpyasnp
x=np.arange(1,17,1)
y=np.array([4.00,6.40,8.00,8.80,9.22,9.50,9.70,9.86,10.00,10.20,10.32,10.42,10.50,10.55,10.58,10.60])
z1=np.polyfit(x,y,5)#用3次多项式拟合
p1=np.poly1d(z1)
print(p1)#在屏幕上打印拟合多项式
yvals=p1(x)#也可以使用yvals=np.polyval(z1,x)
plot1=plt.plot(x,y,'k.',markersize=16,label='$originalvalues$')
plot2=plt.plot(x,yvals,'r',lw=3,label='$polyfitvalues$')
plt.xlabel('$X$')
plt.ylabel('$Y$')
plt.legend(loc=4)#指定legend的位置,读者可以自己help它的用法
plt.title('polyfitting')
plt.show()
#_*_coding:utf-8_*_
__author__='Alex_XT'
#Pythonimports
importmatplotlib.pyplotasplt
importnumpyasnp
x=[0.0,0.1,0.21,0.30,0.41,0.59,0.62,0.797,0.85,1.0]
y=np.array([1.49,0.9,1.46,0.0,-0.47,0.46,-0.2,-0.22,-1.4,-0.97])
z1=np.polyfit(x,y,10)#用3次多项式拟合
p1=np.poly1d(z1)
print(p1)#在屏幕上打印拟合多项式
yvals=p1(x)#也可以使用yvals=np.polyval(z1,x)
plot1=plt.plot(x,y,'k.',markersize=16,label='originalvalues')
plot2=plt.plot(x,yvals,'r',lw=3,label='overfit')
plot3=plt.plot([0.0,1.0],[1.5,-1.5],'b',label='bestfit')
plt.xlabel('$X$')
plt.ylabel('$Y$')
plt.legend(loc=3)#指定legend的位置,读者可以自己help它的用法
plt.title('polyfitting')
plt.show()
2、指定函数拟合
#_*_coding:utf-8_*_
__author__='Alex_XT'
#Pythonimports
#使用非线性最小二乘法拟合
fromscipy.optimizeimportcurve_fit
importmatplotlib.pyplotasplt
importnumpyasnp
#用指数形式来拟合
x=np.arange(1,17,1)
y=np.array([4.00,6.40,8.00,8.80,9.22,9.50,9.70,9.86,10.00,10.20,10.32,10.42,10.50,10.55,10.58,10.60])
deffunc(x,a,b):
returna*np.exp(b/x)
popt,pcov=curve_fit(func,x,y)
a=popt[0]#popt里面是拟合系数,读者可以自己help其用法
b=popt[1]
yvals=func(x,a,b)
plot1=plt.plot(x,y,'*',label='originalvalues')
plot2=plt.plot(x,yvals,'r',label='curve_fitvalues')
plt.xlabel('xaxis')
plt.ylabel('yaxis')
plt.legend(loc=4)#指定legend的位置,读者可以自己help它的用法
plt.title('curve_fit')
plt.show()
Python培训、Python培训班、Python培训机构,就选光环大数据!
大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服!