4.2 牛顿插值公式
牛顿插值法原理及应用

牛顿插值法插值法是利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。
如果这特定函数是多项式,就称它为插值多项式。
当插值节点增减时全部插值基函数均要随之变化,这在实际计算中很不方便。
为了克服这一缺点,提出了牛顿插值。
牛顿插值通过求各阶差商,递推得到的一个公式:f(x)=f[x0]+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+...f[x0,...xn](x-x0 )...(x-xn-1)+Rn(x)。
插值函数插值函数的概念及相关性质[1]定义:设连续函数y-f(x) 在区间[a,b]上有定义,已知在n+1个互异的点x0,x1,…xn上取值分别为y0,y1,…yn (设a≤ x1≤x2……≤xn≤b)。
若在函数类中存在以简单函数P(x) ,使得P(xi)=yi,则称P(x) 为f(x)的插值函数.称x1,x2,…xn 为插值节点,称[a,b]为插值区间。
定理:n次代数插值问题的解存在且唯一。
牛顿插值法C程序程序框图#include<stdio.h>void main(){float x[11],y[11][11],xx,temp,newton;int i,j,n;printf("Newton插值:\n请输入要运算的值:x=");scanf("%f",&xx);printf("请输入插值的次数(n<11):n=");scanf("%d",&n);printf("请输入%d组值:\n",n+1);for(i=0;i<n+1;i++){ printf("x%d=",i);scanf("%f",&x[i]);printf("y%d=",i);scanf("%f",&y[0][i]);}for(i=1;i<n+1;i++)for(j=i;j<n+1;j++){ if(i>1)y[i][j]=(y[i-1][j]-y[i-1][j-1])/(x[j]-x[j-i]);elsey[i][j]=(y[i-1][j]-y[i-1][j-1])/(x[j]-x[j-1]);printf("%f\n",y[i][i]);}temp=1;newton=y[0][0];for(i=1;i<n+1;i++){ temp=temp*(xx-x[i-1]);newton=newton+y[i][i]*temp;}printf("求得的结果为:N(%.4f)=%9f\n",xx,newton);牛顿插值法Matlab程序function f = Newton(x,y,x0)syms t;if(length(x) == length(y))n = length(x);c(1:n) = 0.0;elsedisp('x和y的维数不相等!');return;endf = y(1);y1 = 0;l = 1;for(i=1:n-1)for(j=i+1:n)y1(j) = (y(j)-y(i))/(x(j)-x(i));endc(i) = y1(i+1);l = l*(t-x(i));f = f + c(i)*l;simplify(f);y = y1;if(i==n-1)if(nargin == 3)f = subs(f,'t',x0);elsef = collect(f); %将插值多项式展开f = vpa(f, 6);endend牛顿插值法摘要:值法利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。
牛顿插值系数

牛顿插值是数学上的一个概念,它是一种基于已知数据插值多项式的方法。
具体来说,给定一组数据点(xi, yi),其中i=0,1,...,n,牛顿插值会根据这些数据点来构造一个插值多项式,使得该多项式尽可能地接近于实际的数据曲线。
为了实现牛顿插值,我们需要找到一个未知函数f(x)在各个数据点xi处的斜率。
通过构造一个线性方程组,我们可以求解出这个斜率数组。
具体来说,假设f(x)在xi处的斜率为bi,那么当x=xi时,由于插值多项式为f(xi) = y[i],我们有b[i] = f'(xi) = (yi - yi-1) / (xi - xi-1),其中i=1,2,...,n。
这就是给定的插值基函数。
接下来,我们需要构造一个插值多项式。
由于插值基函数是线性无关的,我们可以使用这些基函数来构造一个插值多项式。
具体来说,我们选择一个未知系数数组c[i],使得当x=xi时,多项式的值为f(xi)。
为了求解这个系数数组,我们构造一个线性方程组。
具体来说,我们根据插值基函数和插值多项式的性质,可以得到c[i] = yi -Σ(xi-xi-i)^(-2*j) * c[i-j-1),其中j=0,1,...,n-i。
求解这个线性方程组后,我们就得到了牛顿插值多项式的系数数组c[i]。
当x=x[n]时,多项式的值为f(x),而这个数值就是原始数据点中对应位置的y[n]。
因此,牛顿插值就是通过已知数据点来求取未知函数值的一种方法。
牛顿插值的一个重要特点是它的光滑性和误差特性。
通过已知的数据点,它可以逼近数据曲线并呈现出光滑性。
此外,它的误差性质决定了它的稳健性和准确性,可以满足不同的应用需求。
在实际应用中,牛顿插值经常被用于解决各种工程和科学问题。
它可以用来模拟复杂的物理过程、预测市场趋势、优化算法参数等等。
由于它的优越性能和广泛适用性,牛顿插值已经成为现代科学和工程领域中不可或缺的工具之一。
牛顿插值法介绍

