研究生数值分析(15)插商与牛顿(Newton)插值多项式 共17页
计算方法牛顿插值

称为在xi,xj,xk处的2阶差商
k阶差商:
f [ x0 , x1 ,, xk 1 ] f [ x1 , x2 ,, xk ] f [ x0 , x1 ,, xk ] x0 xk
利用插值条件和差商,可求出Nn(x)的系数 Ai :
A0 f ( x0 ) f [ x0 ] A1 f [ x0 , x1 ]
差商具有如下性质
性质1 (差商与函数值的关系)
f ( xi ) f x0 , x1 ,..., xn i 0 ' ( xi )
性质2 (对称性):差商的值与结点排列顺序无关
f x0 , , xi , , x j , , xn f x0 ,, x j ,, xi ,, xn
f ( xi ) f ( xi h) f ( xi )
f ( xi ) f ( xi ) f ( xi h)
一阶中心差分 f ( x ) f ( x h ) f ( x h ) i i i /* centered 2 2 difference */
一般地,称k阶差分的差分为k+1阶差分,如二阶 向前和向后差分分别为
f [ x, x0 ] f [ x0 , x1 ] ( x x1 ) f [ x, x0 , x1 ]
1
2
n1
…………
f [ x, x0 , ... , xn1 ] f [ x0 , ... , xn ] ( x xn ) f [ x, x0 , ... , xn ]
1 + (x x0) 2 + … … + (x x0)…(x xn1)
性质5(差分与导数的关系)
k fi k !h k f [ xi , xi 1 ,, xi k ] hk f ( k ) ( ), ( xi xi k )
数学分析 Newton插值

当增加一个节点 xn+1 时,只需加上基函数
n 1 ( x xi )
i 0 n
即可。
Newton 插值
此时 f(x) 的 n 次插值多项式为
pn ( x ) a0 a1 ( x x0 ) a2 ( x x0 )( x x1 ) an ( x xi )
, xk ]
为 f(x) 关于 x0 , … , xk 的 k 阶差商。
差商的性质
1) 差商可以表示为函数值的线性组合。
可以用归纳法证明
f [ x0 , x1,, xk ]
j 0 k
f (xj ) ( x j x0 )( x j x j 1 )( x j x j 1 )( x j xk )
n
所以
f [ x, x0 , ... , xn ]
=
f ( n1) ( ξ x ) ( n 1) !
将 x 看作是一个节点,即可推广到一般情形:
f ( k ) ( ) f [ x0 , ... , xk ] k!
Newton 插值举例
例:已知函数 y = lnx 的函数值如下
x lnx
记:n+1(x) = (x-x0)(x-x1)…(x-xn)
f [ x0 , x1 , , xk ]
j 0 k
f (x j )
n1 '( x j )
2) 差商对节点具有对称性: f [ x0 ,, xi ,, x j ,, xk ] f [ x0 ,, x j ,, xi ,, xk ]
i 1 n1
其中 a0 f ( x0 ), ai f [ x0 ,, xi ], i 1,2,, n
牛顿插值法例题求解

牛顿插值法例题求解牛顿插值法是一种用于多项式插值的方法。
它利用给定数据点的函数值和差商的计算来构造一个多项式函数,从而在给定数据点之间进行插值。
以下是一个求解多项式插值的牛顿插值法的例题:假设有以下给定数据点与函数值:x: 0 1 2 4 y: 1 4 11 36现在要使用牛顿插值法,通过这些数据点拟合出一个多项式函数来进行插值。
解题步骤如下:1.计算差商表:x0 f[x0] 0 1 f[x0,x1] 1 4 f[x0,x1,x2] 2 11 f[x0,x1,x2,x3] 4 36差商的计算可以使用以下公式:f[xi,xi+1,...,xi+k] = (f[xi+1,xi+2,...,xi+k] - f[xi,xi+1,...,xi+k-1]) / (xi+k - xi)2.使用差商表计算插值多项式:插值多项式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)的展开式为:P(x) = 1 + 3(x-0) + 2(x-0)(x-1) + 2(x-0)(x-1)(x-2)3.使用得到的插值多项式进行插值计算。
例如,要计算在x=3 的位置的插值结果,将x 替换为3,计算P(3):P(3) = 1 + 3(3-0) + 2(3-0)(3-1) + 2(3-0)(3-1)(3-2) = 1 + 9 + 12 + 6 = 28因此,使用牛顿插值法,给定数据点(0,1), (1,4), (2,11), (4,36),在 x=3 的位置的插值结果为 28。
注意,此例仅为示例,实际问题中,使用牛顿插值法时可能需要更多的数据点和计算过程。
在实际应用中,还需要考虑插值误差、阶数选择以及数据点的分布等因素。
研究生数值分析(5)牛顿(Newton)迭代法

z
0.612547 0.641384 0.641186
6 求方程 m重根的Newton法 设 s 是方程 f(x)=0 的 m 重根(m≥2), f(x)
在 s 的某邻域内有m阶连续导数 ,这时
f (s) f (s) f (m1) (s) 0, f (m) (s) 0
由Taylor公式,得
设 f '(x) 0 ,上式解为
x
xk
f (xk ) f ' (xk )
于是方程 f(x)=0的新的近似根xk+1,可由牛顿
迭代公式
xk 1
xk
f (xk ) f ' (xk )
k 0,1, 2,
求出
牛顿迭代公式具有明显的几何意义。 方程 y f (xk ) f '(xk )(x xk ) 是曲线 y=f(x)在点 (xk , f (xk )) 处的切线方程,迭代公式就是切线与x轴 交点的横坐标。因此,牛顿迭代法又称为切线法。
这表明牛顿迭代法用于求单根时至少是二阶收敛的。
(2)若 x* 是方程 f (x) 0 的 m(m 2) 重根,
即
f (x) (x x*)m q(x)
(q(x*) 0)
此时有
g ' (x*) lim g ' (x) lim
x x*
x x*
f (x) f '' (x) [ f ' (x)]2
k
xk
k
xk
4 0.635498 8 0.640964
5 0.643719 9 0.641285
6 0.640061 10 0.641142
交大硕士研究生必修基础数学-数值分析-插值与拟合方法

第5章 插值与拟合方法插值与拟合方法是用有限个函数值(),(0,1,,)i f x i n =⋅⋅⋅去推断或表示函数()f x 的方法,它在理论数学中提到的不多。
本章主要介绍有关解决这类问题的理论和方法,涉及的内容有多项式插值,分段插值及曲线拟合等。
对应的方法有Lagrange 插值,Newton 插值,Hermite 插值,分段多项式插值和线性最小二乘拟合。
1 实际案例2 问题的描述与基本概念先获得函数(已知或未知)()=在有y f x由表中数据构造一个函数P(x)作为f(x) 的近似函数,去参与有关f (x)的运算。
科学计算中,解决不易求出的未知函数的问题主要采用插值和拟合两种方法。
1)插值问题的描述已知函数()y f x =在[a,b ]上的n +1个互异点nx x x ⋅⋅⋅,,10处的函数值()i i y f x =,求f (x ) 的一个近似函数P (x ),满足()()(0,1,,)i i P x f x i n ==⋅⋅⋅ (5.1)● P (x ) 称为f (x )的一个插值函数; ● f (x ) 称为被插函数;点i x 为插值节点; ● ()()(0,1,,)i i P x f x i n ==⋅⋅⋅称为插值条件; ● ()()()R x f x P x =-称为插值余项。
当插值函数P (x )是多项式时称为代数插值(或多项式插值)。
一个代数插值函数P (x )可写为0()()()mkm k k k P x P x a x a R ===∈∑若它满足插值条件(5.1),则有线性方程组20102000201121112012m m m m m n n m n na a x a x a x y a a x a x a x y a a x a x a x y ⎧+++⋅⋅⋅=⎪+++⋅⋅⋅=⎪⎨⎪⎪+++⋅⋅⋅=⎩ (5.2)当m=n ,它的系数行列式为范德蒙行列式)(1110212110200j i ni j n nnnn nx x x x x x x x x x x D -∏==≤≤≤因为插值节点互异,0D ≠,故线性方程组(5.2)有唯一解,于是有定理 5.1 当插值节点互异时,存在一个满足插值条件()()(0,1,,)i i P x f x i n ==⋅⋅⋅的n 次插值多项式。
数值分析常用的插值方法

数值分析报告班级:专业:流水号:学号:姓名:常用的插值方法序言在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。
插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。
早在6世纪,中国的刘焯已将等距二次插值用于天文计算。
17世纪之后,牛顿、拉格朗日分别讨论了等距和非等距的一般插值公式。
在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。
插值问题的提法是:假定区间[a,b〕上的实值函数f(x)在该区间上n+1个互不相同点x0,x1……x n处的值是f(x0),……f(x n),要求估算f(x)在[a,b〕中某点的值。
其做法是:在事先选定的一个由简单函数构成的有n+1个参数C0,C1,……C n的函数类Φ(C0,C1,……C n)中求出满足条件P(x i)=f(x i)(i=0,1,……n)的函数P(x),并以P(x)作为f(x)的估值。
此处f(x)称为被插值函数,x0,x1,……xn 称为插值结(节)点,Φ(C0,C1,……C n)称为插值函数类,上面等式称为插值条件,Φ(C0,……C n)中满足上式的函数称为插值函数,R(x)=f(x)-P(x)称为插值余项。
求解这类问题,它有很多种插值法,其中以拉格朗日(Lagrange)插值和牛顿(Newton)插值为代表的多项式插值最有特点,常用的插值还有Hermit 插值,分段插值和样条插值。
一.拉格朗日插值1.问题提出:已知函数()y f x =在n+1个点01,,,n x x x 上的函数值01,,,n y y y ,求任意一点x '的函数值()f x '。
说明:函数()y f x =可能是未知的;也可能是已知的,但它比较复杂,很难计算其函数值()f x '。
数值计算方法实验之Newton多项式插值(MATLAB代码)

数值计算⽅法实验之Newton多项式插值(MATLAB代码)⼀、实验⽬的在⼰知f(x),x∈[a,b]的表达式,但函数值不便计算或不知f(x),x∈[a,b]⽽⼜需要给出其在[a,b]上的值时,按插值原则f(x i)=y i (i=0,1,……, n)求出简单函数P(x)(常是多项式),使其在插值基点x i处成⽴(x i)= y i(i=0,1,……,n),⽽在[a,b]上的其它点处成⽴f(x)≈P(x).⼆、实验原理三、实验内容求f(x)=x4在[0,2]上按5个等距节点确定的Lagrange插值多项式四、实验程序(1).m⽂件%输⼊的量:X是n+1个节点(x_i,y_i)(i = 1,2, ... , n+1)横坐标,Y是纵坐标,%x是以向量形式输⼊的m个插值点,M在[a,b]上满⾜|f~(n+1)(x)|≤M%注:f~(n+1)(x)表⽰f(x)的n+1阶导数%输出的量:向量y是向量x处的插值,误差限R,n次⽜顿插值多项式L及其系数向量C,%差商的矩阵Afunction[y,R,A,C,L] = newton(X,Y,x,M)n = length(X);m = length(x);for t = 1 : mz = x(t);A = zeros(n,n);A(:,1) = Y';s = 0.0; p = 1.0; q1 = 1.0; c1 = 1.0;for j = 2 : nfor i = j : nA(i,j) = (A(i,j-1) - A(i-1,j-1))/(X(i)-X(i-j+1));endq1 = abs(q1*(z-X(j-1)));c1 = c1 * j;endC = A(n, n); q1 = abs(q1*(z-X(n)));for k = (n-1):-1:1C = conv(C, poly(X(k)));d = length(C);C(d) = C(d) + A(k,k);%在最后⼀维,也就是常数项加上新的差商endy(t) = polyval(C,z);R(t) = M * q1 / c1;endL = poly2sym(C); (2)命令窗⼝输⼊X = [0 0.5 1.0 1.5 2.0];Y = [0 0.0625 1 5.0625 16];x = linspace(0,pi,50);M = 1;[y,R,A,C,L] = newton(X, Y, x, M);y1 = x.*x.*x.*x; %可根据所给函数更改errorbar(x,y,R,'.g')hold onplot(X, Y, 'or', x, y, '.k', x, y1, '-b');legend('误差','样本点','⽜顿插值估算','x^4');五、运算结果(1) 图像(2) 运算结果第⼀列为所得多项式系数:。
数值分析:2.3Neton插值 待

f [xi , xi1 , xi2 ]
f [ xi , xi1 ] f [ xi1 , xi2 ] xi xi2
fi fi1 2h2
2 fi 2h2
fi1
fi2 2h2
2 fi2 2h2
f [xi , xi1 , xi2 , xi3 ]
f [ xi , xi1 , xi2 ] f [ xi1 , xi2 , xi3 ] xi xi3
2 fi 2 fi1 3 2h3
3 fi 3!h3
2
fi2 2 fxi3 3 2h3
3 fi3 3!h3
依此类推
f
[ xi , xi1 ,, xim ]
m fi m!hm
m fim m!hm
f
[ x0
,
x1
,,
xk
]
k f0 k!hk
k fk k!hk
2. Newton向前(差分)插值公式
n
k 1
n
f0 f [x0 , x1 ,, xk ] (x xj ) f [x, x0 , x1 ,, xn ] (x xj )
k 1
j0
j0
n
Nn(x) f [x, x0 , x1 ,, xn ] (x xj ) j0
Nn(x) Rn(x)
因此
Rn ( x)
f (n1) ( )
一般,可定义
向
0 fi fi
前 差 分
k fi k1 fi1 k1 fi (k 1,2,, n; i 0,1,2,, n k)
为f (x)在 xi 处的 k 阶向前差分。
同样可以定义 f x 的向后差分:
向
后
fi fi fi1
差 分