牛顿(Newton)插值多项式
牛顿插值多项式
数学系
DEPARTMENT OF MATHEMATICS
Newton型多项式插值
承袭性: Nn1(x) Nn (x) qn1(x) Pn1
{x0 , x1 , xn1}
{x0 , x1 , xn}
且 Nn (xi ) Nn1(xi ) f (xi ) , qn1(x) an1(x x0 ) (x xn )
同样 Nn (x) Nn1(x) qn (x)
qn (x) an (x x0 ) (x xn1)
i 0,1,L n
为实数
Sichuan Agricultural University
数学系
DEPARTMENT OF MATHEMATICS
Nn (x) a0 a1(x x0 ) an (x x0 ) (x xn1)
f
(xn )
Sichuan Agricultural University
数学系
DEPARTMENT OF MATHEMATICS
这样:
a0 f (x0 )
a1
f (x1) f (x0 ) x1 x0
a2
x2
1
x1
f
(x2 ) x2
f (x0 ) x0
a1
a3
x3
1 x2
f
x
x0
)
L
(x xn )
另一方面
设
{xi
}n i0
Newton插值为N
n
(
x)
则有
{xi
}n i0
U{a}为Nn1(t)
Nn
(t)
f [x0,L
, xn, a](t x0)L
牛顿插值法
2
Newton插值
x x0 x1 y y0 y1
x n 1 x n y n 1 y n
求作n次多项式 Nn(x) 使得:
N n (x i) f(x i) y i,i 0 ,1 , ,n
3
插值问题讨论
x x0 x1 y y0 y1
增加一个点后
为 在点
处的二阶差商
称
f[x 0 ,x 1 , x n ] f[x 0 ,x 1 , ,x x n 0 1 ] x n f[x 1 ,x 2 , x n ]
为f (x)在点
处的n阶差商。
9
差商表
x
f(x)
一阶差 商
二阶差商
三阶差商
x0
f(x0)
x1
f(x1) f [x0,x1]
x2
f(x2) f [x1,x2] f [x0,x1,x2]
这种差商形式的插值公式称为牛顿插值公式。
11
Newton插值
容易证明牛顿插值多项式满足插值条件。
由插值多项式的唯一性,得 Ln(x)Nn(x)
牛顿插值多项式的误差估计
R n(x)f[x 0,x 1 ,L,x n,x]n(x)f(n (n 1 )1 ()!) n(x)
12
Newton插值(续)
把此类插值多项式称为埃尔米特(Hermite) 插值多项式或称带导数的插值多项式,记为H (x)。
18
Hermite插值多项式(续1)
N 个条件可以确定 N 1 阶多项式。 要求在1个节点 x0 处直到m0 阶导数都重合的插值
多项式即为Taylor多项式
(x )f(x 0)f(x 0 )x ( x 0) . .f.(m m 0)0 (!x 0)(x x 0 )m 0
牛顿—柯特斯(Newton-Cotes)求积公式
n
n)
f ( xk )
( ckn)
称为柯特斯求积系数 称为柯特斯求积系数
∫ f ( x ) dx ≈ ( b a ) ∑ c
b a k =0
n
(n)
k
f ( xk )
c
(n) k
n=1时
C
(1) 0
n n (1)nk = ∫0 ∏(t j) dt k ! (n k )!n j =0 j ≠k
3 b
2 b
∫
b
a
a
( x b)2 dx ] 2
a
(b a ) 3 f ′′(η ) = 12
定理的其它证明从略。 定理的其它证明从略。
复合求积公式
Newton—Cotes求积方法的缺陷: 求积方法的缺陷 求积方法的缺陷: 从余项公式可以看出, 从余项公式可以看出,要提高求积公式的代数精 增加节点个数 必须增加节点个数,而节点个数的增加, 度,必须增加节点个数,而节点个数的增加,会导致 现象; (1)插值多项式出现 )插值多项式出现Runge现象; 现象 数值稳定性不能保证。( (2)Newton—Cotes数值稳定性不能保证。( ) 数值稳定性不能保证。(n>7) )
I4 ( f ) =
(b a ) [7 f ( x0) + 32 f ( x1) + 12 f ( x 2) + 32 f ( x3) + 7 f ( x 4)] 90
柯特斯公式
n=1时的求积公式 时的求积公式
1
梯形公式/*Trapezoidal Formula */ 梯形公式/*
I1 ( f ) = ∑ Ak f ( xk ) = A0 f ( x0 ) + A1 f ( x1 )
牛顿插值公式
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的值。
牛顿插值多项式
牛顿插值多项式是一种通过已知数据点来拟合函数的插值方法。
它以英国数学家牛顿的名字命名,是一种常用的插值方法之一。
设给定数据点的集合为(x0, y0), (x1, y1), ... , (xn, yn),并且数据点的x坐标不相同。
牛顿插值多项式通过不断增加插值点来逐步构建插值多项式,具体来说,可以按照以下步骤进行:
将数据点按照x坐标的大小排列,从小到大依次编号为0, 1, ..., n。
定义差商f[xi, xj]为:
f[xi, xj] = (f[xi+1, xj] - f[xi, xj-1]) / (xi+j - xi)
其中,f[xi, xi] = yi,f[xi, xi+1] = (yi+1 - yi) / (xi+1 - xi)。
利用递推公式构建插值多项式:
P(x) = f[x0] + f[x0, x1] * (x-x0) + f[x0, x1, x2] * (x-x0) * (x-x1) + ... + f[x0, x1, ..., xn] * (x-x0) * (x-x1) * ... * (x-xn-1)
其中,f[xi]表示插值节点x0, x1, ..., xi所构成的多项式的最高次项系数。
牛顿插值多项式的优点在于,新增一个数据点只需要重新计算一个差商,而不需要重新计算整个多项式,因此计算效率较高。
同时,它也可以通过递归方式来计算,对于复杂的数据集,计算效率也比较高。
牛顿插值法
f [ x, x0 , x1 ,, xk 1 ] f [ x0 , x1,, xk ] f [ x, x0 , x1 ,, xk ](x xk )
因此可得
f ( x) f0 f [ x, x0 ](x x0 )
f0 ( f [ x0 , x1 ] f [ x, x0 , x1 ](x x1 ))(x x0 ) f0 f [ x0 , x1 ](x x0 ) f [ x, x0 , x1 ](x x0 )(x x1 )
为f ( x)关于xi , x j , xk的二阶差商
依此类推
5
f [ xi0 , xi1 ,, xik 1 , xik ]
f [ xi0 , xi1 ,, xik ] f [ xi0 , xi1 ,, xik 2 , xik 1 ] xik xik 1
为f ( x)关于节点 xi0 , xi1 ,, xik1 , xik 的k阶差商
2 f i 2 f i 1 3 2h3 3 f i 3!h 3
20
3 fi 3 2 fi 2 2 fxi 3 3 3!h 3 3 2h
k ( x) ( x x j )
j 0
k 1
f0 f [ x0 , x1 ,, xk ]( x x j )
k 1
n
n
k 1 j 0
为k次多项式
f 0 f [ x0 , x1 ,, xk ] k ( x)
k 1
为f ( x)关于节点 xi 的n次Newton插值多项式
f 0
f 1
f 1 f 2
f 3
2 f0
2 f2
2 f3
3 f0
ch3.4牛顿插值多项式
一阶向后差分:fk fk fk 1 B差分
C差分
常用结论
2 fk fk 1 fk fk 2 2 fk 1 fk 3 fk 2 fk 1 2 fk fk 3 3 fk 2 3 fk 1 fk 2 fk fk 1 fk fk 2 fk 1 fk 2
差分的性质 (差商与差分的关系)
f k 1 f k f k f [ xk , xk 1 ] , xk 1 xk h
f [ xk 1 , xk 2 ] f [ xk , xk 1 ] f [ xk , xk 1 , xk 2 ] xk 2 xk f k 1 f k 1 2 h h 2 fk , 2h 2h
差商与导数关系
性质3 若f ( x)在[a, b]上存在k阶连续导数,且节点x0 ,, xk [a, b], f ( k ) ( ) 则 f [ x0 , , xk ] , k! [min x0 ,, xk , max x0 ,, xk ]
二、牛顿插值法的基本思路
三、牛顿插值多项式的构造
Pn ( x ) a0 a1 ( x x0 ) a2 ( x x0 )( x x1 ) an ( x x0 )( x xn1 ) 由插值条件:Pn ( x j ) f j ( j 0,1, , n)
当x x0时,Pn ( x0 ) a0 =f0 f [ x0 ] a0 f [ x0 ]
解题步骤:1、完成差商表 2、求出插值多项式 3、求出插值 4、估计误差
解:
xi 0.40 0.55 0.65 0.80 0.90 1.05
ƒ(xi) 0.41075 0.57815 0.69675 0.88811 1.02652 1.25382
newton插值多项式
三阶差商
Newton公式 Newton优点
四阶差商
f [ x0 , x1 ]
x 2 f ( x2 ) f [ x1 , x2 ] f [ x0 , x1 , x2 ]
N k 1 ( x) N k ( x) f [ x0 ,, xk , xk 1 ]( x x0 )( x x1 )( x xk )
17
一次Newton插值多项式
N1(x)= f(x0)+f[x0,x1](x-x0)
二次Newton插值多项式
N2(x)= f(x0)+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)
f [ x0 , x1 , , xn ] f
(n)
( ) n!
7
例 已知 f(x) = x7+ x4+ 3x+ 1 求 f [20, 21, … 27 ] 及 f [20, 21, … 27, 28 ] 分析:本题 f(x)是一个多项式, 故应利用差商的性
质
解: 由差商与导数之间的关系
8
差商的计算-差商表
9
例
已知
xi
f ( xi )
计算三阶差商 解:列表计算
xi
f [1, 2,4,7]
f ( xi )
f [1, 2, 4, 7] 1 / 2
10
二 Newton 插值多项式
根据差商的定义,把
f [ x, x0 ]
x 看成[a,b]上的一点,可得:
f ( x) f ( x0 ) x x0
牛顿插值法原理及应用
牛顿插值法插值法是利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。
如果这特定函数是多项式,就称它为插值多项式。
当插值节点增减时全部插值基函数均要随之变化,这在实际计算中很不方便。
为了克服这一缺点,提出了牛顿插值。
牛顿插值通过求各阶差商,递推得到的一个公式:f(x)=f[x0]+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+...f[x0,...x n](x-x0 )...(x-x n-1)+R n(x)。
插值函数插值函数的概念及相关性质乩定义:设连续函数y-f(x) 在区间[a,b]上有定义,已知在n+1个互异的点x0,x1,…xn上取值分别为y0,y1,…yn (设a< x1 <x2 < xn w b)。
若在函数类中存在以简单函数P(x),使得P(xi)=yi,则称P(x)为f(x)的插值函数. 称x1,x2,…xn为插值节点,称[a,b]为插值区间。
定理:n次代数插值问题的解存在且唯一。
牛顿插值法C程序1,-Mt Cll. nilI frT-r-1■■』zJr1程序框图#include<stdio.h> void mai n(){float x[11],y[11][11],xx,temp, newto n;int i,j, n;printf("Newton 插值:\n请输入要运算的值:x=");sca nf("%f", &xx);printf(" 请输入插值的次数(n<11):n=");sca nf("%d",&n);printf("请输入%d组值:\n",n+1);for(i=0;i< n+1;i++){ prin tf("x%d=",i);sca nf("%f", &x[i]);prin tf("y%d=",i);sca nf("%f", &y[0][i]);XO=OMHUOW ①匚LHdlu9a巨A-」WL-qx-mxgD-mL'M-nKL'MHmuM①(LAW7 (++rL+uvrHD 」04 (+土=+u v ~ud 」04a -=x① s a)O O H(匚L o_(x )l l o)u ①-H u((A)£6U2H H(X )£6U①一)七】siuAs(oxsx)uoweN H 4 u o l o u a性胆 qewlAIw迴B犀<eo w① u-xx-=u\J6&Ha寸& )M灭<撫旨e ^=)匕 £」d宀CL l u ①&=二A +uo g ① u H u og ① u二 L.'vxxhdlu 晋 dlu2 〉(+土=+u v ~U_)」O 4disp('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)的近似值。
牛顿插值公式
I — 不变算子(恒等算子); If k = f k 不变算子(恒等算子); Ef k ≡ f k +1 , E m f k ≡ f k + m E — 位移算子
为两算子, (4)设A与B为两算子 与 为两算子 则称算子A与 为相等 为相等。 若 Afk = Bfk ,则称算子 与B为相等。记为 A = B; 则称A为 的逆算子 的逆算子。 若 AB = BA = I ,则称 为B的逆算子。记为B = A −1 ( A = B −1 ); (a ) ∆ = E − I , 如 (Q ∆f k = f k +1 − f k = Ef k − If k = ( E − I ) f k ) (b )∇ = I − E −1 (自己证) 自己证)
∆ f k = ∑ ( −1) ( ) f n− j + k ,
n j =0 j n j n
∇ f k = ∑ ( −1) j ( n ) f k − j . j
n j =0
n
其中 (n ) = Cnj = j
n(n − 1)L(n − j + 1) n . ( E − I ) n f k = ∑ ( −1) j ( nj ) E n− j I j f k j! j =0 n 证明:用算子二项式定理: 证明:用算子二项式定理: j n n− j −1 n −1
f
1 k+ 2
≡E
1 2
fk , f
1 2
1 k− 2
≡E
−
1 2
f k = ( E ) −1 f k , δ fk = f
1 2
⇒δ = E −EFra bibliotek−1 2
=E
−
1 2
1 k+ 2
Chapter2_2_Newton插值
计算各阶差分可按如下差分表进行
xi x0 x1 x2 x3 xn
fi f0
fi
2 fi
3 fi n f i
f1 f 0 f2 f3 fn f1 f 0
2
f 2
2 f1 3 f 0 n f0
f n 1 2 f n 2 3 f n 3
fk (E I ) fk 0 n 1 n1 n n (Cn E Cn E (1) Cn I ) f k 0 1 n n C n f k n C n f k n1 (1) C n f k
n n
二、差分具有如下性质
性质1 (差分与函数值的关系) 各阶差分均可表示为函 数值的线性组合:
四、差商具有如下性质
性质1 (差商与函数值的关系)
f ( xi ) f x0 , x1 ,..., xn i 0 ' ( xi )
性质2 (对称性):差商的值与结点排列顺序无关
f x0 , , xi , , x j , , xn f x0 ,, x j ,, xi ,, xn
k fi (1) j Ckj fi j k , k fi (1)k j Ckj fi j k
j 0 j 0 k k
k! 其中 C j !(k j )!
j k
性质2 (前差与后差的关系):
k fi k fi k
性质3 (多项式的差分) 若f(x)∈Pn(n次多项式类), 则
三、插值多项式的构造
利用插值条件和差商,可求出Nn(x)的系数Ai :
A0 f ( x0 ) f [ x0 ]
A1 f [ x0 , x1 ] An f [ x0 , x1 ,, xn ] N n ( x ) f ( x0 )
拉格朗日插值公式和牛顿插值公式
拉格朗日插值公式和牛顿插值公式拉格朗日插值公式和牛顿插值公式是数值分析中常用的插值方法,用于通过已知数据点推导出未知数据点的近似值。
本文将分别介绍这两个插值方法的原理和应用,并比较它们的特点和优劣。
一、拉格朗日插值公式拉格朗日插值公式是由法国数学家拉格朗日于18世纪提出的,它通过构造一个多项式来逼近给定的数据点集合。
具体而言,拉格朗日插值多项式的形式为:P(x) = Σ(yi * Li(x))其中,P(x)表示待求的多项式,yi表示已知数据点的函数值,Li(x)称为拉格朗日基函数,它代表了每个数据点的贡献度。
拉格朗日插值公式的优点在于其简单易懂,计算过程相对简单快速。
但是,该方法的缺点是对于较大规模的数据集合,计算量会变得很大,同时当数据点之间的间距不均匀时,插值结果可能出现较大误差。
二、牛顿插值公式牛顿插值公式是由英国数学家牛顿于17世纪提出的,它采用了多项式的差商形式进行插值。
具体而言,牛顿插值多项式的形式为:P(x) = f[x0] + (x - x0)f[x0, x1] + (x - x0)(x - x1)f[x0, x1,x2] + ...其中,f[x0]表示已知数据点的函数值,f[x0, x1]表示x0和x1两个点之间的差商,以此类推。
牛顿插值公式的优点在于可以通过递推的方式计算差商,避免了重复计算,因此对于较大规模的数据集合,计算效率较高。
此外,牛顿插值公式对于不均匀间距的数据点也能够较好地逼近。
然而,牛顿插值公式的缺点在于其计算过程较为繁琐,需要额外计算差商。
三、比较与应用拉格朗日插值公式和牛顿插值公式都是常见的插值方法,它们在实际应用中各有优劣。
下面将对它们进行比较和应用分析。
1. 计算复杂度从计算复杂度的角度来看,牛顿插值公式在计算差商时需要递推计算,每次计算需要O(n)的复杂度,因此总的计算复杂度为O(n^2)。
而拉格朗日插值公式直接计算每个基函数,每次计算都需要O(n)的复杂度,因此总的计算复杂度也为O(n^2)。
牛顿插值三次插值多项式例题
牛顿插值三次插值多项式例题假设有如下数据点:(1, 1), (2, 8), (4, 64), (5, 125)首先,我们需要计算差商表。
差商表是用来计算牛顿插值多项式的系数的重要工具。
差商表的第一列是给定的数据点的y值,第二列是第一次差商,第三列是第二次差商,以此类推。
x | y |1st Dif.|2nd Dif.|3rd Dif.----------------------------------1 | 1 |2 | 8 | 74 | 64 | 28 75 | 125 | 61 18 11计算第一次差商。
第一次差商可以用以下公式计算:f[x1, x2] = (f(x2) - f(x1)) / (x2 - x1)对于第一行和第二行的数据点,我们可以计算:f[1, 2] = (8 - 1) / (2 - 1) = 7类似地,我们可以计算出其他的差商。
计算第二次差商。
第二次差商可以用以下公式计算:f[x1, x2, x3] = (f[x2, x3] - f[x1, x2]) / (x3 - x1)对于第一行到第三行的数据点,我们可以计算:f[1, 2, 4] = (28 - 7) / (4 - 1) = 7类似地,我们可以计算出其他的差商。
计算第三次差商。
第三次差商可以用以下公式计算:f[x1, x2, x3, x4] = (f[x2, x3, x4] - f[x1, x2, x3]) / (x4 - x1)对于所有数据点,我们可以计算:f[1, 2, 4, 5] = (11 - 7) / (5 - 1) = 1现在,我们可以使用差商表中的第一列和第一行的差商来构建牛顿插值多项式。
多项式的形式为:P(x) = f(x0) + f[x0,x1] * (x - x0) + f[x0,x1,x2] * (x - x0)(x - x1) + f[x0,x1,x2,x3] * (x - x0)(x - x1)(x - x2)代入给定的数据点的值,我们有:P(x) = 1 + 7(x - 1) + 7(x - 1)(x - 2) + 1(x - 1)(x - 2)(x - 4)将多项式展开并化简,得到最终的牛顿插值三次插值多项式。
4-5讲:ch2-2Newton插值
第二节 Newton插值法
Newton插值法的基本思路 Newton插值法的构造 均差以及Newton插值多项式
差分以及Newton前插、后插公式
一、牛顿插值公式的基本思路
构造多项式: N n ( x ) a0 a1 ( x x0 ) a2 ( x x0 )( x x1 ) ... an ( x x0 )...( x xn1 )
f ( x5 ) f [ x4 , x5 ]
f [ x 3 , x 4 , x 5 ] f [ x 2 , x 3 , x 4 , x 5 ] f [ x1 , x 2 , x 3 , x 4 , x 5 ]
牛顿插值公式
例2.2
给出f ( x )的函数表, 求4次牛顿 插值多项式,并由此计 f (0.596)的近似值。 算 出均差表. 解析 首先根据给定函数表造
当x x2时, N n ( x 2 ) a 0 a1 ( x 2 x 0 ) a 2 ( x 2 x 0 )( x 2 x1 ) f 2
a2
f2 f0 x 2 x0
f1 f 0 x1 x0
x 2 x1
牛顿插值多项式的构造
引入记号:
f [ x1 ] f [ x0 ] f k f [ xk ] f [ x0 , x1 ] x1 x0 f2 f0 f [ x 0 , x 2 ] f [ x 0 , x1 ] x 2 x0 f [ x 0 , x1 , x 2 ] x 2 x1
f [ x, x0 ] f [ x0 , x1 ] f [ x, x0 , x1 ]( x x1 )
f [ x , x0 , x1 ] f [ x0 , x1 , x2 ] f [ x , x0 , x1 , x2 ]( x x2 ) f [ x , x0 , x1 ,, xn1 ] f [ x0 , x1 ,, xn ] f [ x , x0 ,, xn ]( x xn )
牛顿插值法原理及应用汇总
牛顿插值法插值法是利用函数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)的近似值。
数值分析--chapter3 多项式插值与样条插值
其中Ak 为待定系数。
由条件lk (xk ) = 1 可定Ak ,于是
lk=(xj)=n0=xx(k−x−k(xx−xjj−x0x)0()x(kx−−xx11))······((xxk−−xxkk−−11))((xx−k −xkx+k1+)1·)···(··x(−xkx−n)xn)
(6)
j =k
§3.2 拉格朗日(Lagrange)插值−−拉格朗日插值多项式
基函数法:由线性空间的基出发,构造满足插值条件的多项式方 法。
用基函数法求插值多项式分两步:
(1)定义n + 1个线性无关的特殊代数多项式(插值基函数), 用ϕ0(x), · · · , ϕn(x)表示;
(2)利用插值条件,确定插值基函数的线性组合表示的n次插值多
项式
p(x) = a0ϕ0(x) + a1ϕ1(x) + · · · + anϕn(x)
− −
x0 x0
y1
(8)
用L1(x)近似代替f (x)称为线性插值,公式(8)称为线性插值多项 式或一次插值多项式。
§3.2 拉格朗日(Lagrange)插值−−拉格朗日插值多项式
当n = 2时,拉格朗日插值多项式(7)为
数值分析牛顿插值法
因此可得
f(x ) f0 f[x ,x 0 ]x ( x 0 )
f 0 ( f [ x 0 , x 1 ] f [ x , x 0 , x 1 ] x ( x 1 )x ) x 0 ) (
f 0 f [ x 0 , x 1 ] x x ( 0 ) f [ x , x 0 , x 1 ] x x ( 0 ) x x ( 1 )
华长生制作
11
下面推导余项的另外一种形式 若x将 xi,(i0,1, ,n)视为一 ,则个节点
f[x 0,x 1, ,xk,x]f[x0,x1, ,xk]x kf [x x0,x1, ,xk 1,x] f[x 0,x 1 , ,x k 1 ,x ] f [ x 0 , x 1 , , x k ] f [ x 0 , x 1 , , x k , x ] x x k ( )
有 P(x0)f0a0
a0 f0
P (x 1 ) f1 a 0 a 1 (x 1 x 0 )
a1
f1 x1
f0 x0
P ( x 2 ) f 2 a 0 a 1 ( x 2 x 0 ) a 2 ( x 2 x 0 ) x 2 ( x 1 )
f2 f0 f1 f0
a2
x2
可以证明
mfk mfkm
如
fk fk1
2fk 2fk2 3fk 3fk3
华长生制作
16
差分表
xk fk 一阶差分 二阶差分
x0 f0
x1 f1 x2 f2 x3 f3 x4 f4
f0
f1
f1
f2
f2
f3
f 3 f4
2 f0
2 f2
f2
1 2 f3
f2 2 2 f4
三阶差分
数值分析牛顿插值法
m fim m!hm
f [x0 , x1 ,
, xk ]
k f0 k!hk
k fk k!hk
华长生制作
19
1.Newton向前(差分)插值公式
如果节点 x0 , x1 , , xn是等距节点 ,即
xk
x0
k h, k
0,1,
,n,h
b
a n
Newton插值基本公式为
n
Nn(x) f0 f [x0 , x1 , , xk ]k (x) k 1
fk fk 1 fk k 0,1, ,n 1 为f (x)在 xk 处的一阶向前差分
fk fk fk1 k 1,2, ,n 为f (x)在 xk 处的一阶向后差分
2 fk fk 1 fk 为f (x)在 xk 处的二阶向前差分
2 fk fk fk 1 为f (x)在 xk 处的二阶向后差分
x1 f ( x1 )
f [ x0 , x1 ] f [x1 , x2 ]
x2 f ( x2 )
f [ x2 , x3 ]
x3 f ( x3 )
f [ x3 , x4 ]
x4 f (x4 )
二阶差商
f [x0 , x1 , x2 ] f [x1 , x2 , x3 ] f [x2 , x3 , x4 ]
若将x xi ,(i 0,1, , n)视为一个节点 ,则
f [x0 , x1 ,
, xk , x]
f [ x0 , x1 ,
, xk ] f [x0 , x1 , xk x
, xk 1 , x]
f [x0 , x1 , , xk 1 , x] f [x0 , x1 , , xk ] f [x0 , x1 , , xk , x]( x xk )
牛顿插值公式
k f ( x1 ) k!hk
k f ( x0 ) k!hk
k f ( x1 ) k f ( x0 )
k!hk
(k 1)h
(k 1)h
k ( f ( x1 ) f ( x0 )) (k 1)!hk1
k 1 f ( x0 ) (k 1)! hk 1
.
n
Rn( x) f [x, x0 , x1, , xn ]( x xi ) --- 牛顿插值余项 i0
乘除法次数大约为: 1 n2 3 n 较L-插值法减少了3-4倍. 22
5 重节点差商
定义5 (重节点差商)
则定义
记
f[
类似的有
x0
,
x0
]
x
lim
(1 0
)
x
0
f[
若 lim x0(1) x0
x0
,
x(1) 0
]
f ( x0(1) ) f ( x0
x0(1) x0
lim f ( x0(1) )
x0(1) x0
x0(1)
)
f (x x0
f
0
( x0 ) )
f
(
,
x
0
)
(1)f [x0, x1,
, xn, x, x]
lim
x(1) x
f [x0, x1,
m!
f
x0 , x1,
,
xm
m f ( x0 ) m!hm
5.2 牛顿向前插值,向后插值公式
1、公式
a
x0
x1
x2
xn1 xn b
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
115 N1(115 ) 10 0.047169 (115 100 ) 10.7143
牛顿抛物线插值多项式为
N2(x) 10 0.047169 (x 100) 0.00009411 (x 100)(x 121)
所求近似值为
115 N2 (115) 10 0.047169 (115 100 ) 0.00009411 (115 100 )(115 121) 10.7228
0.0000003138
144 12
-0.00007246
0.040000
169 13
由差商表,牛顿插值多项式的系数依次为
f [x0 ] 10, f [x0, x1] 0.047169, f [x0, x1, x2 ] 0.00009411,
牛顿线性插值多项式为
N1(x) 10 0.047169 (x 100 )
x … 10 11 12 13 …
试用牛顿线性插值与抛物线插值求 115 的近似值,并估计截断误差。
解:先构造差商表,取 x0 100, x1 121, x2 144, x3 169
x x 一阶差商 二阶差商
100 10
三阶差商
0.047619
121 11
-0.00009411
0.0ห้องสมุดไป่ตู้3478
(i 0,1, 2, , n)
Nn (x) f [x0 ] f [x0, x1](x x0 ) f [x0, x1, x2 ](x x0 )(x x1) f [x0, x1, , xn ](x x0 )(x x1) (x xn1)
例3 已知函数表
x … 100 121 144 169 …
, xm ] f [x0 , x1, xm x0
, xm1]
为 f(x) 在点 x0 , x1, , xm 处的m阶差商。
特别地,规定零阶差商 f [xi ] f (xi )
为便于应用,通常采用差商表,例如
xk f [xk ] 一阶差商
x0 f [x0 ]
f [x0 , x1]
二阶差商
三阶差商
f
(x2 ) x2
f (x0 ) x0
f
[ x0 ,
x1]
x2 x1
f [x0, x2 ] f [x0, x1] x2 x1
f [x1, x0, x2 ]
f [x0, x1, x2 ]
一般地,可以证明有 于是,满足插值条件
ak f [x0 , x1, , xk ]
Nn (xi ) f (xi ) 的n次牛顿插值多项式为
f [x0, x1,
k
, xk ] j0 (xj x0 )
f (xj) (xj xj1)(xj xj1)
(xj xk )
性质2 差商具有对称性,即在k阶差商
f [x0, x1, , xk ] 中任意调换2个节点 xi 和 x j
的顺序,其值不变。
性质3 k阶差商 f [x0 , x1, , xk ] 和 k 阶导数
x1 f [x1]
f [x1, x2 ]
f [x0 , x1, x2 ]
f [x0 , x1, x2 , x3 ]
x2 f [x2 ]
f [x1, x2 , x3 ]
f [x2 , x3 ]
x3 f [x3 ]
差商有如下性质:
性质1 k阶差商 f [x0, x1, , xk ] 是由函数值 f (x0 ), f (x1), , f (xk ) 线性组合而成的,即
记为 Nn (x) ,即
Nn(x) a0 a1(x x0) a2(x x0)(x x1) an(x x0)(x xn1) ⑧ 其中系数 ai (i 0,1, , n) 可由插值条件
Nn (xi ) yi
(i 0,1, , n) 确定。
为此我们引入差商概念:
定义1 设函数f(x)在点 x0 , x1, x2 , 上的值依次为
由于公式中的 lk (x) (k 0,1, , n) 都依赖于全部插值节点在增加或减少节点时,
必须全部重新计算。
为克服这个缺点,把插值多项式构造成如下形式
a0 a1(x x0 ) a2 (x x0 )(x x1) an (x x0)(x xn1)
这种形式的插值多项式称为n次牛顿插值多项式。
f (k) (x) 之间有如下重要关系:
f [x0 , x1,
(min{x0 , x1,
, xk ]
f (k ) ()
k!
, xk }, max{x0, x1,
, xk})
有了差商的概念和性质后,我们就可以用差商
来表示牛顿差值多项式中的系数。
Nn (x) a0 a1(x x0) a2(x x0)(x x1) an (x x0)(x xn1)
由插值条件 Nn (x0 ) f (x0 ) ,可得
a0 f (x0 ) f [x0 ]
由插值条件 Nn (x1) f (x1) ,可得
a1
f (x1) f (x0 ) x1 x0
f [x0 , x1]
由插值条件 Nn (x2 ) f (x2 ) ,可得
a2
f (x2 ) f (x0 ) f [x0, x1](x2 x0 ) (x2 x0 )(x2 x1)
xk xi
为f(x)在 xi , x j , xk 处的二阶差商,记为 f [xi , x j , xk ]
即
f [xi , x j , xk ]
f [xj , xk ] f [xi , x j ] xk xi
一般地,称 m-1 阶差商的差商
f [x0 , x1,
, xm ] f [x1, x2 ,
插商与牛顿(Newton)插值多项式
构造拉格朗日插值多项式
n
Ln (x) yklk (x)
k 0
yk
(x x0 ) (xk x0 )
(x xk1)(x xk1) (xk xk1)(xk xk1)
(x xn ) (xk xn )
其形式具有对称性,即便于记忆,
又便于应用与编制程序。
f (x0 ), f (x1), f (x2 ),
称 f (xj ) f (xi ) (i j)为f(x)在点 x j xi
xi , x j 处的一阶差商,记为 f [xi , x j ] ,即
f [xi , x j ]
f (x j ) f (xi ) x j xi
称一阶差商的差商 f [xj , xk ] f [xi , xj ] (i, j, k 互异)