• 拉格朗日差值


    part 1

    拉格朗日插值法,给出 (n+1) 个点对,可以 (O(n^2)) 求出一个 (n) 次多项式的值

    我们当前有(n+1)个点对,(x_i,y_i) , 代表 (f(x_i)=y_i)

    给出 (k)(f(k))

    公式为 (sumlimits_{i=0}^ny_i*prodlimits_{j!=i} frac {k-x_j}{x_i-x_j})

    正确性:

    带入 (x_i)(y_i*prodlimits_{j!=i}frac {k-x_j}{x_i-x_j}=y_i*1)

    (t~!=i)(prodlimits_{j!=t}frac {k-x_j}{x_t-x_j}) 中一定有 (frac{x_i-x_i}{x_t-x_i}=0) 所以 (prodlimits_{j!=t}frac {x_i-x_j}{x_t-x_j}=0)

    因此 当 (k=x_i)(sumlimits_{i=0}^ny_i*prodlimits_{j!=i} frac {k-x_j}{x_i-x_j} = y_i)

    part 2

    (x_i) 连续 则公式变为 (sumlimits_{i=0}^ny_i*prodlimits_{j!=i} frac {k-j}{i-j}) , 我们可以将它优化到 (O(n))

    (pre_i= prodlimits_{j=0}^ik-j) , (suf_i= prodlimits_{j=i}^nk-j,fac_i=i ~!)

    (f(k)=sumlimits_{i=0}^n y_i* dfrac{pre_{i-1}*suf_{i+1}}{fac_i*fac_{n-i}*(-1^{n-i})})

    (fac_i*fac_{n-i}* -1^{n-i}) 线性求逆元 即可做到 (O(n))

  • 相关阅读:
    URL收藏
    web网站防攻击策略
    网络编程
    Tomcat
    UML学习
    大数据学习
    PHP学习
    SYNC CSDN
    在浏览器中打开本地程序
    内存管理工具,帮助检查内存泄露及野指针问题
  • 原文地址:https://www.cnblogs.com/XiaoVsun/p/13054282.html
Copyright © 2020-2023  润新知