数据插值

import matplotlib.pyplot as plt
import numpy as np
from scipy import interpolate


x = np.linspace(0, 10, num=11, endpoint=True)
y = np.cos(x)

#分别使用 线性插值,三次样条插值法cubic,拉格朗日插值
def interp():

    f_linear = interpolate.interp1d(x, y)# 线性插值
    f_cubic = interpolate.interp1d(x, y, kind='cubic')#三次样条插值法cubic
    f_lagrange=interpolate.lagrange(x,y)#拉格朗日插值

    xnew = np.linspace(0, 10, num=40, endpoint=True)

    ynew_linear=f_linear(xnew)
    ynew_cubic=f_cubic(xnew)
    ynew_lagrange=f_lagrange(xnew)

    sp1,sp2,sp3=plt.subplot(3,1,1),plt.subplot(3,1,2),plt.subplot(3,1,3)
    sp1.plot(x,y,'o',xnew,ynew_linear,'r--')
    sp1.set_title('linear')
    sp1.legend(['data','linear'],loc='best')

    sp2.plot(x, y, 'o', xnew, ynew_cubic, 'g--')
    sp2.set_title('cubic')
    sp2.legend(['data', 'cubic'], loc='best')

    sp3.plot(x, y, 'o', xnew, ynew_lagrange, 'b--')
    sp3.set_title('lagrange')
    sp3.legend(['data', 'lagrange'], loc='best')

    plt.xlabel('x')
    plt.ylabel('y')

    plt.show()


if __name__ == '__main__':
    interp()

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值