牛顿插值法介绍本文将介绍牛顿插值法的基本原理、计算过程、优缺点以及在实际问题中的应用。
首先,我们将简要介绍插值法的基本概念和牛顿插值法的由来,然后详细讨论牛顿插值法的计算步骤和算法,接着分析其优缺点以及适用范围,最后通过几个实际问题的例子展示牛顿插值法的应用场景。
一、插值法基本概念在数学和计算机领域,插值是指根据已知的离散数据点构造满足这些数据点的曲线或函数的过程。
假设我们有一组数据点{(x1, y1), (x2, y2), ..., (xn, yn)},我们想要通过这些数据点构建一个函数f(x),使得f(xi) = yi,其中i = 1, 2, ..., n。
这样的函数就是经过插值的函数,它代表了这些数据点的趋势和变化规律。
插值法通常用于寻找这样的函数,它能够通过已知的数据点来估计函数在其他位置的值。
常见的插值方法包括拉格朗日插值法、牛顿插值法和埃尔米特插值法等。
在这些方法中,牛顿插值法是最为广泛使用的一种,因为它的计算效率高、精度较高,并且易于编程实现。
二、牛顿插值法的由来牛顿插值法由艾萨克·牛顿在17世纪提出,他是一位英国著名的数学家、物理学家和天文学家,在微积分、物理学和光学等领域都做出了重大贡献。
牛顿发展了牛顿插值法的理论基础和计算方法,并将其应用于数据分析和天体运动等问题中。
牛顿插值法基于牛顿插值多项式的概念,该多项式利用差商(divided differences)来表示,并具有易于计算和分析的优势。
牛顿插值多项式能够在已知的数据点上进行插值,并且还可以通过添加新的数据点来动态地更新插值结果。
因此,牛顿插值法成为了一种非常有用的数值计算工具,被广泛应用于工程、科学和金融等领域。
三、牛顿插值法的计算步骤1. 确定数据点首先,我们需要确定一组离散的数据点{(x1, y1), (x2, y2), ..., (xn, yn)},这些数据点是我们已知的数据,我们要通过它们来构建插值函数。
差分形式的牛顿插值公式

差分形式的牛顿插值公式一、牛顿插值公式的引入在数值计算和插值问题中,牛顿插值公式是一种常用的插值方法。
它通过已知的数据点,构造一个函数,使得这个函数通过这些数据点,并且在其他位置也有较好的逼近效果。
牛顿插值公式有两种形式,一种是差商形式,另一种是拉格朗日形式。
本文主要介绍差商形式的牛顿插值公式。
差分形式的牛顿插值公式是通过对已知数据点进行差分运算,得到一组差商系数,然后利用这些差商系数构造插值多项式。
具体来说,设有n+1个数据点(x0, y0),(x1, y1),...(xn, yn),其中xi和yi分别表示第i个数据点的横坐标和纵坐标。
差商形式的牛顿插值多项式可以表示为:P(x) = y0 + (x-x0)Δy0 + (x-x0)(x-x1)Δ^2y0 + ... + (x-x0)(x-x1)...(x-xn)Δ^n y0其中Δy0表示一阶差商,Δ^2y0表示二阶差商,以此类推。
差商的计算可以通过递推公式得到,具体计算方法如下:Δy0 = y1 - y0Δ^2y0 = Δy1 - Δy0 = y2 - 2y1 + y0Δ^3y0 = Δ^2y1 - Δ^2y0 = y3 - 3y2 + 3y1 - y0...通过递推计算可以得到所有的差商系数,进而构造出插值多项式。
三、差分形式的牛顿插值公式的应用差分形式的牛顿插值公式在实际问题中有广泛的应用。
下面以两个具体的例子来说明其应用:1. 数据的插值逼近假设我们有一组离散的数据点,现在需要根据这些数据点来估计其他位置的数据。
差分形式的牛顿插值公式可以通过构造插值多项式来实现这个目标。
我们可以利用已知的数据点,计算出差分系数,并将其代入插值多项式中,从而得到我们所需位置的数据估计值。
2. 数据的平滑处理在一些实际问题中,我们可能会遇到数据中存在噪声或异常值的情况。
差分形式的牛顿插值公式可以通过对数据进行插值逼近,从而平滑处理这些噪声或异常值。
我们可以利用已知的数据点,构造插值多项式,并利用该多项式来估计数据中存在噪声或异常值的位置,从而得到平滑后的数据。
等距节点Newton插值公式

