数值分析教案第二章

发布 2022-07-15 12:10:28 阅读 6915

newton插值多项式。

利用插值基函数很容易得到拉格朗日插值多项式,拉格朗日插值公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,不得不重新计算所有插值基函数,这在实际计算中是很不方便的,为了克服这一缺点,引入了出具有承袭性质的牛顿插值多项式,首先介绍在牛顿插值中需要用到的差商计算。

差商。设有函数为一系列互不相等的点,称为关于点的一阶差商,记为,即。

类似于高阶导数的定义,称一阶差商的差商。

为关于的二阶差商,记为。一般地,称。

为关于的阶差商,记为。

函数关于的零阶差商即为函数在的函数值,。

容易证明,差商具有下述性质:

1)各阶差商均具有线性性,即若,则对任意正整数,都有。

2)阶差商可表示成的线性组合。

其中。用归纳法可以证明这一性质。

是显然的。时。

3)各阶差商均具有对称性,即改变节点的位置,差商值不变。如。

4)若是次多项式,则一阶差商是次多项式。

事实上,如果是次多项式,则也是次多项式,且。于是可分解为。

其中为次多项式。所以。

为次多项式。

计算差商。按照差商定义,用两个k-1阶差商的值计算k阶差商,通常用差商表的形式计算和存放(见表1)。

由于差商对节点具有对称性,可以任意选择两个k-1差商的值计算k阶差商。

表1 差商表。

例1】给定函数的函数表。

写出函数的差商表。

解差商表如下:(写牛顿插值多项式)

牛顿插值(根据差商定义推导牛顿插值多项式)

根据差商定义,把看成[a,b]上一点,可得。

左右两端乘()移项得。

二阶差商:整理得:

同理:只要把后一式代入前一式,就得到。其中。

则。显然,是至多次的多项式。而由。

即得。这表明满足插值条件,因而它是的次插值多项式。这种形式的插值多项式称为newton插值多项式。

newton插值优点:每增加一个节点,插值多项式只增加一项,即。

因此便于递推运算。而且newton插值的计算量小于lagrange插值。

由插值多项式的唯一性可知,次newton插值多项式与次lagrange插值多项式是相等的,即,它们只是表示形式不同。因此newton余项与lagrange余项也是相等的,即。

由此可得差商与导数的关系。

泰勒系数:)

其中。例2】对上例的中的,求节点为的一次插值多项式,节点为的二次插值多项式和节点为的三次插值多项式。

解由上例知,,,于是有。

例2】用newton插值公式计算ln11.5。

解如果仍取点作抛物线插值,按表1计算,结果如下:

n2(x)=2.3979+0.0870(x-11)-0.0035(x-11)(x-12)

ln11.5≈n2(11.5)

若加节点x=10,14,ln10=2.3026,ln14=2.6391,用lnx四次插值多项式近似,则按表1计算结果如下:

所以。ln11.5≈n4(11.5)

牛顿插值的matlab实现。

在matlab中实现牛顿插值的**如下:

function f = newton(x,y,x0)

求已知数据点的牛顿插值多项式。

已知数据点的x坐标向量:x

已知数据点的y坐标向量:y

插值的x坐标:x0

求得的牛顿插值多项式或在x0处的插值:f

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, 3);

endend

end例3】牛顿插值应用实例。根据下表所列的数据点求出其牛顿插值多项式,并计算当x=2.0时的y值。

解:在命令窗口command window直接输入:

> x=[ 1 1.2 1.8 2.5 4] %逗号与空格等价。

为了验证它已在工作空间中,回车后得到如下结果。x =

> y=[1 1.44 3.24 6.25 16];

> f = newton (x,y)

回车后得到:

f =. 182711e-14-.482154e-14*t+1.00000*t^2-.169177e-14*t^3+.211471e-15*t^4

>> f= newton (x,y,2.0)

回车后得到:f =

**中的数据点是按y= 给出的,当插值函数在x=2.0时的值看出= 4。

在编辑窗口输入:

t=1:0.01:4;

z=.182711e-14-.482154e-14*t+1.00000*t.^2-.169177e-14*t.^3+.211471e-15*t.^4;

x=[1 1.2 1.8 2.5 4];

y=[1 1.44 3.24 6.25 16];

plot(t,z,x,y,'ro');grid

命令执行后得到如图1-2所示图形。

图 1-2 牛顿插值多项式与数据点的关系。

matlab函数调用,存放位置; 命令窗口,编辑窗口的使用。

数值分析第二章

第二章插值法。1 当时,求的二次插值多项式。解 则二次拉格朗日插值多项式为。2 给出的数值表。用线性插值及二次插值计算的近似值。解 由 知,若采用线性插值法计算即,则。若采用二次插值法计算时,3 给全的函数表,步长若函数表具有5位有效数字,研究用线性插值求近似值时的总误差界。解 求解近似值时,误差可...

数值分析第二章

列选主元lu分解法 function l,u,pv luex a luex lu factorization with partial pivoting synopsis l,u,pv luex a input a coefficient matrix output l lower triangul...

数值分析第二章作业

1.当,时,且。求的二次牛顿插值多项式 证明 2.当时,且求的牛顿插值多项式,并给出其差商型余项表达式。3.已知函数满足,求其三次牛顿插值多项式,并证明存在使得。4.已知,求的四次牛顿插值多项式,并给出其导数 假设函数的五阶导数存在 型余项表达式。5.设,为互异实数,是以其为节点的lagrange插...