python时间序列进行线性插值_精解Python实现线性插值法——一看就会

689eb59b3b702bc5938429d1d7c3f4bd5ea.gif

19d01b69694c090fc6943f7f63bc08548a8.png

(转载作者请注明出处)

废话不多说,直接上货....

7b1129f53b32b71142fb5fb657e42329807.jpg

20621e6050679b40c76c44fbbdcfeb15bc3.jpg

在算法分析过程中,我们经常会遇到数据需要处理插值的过程,为了方便理解,我们这里给出相关概念和源程序,希望能帮助到您!

案例一:

已知坐标 (x0, y0) 与 (x1, y1),要求得区间 [x0, x1] 内某一点位置 x 在直线上的y值。两点间直线方程,我们有

e4be0f079722cbb3da22f75456e0cff61cd.jpg

那么,如何实现它呢?

依据数值分析,我们可以发现存在递归情况

import matplotlib.pyplot as plt

"""

详细描述;

1)计算n阶差商 f[x0, x1, x2 ... xn]

2) xi 所有插值节点的横坐标集合 o

3) fi 所有插值节点的纵坐标集合 / \

4) 返回xi的i阶差商(i为xi长度减1) o o

5) a. 必须确保xi与fi长度相等 / \ / \

b. 由于用到了递归,所以留意不要爆栈了. o o o o

c. 递归减递归(每层递归包含两个递归函数), 每层递归次数呈二次幂增长,总次数是一个满二叉树的所有节点数量(所以极易栈溢出)

"""

def get_order_diff_quot(xi = [], fi = []):

if len(xi) > 2 and len(fi) > 2:

return (get_order_diff_quot(xi[:len(xi) - 1], fi[:len(fi) - 1]) - get_order_diff_quot(xi[1:len(xi)], fi[1:len(fi)])) / floa

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值