拉格朗日插值法

简介

用途:多项式点值表达->多项式系数表达

思路如下:
(n)次(最高次为(n-1))多项式(f(x))的点值表达是:
(((x_1,y_1),(x_2,y_2),...,(x_n,y_n)))
其中(y_i=f(x_i))
我们的目的是寻找一个系数表达的(n)次多项式(L_n(x)),使得对于任意的(i)都有(L_n(x_i)=y_i)
这时有一个想法,设计一个函数(l_i(x)),使得(x=x_i)时,(l_i(x)=1),否则(l_i(x)=0)。这样的话(L_n(x))就可以写成如下形式了:

[L_n(x)=sum_{i=1}^{n}y_il_i(x) ]

(l_i(x))具体怎么设计呢?直接写结论:

[l_i(x)=prod_{j=1,j≠i}^{n}frac{x-x_j}{x_i-x_j} ]

可以发现:

  • 若代入(x=x_i),则连乘的每一项都为(1),于是(l_i(x)=1)
  • 若代入(x=x_j,j≠i),则连乘中必有一项为(0),于是(l_i(x)=0)
    而这个(l_i(x))又刚好是由(n-1)个一次多项式连乘得到的,其必定为(n)次多项式。所以最终得到的(L_n(x))也是(n)次多项式。

总的表达式:

[L_n(x)=sum_{i=1}^{n}y_iprod_{j=1,j≠i}^{n}frac{x-x_j}{x_i-x_j} ]

原文地址:https://www.cnblogs.com/zjlcnblogs/p/12748372.html