欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

数值分析 - 多项式插值法

最编程 2024-06-30 13:49:42
...

多项式插值

这段时间关注了一个数值分析的课程,是华东师范大学潘建瑜老师的课,看了一遍课件,将内容梳理一下,做个笔记。

什么是插值

已知一个函数 f ( x ) f(x) f(x) [ a , b ] [a,b] [a,b]上有定义,且已知此区间有限个数据点: y 0 = f ( x 0 ) , y 1 = f ( x 1 ) , . . . y_0=f(x_0), y_1=f(x_1),... y0=f(x0),y1=f(x1),...
找到一个函数 p ( x ) p(x) p(x),使得 p ( x ) p(x) p(x)也经过所有数据点,则 p ( x ) p(x) p(x) f ( x ) f(x) f(x)的插值函数。

什么是多项式插值

从插值的定义可以得知,一定有相当多类的函数满足“经过有限数据点”这个条件,其中多项式函数就是一大类,使用多项式函数作为 p ( x ) p(x) p(x)的插值方式叫做多项式插值。若有 n + 1 n+1 n+1个数据点,插值多项式的最高次幂不得超过 n n n

多项式插值唯一性

满足条件的插值多项式只有一个。
证明:

记插值多项式 p ( x ) = c 0 + c 1 x + . . . + c n x n p(x)=c_0+c_1x+...+c_nx^n p(x)=c0+c1x+...+cnxn
记要插值的数据点为 ( x 0 , y 0 ) , ( x 1 , y 1 ) , . . . , ( x n , y n ) (x_0, y_0),(x_1,y_1),...,(x_n,y_n) (x0,y0),(x1,y1),...,(xn,yn)
带入可得n个方程:

{ p ( x 0 ) = c 0 + c 1 x 0 + . . . + c n x 0 n = y 0 p ( x 1 ) = c 0 + c 1 x 1 + . . . + c n x 1 n = y 1 . . . p ( x n ) = c 0 + c 1 x n + . . . + c n x n n = y n \begin{cases} p(x_0)=c_0+c_1x_0+...+c_nx_0^n=y_0& \\ p(x_1)=c_0+c_1x_1+...+c_nx_1^n=y_1& \\...& \\p(x_n)=c_0+c_1x_n+...+c_nx_n^n=y_n \end{cases} p(x0)=c0+c1x0+...+cnx0n=y0p(x1)=c0+c1x1+...+cnx1n=y1...p(xn)=c0+c1xn+...+cnxnn=yn

要证明多项式插值的唯一性,只需要证明系数 c 0 , c 1 , . . . , c n c_0,c_1,...,c_n c0,c1,...,cn的唯一性即可。

c 0 , c 1 , . . . , c n c_0,c_1,...,c_n c0,c1,...,cn视为未知数,可知系数矩阵的行列式正好是个范德蒙行列式,所以系数矩阵可逆, c 0 , c 1 , . . . , c n c_0,c_1,...,c_n c0,c1,...,cn有唯一解。

一次多项式插值

两个数据点可以进行一次多项式插值,即线性插值。实际上这就是求两点连线的直线方程,使用两点式求直线方程就可以。

p ( x ) − y 0 = y 1 − y 0 x 1 − x 0 ( x − x 0 ) \begin{aligned}p(x)-y_0 &= \dfrac{y_1-y_0}{x_1-x_0}(x-x_0)\\\end{aligned} p(x)y0=x1x0y1y0(xx0)

化简可得:

p ( x ) = y 0 x 1 − x x 1 − x 0 + y 1 x −