题目
拉格朗日公式
拉格朗日插值法:$$F(x) = sumlimits_{k=0}^{n}{y_kfrac{prodlimits_{j ot= k}^{}{(x-x_j)}}{prodlimits_{j ot= k}^{}{(x_k-x_j)}}}$$
我们先把右边那部分提出来看:$$ell {j}(x):=prod {{i=0,,i eq j}}^{{k}}{frac {x-x{i}}{x{j}-x_{i}}}={frac {(x-x_{0})}{(x_{j}-x_{0})}}cdots {frac {(x-x_{{j-1}})}{(x_{j}-x_{{j-1}})}}{frac {(x-x_{{j+1}})}{(x_{j}-x_{{j+1}})}}cdots {frac {(x-x_{{k}})}{(x_{j}-x_{{k}})}}$$
举个例子吧:有二次函数上的三点(f(4)=10,f(5)=5.25,f(6)=1),求(f(18))
求出三个基本式:
即:
理解拉格朗日插值的做法:
对于给定的k+1个点:((x_{0},y_{0}),ldots ,(x_{k},y_{k}))
拉格朗日插值法的思路是找到一个(()在一点(x_{j})取值为(1),而在其他点取值都是(0)的())多项式(ell _{j}(x))
这样,多项式(y_{j}ell _{j}(x))在点(x_{j})取值为(y_{j}),而在其他点取值都是(0)
而多项式(L(x):=sum _{{j=0}}^{{k}}y_{j}ell _{j}(x))就可以满足
证明
而我们怎么找到(ell _{j}(x))呢?
在其它点取值为0的多项式容易找到,由于假定(x)两两互不相同,故只有当(x=x_j)时上面的取值才不等于(0):
于是,将多项式除以这个取值,就得到一个满足“在(x_{j})取值为(1),而在其他点取值都是(0)的多项式”:
(ell _{j}(x):=prod _{{i=0,\,i
eq j}}^{{k}}{frac {x-x_{i}}{x_{j}-x_{i}}}={frac {(x-x_{0})}{(x_{j}-x_{0})}}cdots {frac {(x-x_{{j-1}})}{(x_{j}-x_{{j-1}})}}{frac {(x-x_{{j+1}})}{(x_{j}-x_{{j+1}})}}cdots {frac {(x-x_{{k}})}{(x_{j}-x_{{k}})}})
这就是拉格朗日基本多项式
用此公式能优化成(O(n^2)):
(F(x) = sumlimits_{k=0}^{n}{y_kfrac{prodlimits_{j
ot= k}^{}{(x-x_j)}}{prodlimits_{j
ot= k}^{}{(x_k-x_j)}}})
特殊情况
一个关于(x)的(n)次多项式,当已经知道(F(x),xin [0,n])的值时,有一个特殊公式: