简介
用途:多项式点值表达->多项式系数表达
思路如下:
若(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}
]