等距节点Newton插值公式
插商与差分的关系
(1)用前插表示N(x)
在等距节点条件下有:
f [x0 , x1]
f
( x1 ) x1
f (x0 x0
)
1 h
f0
f [ x0 , x1,x2 ]
f [ x1, x2 ]) f [ x0 , x1]) x2 x0
1 h
f1
1 h
f 0
2h
1 2!h 2
数值计算方法
1)...(t
n)
f
( n 1)
(
),
(x0 , x0 h)
(2)用后插表示N(x)
如果将节点x0 , x1,...,xn到排序为:xn , xn1,...x0 , 则Newton插值公式为: Nn (x) f (xn ) (x xn ) f [xn , xn1]
(x xn )(x xn1) f [xn , xn1, xn2 ] ... (x xn )(x xn1)...(x x1) f [xn , xn1,...x1, x0 ] 同样有:
2 f0
一般有
f [ x0 , x1,...,xn ]
1 n!h n
n
f0
若令x x0 th,则Newton插值公式和余式具有形式
Nn (x) Nn (x0 th)
f0
t 1!
f0
t
(t 2!
1)
2
f0
.
.
.
t
(t
1)
...(t n!
n
1)
n
f0
Rn
(x)
h n 1 t(t
(n 1)!
0.032 585
-0.148 411
牛顿插值公式

2012-2013(1)专业课程实践论文牛顿插值公式王霄,0818180103,R数学08-1班插值法利用函数()x f 在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数()x f 的近似值。
如果这特定函数是多项式,就称它为插值多项式。
利用插值基函数很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,整个公式也将发生变化, 这在实际计算中是很不方便的,为了克服这一缺点,提出了牛顿插值。
牛顿插值通过求各阶差商,递推得到的一个公式:[]()[]()()[]()()()x Rn x x x x x x f x x x x x x x f x x x x f x f x f n n +--++--+-+=-100102100100,, ,,,)()(牛顿(Newton )插值法:若求i T 和1+i T 之间任一点T ,插值公式为:[]()[]()()[]()()100102100100,,,,,)(---++--+-+=n n x x x x x x f x x x x x x x f x x x x f x f T 式中,[]10,x x f ,[]210,,x x x f , ,[]110,,,-n x x x f 是函数()x f 的1到第1-n 阶差商。
[]()()101010,x x x f x f x x f --=[][][]202110210,,,,x x x x f x x f x x x f --=[][][]1011021010,,,,,,,,,-----=n n n n x x x x x f x x x f x x x f可以看出,每一阶的差商都可以从它的前一阶差商推出。
按照此特点,选定牛顿插值的阶数3~4,然后计算各阶差商,按照插值公式计算插值点的值。
开始输入已知项项数n输入各已知项的值: i y i x _,_i j n i ><,[]()()kk k x x x f x f x x f --=000,输出newton令]0[,1diff newton tmp ==[]()[]()()[]()()100102100100,,,,,)(---++--+-+=n n x x x x x x f x x x x x x x f x x x x f x f T n i <结束#include<stdio.h>#define MAX 20typedef struct TPOINT{ double x;double y; }POINT;int main(){ int n,i,j;POINT points[MAX +1];double diff[MAX +1];double x,tmp,newton=0;printf("\n输入已知项项数n:");//n-1为插值次数scanf("%d",&n);printf("输入各已知项的值: (x_i,y_i)\n");for(i=0;i<n;i++)scanf("%lf%lf",&points[i].x,&points[i].y);printf("输入所要求解的x值:");scanf("%lf",&x);for(i=0;i<n;i++)diff[i]=points[i].y;for(i=0;i<n;i++){ for(j=n;j>i;j--){ diff[j]=(diff[j]-diff[j-1])/(points[j].x-points[j-1-i].x);} } tmp=1;newton=diff[0];for(i=0;i<n;i++){ tmp=tmp*(x-points[i].x);newton=newton+tmp*diff[i+1];}printf("f(%f)=%f\n",x,newton);return 0;}例1. 已知函数如下表:x10 11 12 13ln 2.3206 2.3979 2.4849 2.5649x求解Ln11.75的值。
4.2 差商差分及牛顿插值多项式

d dx
f
( n 1 )
( )
( n 1 )!
(x)
d dx
f
( n 1 )
( )
( n 1 )! d dx
中 是未知的 ( )
, 其误差不能估计
, 注意到在插值
节点处 ( x i )
f
( n 1 )
( n 1 )!
0 , 此时的余项为
R n ( x i ) f ( x i ) n ( x i )
3 f ( x0 ) 4 f ( x1) f ( x2 )
f ( x 2) f ( x0 ) f ( x0 ) 4 f ( x1) 3 f ( x2 ) x2 x0
n!
4.4.3 Newton前插和后插公式的计算方法
对n+1个等距插值点x0,x1,…,xn及其函数值 f(x0),f(x1),…,f(xn).构造如下的差分表:
xi
f(xi)
1阶差分 △f(x0) △f(x1) △f(x2)
2阶差分
…… n阶差分
x0
x1 x2 x3
f(x0)
f(x1) f(x2) f(x3)
n
x
n i
) th ih ( t i ) h
代入 (1 ) 式得: N a (x ) f (x n ) f (x n )t ...
t ( t 1)
2!
t ( t 1 )...( t n 1 ) R ( x )
f[j][i]=f[j][i-1]-f[j-1][i-1]
3、输出f[][].
4.4.2 Newton前插和后插公式 当n+1个插值点为等距节点时,在Newton插值公式的基 础上,考虑前差及后差的情况: 1)前差 此时,对任意的xi及x可以表示为: xi=x0+i*h x=x0+t*h (0=<t<=n)
牛顿插值法原理及应用汇总

牛顿插值法插值法是利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。
如果这特定函数是多项式,就称它为插值多项式。
当插值节点增减时全部插值基函数均要随之变化,这在实际计算中很不方便。
为了克服这一缺点,提出了牛顿插值。
牛顿插值通过求各阶差商,递推得到的一个公式:f(x)=f[x0]+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+...f[x0,...xn](x-x0 )...(x-xn-1)+Rn(x)。
插值函数插值函数的概念及相关性质[1]定义:设连续函数y-f(x) 在区间[a,b]上有定义,已知在n+1个互异的点x0,x1,…xn上取值分别为y0,y1,…yn (设a≤ x1≤x2……≤xn≤b)。
若在函数类中存在以简单函数P(x) ,使得P(xi)=yi,则称P(x) 为f(x)的插值函数.称x1,x2,…xn 为插值节点,称[a,b]为插值区间。
定理:n次代数插值问题的解存在且唯一。
牛顿插值法C程序程序框图#include<stdio.h>void main(){float x[11],y[11][11],xx,temp,newton;int i,j,n;printf("Newton插值:\n请输入要运算的值:x=");scanf("%f",&xx);printf("请输入插值的次数(n<11):n=");scanf("%d",&n);printf("请输入%d组值:\n",n+1);for(i=0;i<n+1;i++){ printf("x%d=",i);scanf("%f",&x[i]);printf("y%d=",i);scanf("%f",&y[0][i]);}for(i=1;i<n+1;i++)for(j=i;j<n+1;j++){ if(i>1)y[i][j]=(y[i-1][j]-y[i-1][j-1])/(x[j]-x[j-i]);elsey[i][j]=(y[i-1][j]-y[i-1][j-1])/(x[j]-x[j-1]);printf("%f\n",y[i][i]);}temp=1;newton=y[0][0];for(i=1;i<n+1;i++){ temp=temp*(xx-x[i-1]);newton=newton+y[i][i]*temp;}printf("求得的结果为:N(%.4f)=%9f\n",xx,newton);牛顿插值法Matlab程序function f = Newton(x,y,x0)syms t;if(length(x) == length(y))n = length(x);c(1:n) = 0.0;elsedisp('x和y的维数不相等!');return;endf = y(1);y1 = 0;l = 1;for(i=1:n-1)for(j=i+1:n)y1(j) = (y(j)-y(i))/(x(j)-x(i));endc(i) = y1(i+1);l = l*(t-x(i));f = f + c(i)*l;simplify(f);y = y1;if(i==n-1)if(nargin == 3)f = subs(f,'t',x0);elsef = collect(f); %将插值多项式展开f = vpa(f, 6);endend牛顿插值法摘要:值法利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§2 差商、牛顿插值多项式在计算过程中,若需要再增加插值节点并求出新的插值函数,则Lagrange 插值公式所有的基函数都要重新计算,造成计算量的很大浪费。
而以下介绍的牛顿插值公式可以克服这一缺陷,可在原有插值多项式的基础上灵活的增加插值节点。
一、 差商及其性质: 1、相关定义设给出函数)(x f 在点0x ,1x ,… ,n x ,…上的函数值 ,则有:称],[10x x f 1010()()f x f x x x -=-为函数)(x f 在0x 、1x 点的一阶差商。
一阶差商的差商],,[210x x x f 121020],[],[x x x x f x x f --= 称为函数)(x f 在0x ,1x 和2x 点的二阶差商。
1-n 阶差商的差商],,,[10n x x x f 112020],,,[],,,[------=n n n n n n x x x x x f x x x f称为函数)(x f 在n x x x ,,,10 点的n 阶差商。
见插商表4-12、性质:性质1 :差商],,,[10n x x x f 可表示为函数值的线性组合,即 ∑==ni i i n x f a x x x f 010)(],,,[ ,其中:∏≠=-=nij j j ii x xa ,0)(/1。
该性质表明:差商与节点的排列次序无关,即:],,,[10n x x x f =],,,[01n x x x f =…=],,,[01x x x f n这就是差商的对称性。
性质 2101010[,,][,,][,,,]n n n n f x x f x x f x x x x x --=-01110[,,,][,,,]n n n f x x x f x x x x -=11100[,,][,,,]n n n f x x f x x x x x --=-10110[,,][,,,]n n n f x x f x x x x x --=-性质 3 设)(x f 在所含节点n x x x ,,,10 的区间],[b a 上有n 阶导数,则在该区间内至少有一点],[b a ∈ξ,使得:!/)(],,,[)(10n f x x x f n n ξ= 由该性质可知,若)(x f 为n 次多项式,则其n 阶差商为一常数。
也就是说,当一个函数的n 阶差商接近于常数时,那么用n 次多项式近似是恰当的。
例:设73()51f x x x =++,求差商012,2f ⎡⎤⎣⎦,0122,2,2f ⎡⎤⎣⎦,0172,2,,2f ⎡⎤⎣⎦和01782,2,,2,2f ⎡⎤⎣⎦。
解: 73(1)7,(2)2521169f f ==+⨯+=,73(4)454116705f =+⨯+=1(2)(1)2,2169716221f f f -⎡⎤==-=⎣⎦- 02(4)(1)1670572,25566413f f f --⎡⎤===⎣⎦-0201012212,22,255661622,2,22702222f f f ⎡⎤⎡⎤--⎣⎦⎣⎦⎡⎤===⎣⎦-(7)017()7!2,2,,217!7!f f ξ⎡⎤===⎣⎦ (8)18()02,2,,208!8!ff ξ⎡⎤===⎣⎦二、牛顿(Newton )插值多项式:设x 是],[b a 上的一点,则由差商的定义可以得到一系列的等式:0[,]f x x 00()()f x f x x x -=-⇒)](,[)()(000x x x x f x f x f -+=001011[,][,][,,]f x x f x x f x x x x x -=-⇒)](,,[],[],[110100x x x x x f x x f x x f -+=)](,,,[],,[],,[221021010x x x x x x f x x x f x x x f -+=… … … … … … … … …)](,,,,[],,,[],,,[101010n n n n x x x x x x f x x x f x x x f -+=-依次把后式代入前式,最后可得:()()[,]()0010f x f x f x x x x =+-[,,]()()01201f x x x x x x x +--++ 001[,,]()()n n f x x x x x x ---00[,,,]()()n n f x x x x x x x +--记 )(x P n 0010()[,]()f x f x x x x =+-01201[,,]()()f x x x x x x x +--++)()](,,[100---n n x x x x x x f (1))())(](,,,[)(100n n n x x x x x x x x x f x R ---= (2)则: )()()(x R x P x f n n += (3) 由于 )(x P n 是一个次数n ≤的多项式,又由(2),(3)式可知 )(x P n 是满足插值条件的插值多项式。
称(1)式为Newton 插值多项式。
注意:Newton 插值多项式与Lagrange 插值多项式是同一函数)(x f 的插值多项式中两种不同的表达形式,它们实质上是同一个多项式。
要计算Newton 插值多项式)(x P n ,只要计算出各阶差商就可得到了。
例:已知函数)(x f 的函数表如下:求四次Newton 插值多项式,并由此求)596.0(f 的近似值。
解:计算函数)(x f 的差商表如下:故的四次Newton 插值多项式为:)(4x P 0.41075 1.11600(0.4)0.28000(0.4)(0.55)x x x =+-+-- 0.19733(0.4)(0.55)(0.65)x x x +---0.0311(0.4)(0.55)(0.65)(0.80)x x x x +---- 则:4(0.596)(0.596)0.63195f P ≈=。
例:给定数据表:求4次牛顿插值多项式,并写出插值余项。
解:由差商表可得4次牛顿插值多项式为:457()43(1)(1)(2)(1)6601(2)(4)(1)(2)(4)(6)180P x x x x x x x x x x x =--+------+----插值余项为:(5)4()()()(1)(2)(4)(6)(7)5!ff x P x x x x x x ξ-=----- (min(,1),max(,7))x x ξ∈三、差分、等距节点下的Newton 插值多项式:1. 差分定义:设等距节点,,2,1,0,0 ±±=+=i ih x x i 其中h 为常数,称为步长。
设函数()f x 的值 (),i i f f x = 则有:一阶向前差分: 1i i i f f f +∆=- , ∆称为向前差分算子。
一阶向前差分的差分为 21i i i f f f +∆=∆-∆ 称为二阶向前差分。
一阶向后差分: 1i i i f f f -∇=- , ∇称为向后差分算子。
一阶向后差分的差分为 21i i i f f f -∇=∇-∇ 称为二阶向后差分。
一般地,函数()f x 的n 阶差分可以递推的定义为111111n n n i i in n n i i i f f f f f f --+---⎧∆=∆-∆⎪⎨∇=∇-∇⎪⎩ 规定零阶差分为 00i i i f f f ∆=∇=由以上定义可以算出差分与函数值之间的关系。
例如 i i i i i i i i i f f f f f f f f f +-=∆-∆=-∆=∆∆=∆++++121122)()(差分的基本性质:性质一:mmi i m f f +∆=∇性质二:差商和差分的关系:[]0101,,!mm mf x x x f m h =∆ []011,,!mm m mf x x x f m h=∇2. 等距节点的牛顿插值公式:Newton 向前插值公式(利用向前差分代替差商) 用途:求0x 附近的函数值。
依次取等距节点0(0,1,,),,i i x i n x a x a ih ===+,已知)(i i x f f =,修改牛顿插值公式可得:20000012()()()()1!2!n f f P x f x x x x x x h h∆∆=+-+--+ )()())((!1100-----∆+n i nnx x x x x x x x hn f令],0[,0n t th x x ∈+=,又有0i x x ih =+n i h i t x x i ,,2,1,0,)( =-=-20000()()(1)1!2!n n f f P x P x th f t t t ∆∆=+=++-+)1()1(!+--∆+n t t t n f n上式称为Newton 向前插值多项式。
同样的可推出Newton 向后插值公式(利用向后差分代替差商)用途:求n x 附近的函数值。
2()()(1)1!2!n nn n n n f f P x P x th f t t t ∇∇=+=++++(1)(1)!nnf t t t n n ∇+++-上式称为Newton 向后插值多项式。
若x 在函数表的中间,可以考虑用适于表中间的插值公式,我们这里就不说了。
例:有如下表函数试计算出此列表函数的差分表,并利用牛顿向前插值公式和向后插值公式给出它的插值多项式。
构造差分表:牛顿向前插值公式:44032()()3(1)1!2!P x P x th t t t =+=++-233(1)23t t t t t =++-=++牛顿向后插值公式:44492()()27(1)1!2!P x P x th t t t =+=+++2279(1)1027t t t t t =+++=++例:给出330.54)1(0的值,计算在=x x 。
解:给出差分表:因为0x x th =+,故0t h=当5.01/)05.0(5.0=-==t x 时,,根据Newton 向前插值公式,分别求得10()010.50.51!f P x f t ∆=+=+⨯=20020()(1)0.51!2!60.5(0.51)0.252f f P x f t t t ∆∆=++-=+⨯⨯-=-332()()(1)(2)0.253!60.5(0.51)(0.52)0.1253!f P x P x t t t ∆=+--=-+⨯⨯--=443()()(1)(2)(3)0.12500.1254!f P x P x t t t t ∆=+---=+=注意:上例中由于)(x f 的四阶导数为零,则有43()()P x P x =,即0)(3=x R ,所以3()0.125P x =是精确结果。