均差与牛顿插值多项式 --牛顿插值多项式的代码python实现

matlab实现数值分析 的 二次插值+拉格朗日插值
(拉格朗日插值性能分析)

  • 优点:
    运算量小,不涉及矩阵运算; 格式整齐、规范。
  • 缺点:
    没有承袭性质:当插值点增/减时, 要重新计算所有的基 函数。

1、均差

在这里插入图片描述
二阶均差用到了一阶均差的结果,三阶均差用到了二阶均差的结 果,均差具有承袭性质。
通式:
在这里插入图片描述

均差的性质1:节点对称性

若{i0, i1, · · · , ik}为{0, 1, · · · , k}的任一排列,则: f[x0, x1, · · · , xk] = f[xi0
, xi1 , · · · , xik ] 均差的值只与节点有关,与节点的顺序无关,即:每个节点在均
差中的作用和地位是平等的。
在这里插入图片描述

均差的性质2:线性组合

在这里插入图片描述

均差的性质3:多项式的阶次

若f(x)为m次 多 项 式 , 则f[x0, x1, · · · , xk-1, x]为(m-k)次 多 项 式,m ≥ k
在这里插入图片描述

2、拉格朗日形式 vs. 牛顿形式

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3、代码实现n次牛顿插值

在这里插入图片描述
在这里插入图片描述

算法中间的g[j]=(g[j]-g[j-1])/(xj-xj-1)应为
  g[j] = (g[j] - g[j - 1]) / (X[j] - X[j-k])
来自老师发的课件,然后是有点小问题

参考视频:牛顿插值(Newton插值)速懂
https://haokan.baidu.com/v?pd=wisenatural&vid=5502744134413524450

4、python代码实现

函数及均差表
在这里插入图片描述

def myNewTonInterpolation(u, time):
    X = [0.4, 0.55, 0.65, 0.80, 0.90, 1.05]
    Y = [0.41075, 0.57815, 0.69675, 0.88811, 1.02652, 1.25382]
    g = [0] * len(Y)
    g = meanDeviation(g, X, Y, time)
    totalNum = time+1
    fu = Y[0]
    for i in range(1, totalNum):
        t = 1
        for K in range(0, i):
            t = t * (u - X[K])
        fu = fu + t * g[i]
    print("n次插值多项式近视值为 ", fu)
    # 截断误差
    g = meanDeviation(g, X, Y, time+1)
    Rn = g[-1]
    t = 1
    for i in range(len(g)):
        t = t * (u - X[i])
    Rn = Rn * t
    print("截断误差%.9f" % (abs(Rn)))


def meanDeviation(g, X, Y, time):
    totalNum = len(g)
    # initial
    for i in range(totalNum):
        g[i] = Y[i]

    # 计算k阶均差
    for k in range(1, time+1):
        for j in range(totalNum - 1, k - 1, -1):
            g[j] = (g[j] - g[j - 1]) / (X[j] - X[j-k])
        print(k, "阶均差表", g)
    return g


def main():
    myNewTonInterpolation(0.596,4)


main()


在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

广大菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值