码迷,mamicode.com
首页 > 其他好文 > 详细

等距结点下的Newton插值多项式系数计算(向前差分)

时间:2019-09-21 01:19:29      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:线性代数   lin   说明   new   推出   就是   规律   组合   rac   

插值多项式的牛顿法

1.为何需要牛顿法?

? 使用Lagrange插值法不具备继承性。当求好经过\(({x_0},{y_0})-({x_n},{y_n})\)共n+1个点的插值曲线时候,如果再增加一个点,由Lagrange插值法通式\[\sum_{k=0}^{n}\frac{\prod_{i=0,i\ne k}^{n}(x-x_i)}{\prod_{i=0,i\ne k}^{n}(x_k-x_n)}y_k\]可以知道,当再增加一个点时候,Lagrange 多项式还要重新计算以确定系数。

2.牛顿插值多项式

由线性代数的知识可以知道,任何n次多项式都可以表示成1,\((x-x_0)\)\((x-x_0)(x-x_1)\)\({\ldots}\)\((x-x_0)(x-x_1){\ldots}(x-x_{n-2})(x-x_{n-1})\) 的线性组合形式,牛顿插值多项式正是基于这一点。\(N_n\)(x)=\(a_0\)+\(a_1\)(\(x-x_0\))+\(a_2\)(\(x-x_0\))(\(x-x_1\))+\({\ldots}\)+\(a_n(x-x_0)(x-x_1)(x-x_2){\ldots}(x-x_{n-1})\),其中\(a_k\)为插值多项式的待定系数。(一下关于牛顿插值多项式系数计算是基于各x结点的等距条件)

3.牛顿向前差分公式

假设\(x=x_k,\)则此时\(y=y_k\),这样,若\(a_0,a_1,a_2\dots\)则可以求出\(a_k\)。因为\(N(x_k)=y_k\),而对于含有\(a_{k+1},a_{k+2}\dots a_{n}\)项代入\(x_k\)后值为0。那么所求\(a_k\)=\[\frac{y_k-()}{\prod_{i=0}^{k-1}x_k-x_i}\],在假设\(x_k\)为等距结点的时候,\(x_k\)可以表示为\(x_k=x_0+kh\),其中h为步长。那么所求\(a_k\)近似可表示为\(a_k=\frac{y_k-()}{k!h^k}\)

定义 f(x)在\(x_k\)处的向前差分为\(\Delta y=y_{k+1}-y_k\),相应的我们可以定义\(\Delta y\)的差分,也就是y的二阶向前差分\(\Delta^{2} y_k=\Delta y_{k+1}-\Delta y_k\); 这样,类似我们可以定义y的m阶向前差分\(\Delta ^{m} y_k = \Delta ^{m-1} y_{k+1} -\Delta ^{m-1} y_k\)。在等距结点\(x=x_0+kh\) 的条件下我们可以利用向前差分来导出系数的计算。

4.牛顿向前差分公式系数计算

\(N_n(x_0)=y_0\)可以得到\(a_0\)的表达式为\(a_0=y_0\),这样我们可以定义y的零阶向前差分\(\Delta ^0 y=y0\),这样利用3中推出的\(a_k\)表达式可以将这个结果化为这样的形式\(a_0=\frac{\Delta^0 y_0}{0!h^0}\)。我们再来看\(a_1\)的表达式。因为\(N_n(x_1)=y_1=a_0+a_1(x_1-x_0)\),而\(a_0\)\(y_0\),则\(a_1=\frac{y_1-y_0}{x_1-x_0}=\frac{\Delta^1 y_0}{1!h^1}\)。同样的,我们来计算\(a_2\)的表达式。\(N_n(x_2)=a_0+a_1(x_2-x_0)+a_2(x2-x_0)(x_2-x_1)=y_2\),而又因为\(x_2-x_0=2h,a1\)可以表示成\(\frac{\Delta y_0}{h}\),因而可以将\(a_2\)表示为\(a_2=\frac{y2-y0-\frac{\Delta y_0}{h}2h}{(x_2-x_0)(x_2-x_1)}=\frac{y_2-y_0-2(y_1-y_0)}{2!h^2}=\frac{(y_2-y_1)-(y_1-y_0)}{2!h^2}=\frac{\Delta^2 y_0}{2!h^2}\),这样规律就很明显了。事实上,通过计算我们可以得到\(a_k\)的表达式为\(a_k=\frac{\Delta ^k y_0}{k!h^k}(k=0,1,\cdots {n-1},{n})\),于是我们可以将牛顿多项式完整的表达出来了---\(N_n(x)=\frac{\Delta ^0 y_0}{0!h^0}+\frac{\Delta ^1 y_0}{1!h^1}(x-x_0)+\frac{\Delta ^2 y_0}{2!h^2}(x-x_0)(x-x_1)+\cdots+\frac{\Delta ^k y_0}{k!h^k}(x-x_0)(x-x1)\cdots(x-x_{k-1})+\)\(\cdots+\frac{\Delta ^n y_0}{n!h^n}(x-x_0)(x-x_1)\cdots(x-x_{n-1})\)。这样我们就得到了牛顿插值公式的完整表达,通过计算\(y_0\)的n阶向前差分就可以得到结果了。

5.如何再化简?

? 我们再x等距取样条件下得到了牛顿插值多项式的表达式,同样的,可以充分利用这个条件。也就是设x=\(x_0+th\),其中h为步长。这样\[\sum_{i=0}^{k-1}(x-x_i)=th*(t-1)h*\cdots*(t-k+1)h=A_t^kh^k\],而系数\(a_k=\frac{\Delta ^k y_0}{k!h^k}\),所要整合式子可以得到\(N_n(x_0+th)=y_0+t\Delta y_0+\frac{t(t-1)\Delta ^2 y_0}{2!}+\cdots+\frac{t(t-1)\cdots(t-n+1\Delta ^ny_0)}{n!}\)=\(\sum_{k=0}^{n}\frac{A_t^k \Delta ^k y_0}{k!}\)

最后说明

这里只是利用了等距取点条件计算的牛顿插值公式表达式,实际情况下取的点不一定等距,因此,在不等距的条件下相应还要计算方法(后面我会逐渐整理的)。除此之外,还可以用向后差分,中心差分法,限于时间,往后再整理了。

等距结点下的Newton插值多项式系数计算(向前差分)

标签:线性代数   lin   说明   new   推出   就是   规律   组合   rac   

原文地址:https://www.cnblogs.com/my-python-learning/p/11561126.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!