加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

python之数值计算库——Scipy (三)补充

(2016-10-23 00:36:50)
分类: python
刚学完样条插值,简直痛心,scipy的interpolate库提供了好多的插值函数,我把链接放在这(实在不喜欢看英文。。。):各种插值函数。。。
   讲一个简单的线性插值和B_Spline插值吧,所谓线性插值,两点成一条直线呗。至于B_Spline样条插值,简单的说点,先是有分段插值,因为并不是次数越高插值误差越小,但是分段的毛病是拟合的曲线好不光滑。。所以样条插值其实是分段插值,不过是光滑的分段插值。至于B_Spline,我说贝塞尔就不陌生了吧,样条插值还是很好理解的,给个链接吧(度娘的。。)样条插值
  好了,上代码了:
#linear interpolation and B_spline interpolation
import numpy as np
import pylab as pl
from scipy import interpolate

x=np.linspace(0,2*np.pi,10)
y=np.sin(x)

x_new=np.linspace(0,2*np.pi,100)
y_linear=interpolate.interp1d(x,y)#这里的y_linear已经是插值后的结果了

tck=interpolate.splrep(x,y) #这个必须有,splrep()的结果作为splev()的第二个参数
y_spline=interpolate.splev(x_new,tck)

pl.plot(x,y,'r*',markersize=20,label='original data')
pl.plot(x_new,y_linear(x_new),'g',linewidth=3,label='linear interpolation')
pl.plot(x_new,y_spline,'k',linewidth=3,label='B_spline interpolation')
pl.legend()
pl.show()

http://s12/mw690/004igrvszy75PoAlg3peb&690(三)补充" TITLE="python之数值计算库——Scipy (三)补充" />

我觉得有个博客写这个插值的很不错:python.scipy.interpolate
写程序改个线条宽度都不知道参数名markersize和linewidth,也是醉了。。。
睡觉了!

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有