当前位置:文档之家› 数学与应用数学本科毕业论文 关于几种插值多项式的比较分析

数学与应用数学本科毕业论文 关于几种插值多项式的比较分析

TONGREN UNIVERSITY 学号:2009043012本科毕业论文

关于几种插值多项式的比较分析

王晔

系别:数学与计算机科学系系

学科:理学

专业:数学与应用数学专业

指导教师:夏林丽

贵州●铜仁

2013年5月

Tongren university

数学与应用数学本科毕业论文

贵州●铜仁

2013年6月

目录(理科)

摘要 ......................................... I ABSTRACT ........................................ II 引言 ......................................... - 1 - 1 、几种常见的插值公式及其构造 ............... - 1 - 1.1 Lagrange插值法........................... - 2 -

1.2 Newton插值法 .......................... - 3 -

1.3 Hermite插值法 ......................... - 5 -

1.4 分段低次插值法......................... - 6 -

1.5 三次样条插值法......................... - 7 -

2 、例题 ..................................... - 8 -

3 、结束语 .................................. - 12 -

4、参考文献 ................................. - 13 - 附录1 ....................................... - 14 - 附录2 ....................................... - 14 - 附录3 ....................................... - 15 -

5、致谢: ................................... - 15 -

关于几种插值多项式的比较分析

数学与计算机科学系数学与应用数学专业王晔

摘要

插值法是数值算法的最基本方法之一,同时也是函数逼近、数值积分、数值微分、微分方程数值解的基础。许多实际问题都需要运用插值法来解决,所以通过介绍几种常见的插值公式及其误差估计,如:Lagrange插值公式、Newton插值公式、Hermite插值公式、分段低次插值公式、三次样条插值公式。讨论和比较它们的实用范围和优缺点.

关键词:数值分析插值法插值公式误差 Matlab

Comparison and Analysis on several kinds of interpolation

polynomials

Mathematics and Computer Science Department Mathematics and

Applied Mathematics

Wang Ye

ABSTRACT

Interpolation is one of the most basic method of numerical algorithm, but also the function approximation, numerical integration, numerical differentiation, numerical solution of differential equation based. Many practical problems need to solve by using the interpolation method, so the introduction of several common interpolation formula and error estimate, such as: Lagrange interpolation formula, Newton formula, Hermite formula of interpolation, piecewise low-order interpolation formula, three spline interpolation formula. Discuss and compare their application range and advantages and disadvantages.

Keywords:Numerical analysis Method of interpolation Formula of interpolation Error Matlab

引言

在全球化、信息化浪潮大力推动下,计算机技术得到了迅速的发展。插值法也在生活、工程和科学研究中得到了更为广泛的应用。比如在计算断面的面积、漏磁探伤和曲线拟和等诸多实际问题中,有的函数)(x f 虽然给出了解析表达式,但往往过于复杂而难以计算,使用不方便;有的函数)(x f 只能给出它在平面上一些离散的点和这些点的函数值,而函数)(x f 的具体解析表达式则不能给出,在这样的情况下,选用近似函数)(x α来逼近函数)(x f 。在数学上有多种方法逼近函数,本文主要讨论怎样运用插值法去逼近函数,比较插值法的优缺点,并讨论插值法的适用范围。

1 、几种常见的插值公式及其构造

插值法是函数插值法的简称,它的基本思想是:构造一个简单便于计算的函数)(x α去逼近原函数)(x f ,通过计算逼近函数)(x α在某一点的值从而得到原函数)(x f 在这一点的近似值,而求)(x α的方法就称为插值法。下面给出插值函数的一般定义:

定义]

432,1[,,:已知)(x f (可能未知或表达式非常复杂)是定义在区间]

,[b a 上的函数,在这个区间上有1+n 个彼此不相同的点x x x x n ,......,,,210,且对应的函数值为)(),......,(),(),(210x x x x n f f f f 。寻找一个简单、便于计算的函数

)(x α,使)(x α满足:

.,......,2,1,0),()(n k f x x k k ==α

通常称],[b a 为插值区间,)(x f 为被插值函数,)(x α为插值函数,

x

x x x n

,......,,,2

1

为插值节点。其中当)(x α是多项式时,称为代数插值方法,

即多项式插值。若设)(x R 为误差函数或余项,则有)()()(x x f x R α-=.而且

)(x R 满足关系式: .,......,2,1,0,0)(n k R x k ==

1.1 Lagrange 插值法

已知Lagrange 插值是为n 次多项式插值,首先考察低次的插值多项式。当1=n 时,要构造出过两点),(0

0y x 与),(1

1y x 的多项式)(1x L (次数不超过

1次且x x 1

0≠

,使得,)(0

1

y x L =y x L 1

1

1

)(=。则)(1

x L 可以写成]

5,1[:

=

)(1x L y

+

--x

x x x 1

1

y

1

x

x x x 0

1

-- )1.1(

它是两个线性函数

=

)(00x l ,x x

x x 1

1

--=

)(11x l x

x x x 0

1

--

的线性组合,所以称)1.1(为线性插值多项式.

当2=n 时,相应的构造出过三点),,(00y x ),,(11y x ),(2

2y x 的多项式

)

(2x L (

2且

x

x x 2

1

≠≠),使得

,)(0

1

y x L =,)(1

1

1

y x L =y

x L 2

2

1

)(=。则)(2x L 可写成:

=)(2

x L y 0+)(0

x l +)(1

1

1x l y )(2

2

2

x l y

y

=

+

----)

)(()

)((201021x x x x x x x x y

1

+

----)

)(()

)((210120x x x x x x x x y

2

)

)(()

)((120210x x x x x x x x ----)2.1(

式)2.1(被称为抛物线插值多项式。

同理,当

x

x

x x n

<

<<< (2)

10

为插值节点时,有

.),.....,2,1,0()(n i y x L i

i

n

==,则)(x L n

可写成:

=

)(x L n =

∑=)(0

x n

i i i

l y )

)...()()...((

)

)...()()...((11

1100

x x x x x

x x x x x x x y n i i i i i

i

n i i n

i i

x x x x --------+-+-=∑ )

3.1(

式)3.1(被称为Lagrange 插值多项式.

在)1.1(,)2.1(,)3.1(式子中,)(x l i k 均为插值基函数,且满足:=)(x l i k ?

??01

k

i k i ≠=,即得=)(x l k ),......,2,1,0(0

n i x n

k

i i i

k

i

x

x x =--∏

≠=.

误差估计由定理形式给出: 定理]7,6,1[ 1.1.1 设

x

x x x n

,......,,,2

1

为区间],[b a 上互不相同的节点,

()],[b a x f C n

∈,且

)()

1(x f

n +在),(b a 内存在,)(x L n 满足y

x L i

i n =

)(的插值多

项式,则对),(],,[b a b a x ∈?∈?μ,使得

-

=)()(x f x R

n

=

)(x L

n

)()!

1()

(1

)

1(x n n n f

ω

μ+++.

还可写成其截断误差:)()!1()(1

1

x n x n n n

M

R ω

+++≤.其中)(max

)

1(1x f

M n b

x a n +≤≤+=,

)()(0

1

∏=+-=n

i i n x x x ω

.

Lagrange 插值多项式的优点是表达式简单明确、便于推导、格式整齐规范;缺点是没有承上启下性和计算量大,即当需要增加、减少新的节点或节点位置变化时,就得从新计算所以的函数)(x l i k 。

1.2 Newton 插值法

在介绍Newton 插值法之前,先来了解一下什么是差商? 给定了函数)(x g 在节点

x x ,1

处的函数值)(),(1

x x g g 。那么有形如:

x

x x x x x g g g 0

1

0110)

()(],[--=

,称],[10x x g 为函数)(x g 关于节点x x ,10处的一阶差

商。同理给出在节点x x x x n ,......,,,210处的函数值)(),......,(),(10x x x n g g g 。则

x

x x

x x x x x x

x x o

n

n n

n

g g g --=

-]

,...,

,[],...,

,[],...,

,[1

1

2110被称

为函数)(x g 关于节点x x x x n ,......,,,210的n 阶差商。所以可得到差商表如下所示]1[:

表1 差商表

x

k

)(x k g

一阶差商

二阶差商 三阶差商 x 0

)(0x g

x 1

)(1x g ],[10x x g

x

2

)(2x g ],[21x x g ],,[210x x x g

x

3

)(3x g

],[32x x g

],,[321x x x g

],,,[3210x x x x g

… … … …

由差商的定义可以得出]

75,1[,:

??

?

?

?

?

?-+=-+=-+=-]

,...,,[)(],...,,[],...,,[........................................................],,[)(],[],[]

,[)()()(01010101100000x x x x x x x x x x x x x x x x x n n n n x g x g x g x g x g x g x g x g x g 所以有:=)(x g +)(0x g )(0x x -+],[10x x g ))((10x x x x --++......],,[210x x x g

)())((110x x x n x x x ---- +],...,,[10x x x n g ],...,,[)(0x x x n n x f x -

+=)(x N n )(x R

n

其中:

=)(x N

n

+)(0x g )(0x x -+],[10x x g ))((10x x x x --+

+......],,[210x x x g )())((110x x x n x x x ---- ],...,,[10x x x n g 。即)(x N n 是过n+1个插值点的n

阶Newton 插值多项式,)(x R n 为插值多项式误差。

由于n 次Newton 插值多项式与n 次Lagrange 插值多项式是恒等的,只是表达方式不同,即Newton 插值多项式的余项和Lagrange 插值多项式的余项相同:

=

-=)()()(x x g x N

R n

n

=+++)()!

1()

(1

)

1(x n n n f

ω

μ],...,,[10x x x n g )(1x n ω+.

当用Newton 插值多项式计算较高次的插值时,只需添加一项对应的节点和在这节点处的计算即可,而表达式前面的计算仍然有效,从而节省了计算量。但是用Lagrange 插值多项式计算较高次的插值时,在添加一项对应的节点和其计算时,表达式也要经过重新计算,计算量明显的增大。所以Newton 插值多项式在这一点上克服了承上启下的问题。但随着次数n 的增大,其误差不是很稳定,所以Newton 插值对高次插值是不可取的。

1.3 Hermite 插值法

定义

]

,3,2,1[:设在1+n 个不同的插值节点

x

x x x n

,......,,,2

1

上,给定

)(x y

i i

f =,n i f x m i i ,......,2,1,0),(='=。要求一个次数不超过12+n 的多项式

)(1

2x H

n +,使得满足条件:

y x H

i

i n =

+)(1

2,n i m x H i i n ,......,2,1,0,)(1

2=='

+.

则称满足这种条件的多项式为Hermite 插值多项式。

由于Hermite 插值是带有导数的插值法,所以在运用Hermite 插值法时就必须知道在节点处的函数值和其导数值,且还要求它们相等.如表2所示,知道了节点处的函数值和其导数值:

表2 节点数据表

x i

x

x 1

x

2

(x)

n

)(x i y y 0

y 1

y

2

… y

n

)(x i y '

b

b

1

b

2

b

n

由表2可构造出一个次数不高于12+n 的多项式

)(1

2x H

n +,则称

)(1

2x H

n +为Hermite 插值多项式,即=

+)(12x H n ))()((0

x x i

i i

n

i i

b y βα

+∑=。其

中)(x i α,

)(x i

β为插值基函数,则对),(],,[b a b a x ∈?∈?η,使得误差函数或

余项=+)(1x R zn -)(x y =

+)(12x H n )(1)!

22()

(2

)

12(x n n f

n ωη+++. Hermite 插值多项式能够克服插值函数在节点处不光滑、不可导的缺点.但是在运用Hermite 插值公式计算不但要求在节点处的导数值相等,甚至高阶导数也要求相等,条件太高.

1.4 分段低次插值法

在实际运用函数作插值多项式时,并不是插值多项式的次数越高,插值余项就越小,值就越精确。这时就出现了计算出来的值与真实值相差很大的问题,比如说常见的龙格现象.针对这类问题,通常采用分段低次多项式去分段被插函数。

以下介绍常用的分段线性插值]

81[,.

设有n+1个节点b a x

x x n

=<<<= 1

,对应的函数值为

y

y y n

,,,1

.

若记x x

i i n i h -=+-≤≤1

1

0max

,有)(x I n 满足:

(1))(x I n 属于],[b a C ; (2)y x I i

i n =

)(;

(3)在任一个小区间],[1x x i i +上,)(x I n 是线性多项式. 则称

)(x I

n

为分段线性插值函数(其中n i ,,2,1,0 =).所以在每个小区间

],[1x x i i +上,可表示为:

=

)(x I

n

x x

x y

x

x x y

i

i i

i i i

i i

x x --+

--++++1

1

1

1

误差估计由定理给出:

定理

]

6,1[ 1.4.1 若∈

)(x f ],[2

b a C

,记

)(m a x 2

x f b

x a M

''=≤≤,则对

],[b a x ∈?.

()x I n

有误差函数或余项估计:M h I R x x f x n n 2

2

8

)()()(≤

-=

.

分段低次插值函数有很好的一致收敛性和稳定性,它计算量小,在实际生活中用到是最广的.但它的光滑性太差.

1.5 三次样条插值法

三次样条插值法也是一种分段插值法。由于在许多实际问题中,用分段低次插值法去逼近函数,不仅要求被插函数的一阶导数存在且连续,而且二阶导数也是一样。所以引人三次样条插值法就是为了克服这个缺点。

设区间],[b a 上有1+n 个节点,节点为b a x

x x n

=<<<= 1

,且这些

节点的函数值分别为),,2,1,0(n k y

k

=。现在假如存在一个分段函数)(x S ,

()=x S ?????

??)()

()

(21x x x S S S n

],[],[],[12110x x x x x x n n x x x -∈∈∈

使得()x S 在以下条件:(1)y

x k

k S =

)(;

(2))(x S 的二阶导数在],[b a 上连续;

(3))(x S 在每个小区间],[1x x k k +为三次多项式. 恒成立,其中(n k ,,2,1,0 =),则称)(x S 为三次样条插值函数. 误差估计由定理给出:

定理]6,1[ 1.5.1 设],[)(4

b a x f C ∈,且记,)()

4(4max

x f

M b

x a ≤≤=

x x

k k n k h -=+-≤≤1

1

0max

,则对].[b a x ∈?,都有)(x S 的误差估计式:

.2,1,0,)()(4

4)

()

(=≤--i x x M

h

C S

f

i

i k i

三次样条插值函数它同样具有良好的收敛性和逼近性,它在内节点处的二阶导数是连续的,即曲线光滑。

2 、例题

例1]10,9,1[ 给出自然对数Inx 和它的导数')(Inx 的数表如下:

表3 数据表

x

0.40 0.50 0.70 0.80 Inx

x n I '

-0.916291 2.50

-0.693147 2.00

-0.356675 1.43

-0.223144 1.25

(1) 利用Lagrange 插值公式求60.0In 的近似值并估计误差; (2) 利用Newton 插值公式求60.0In 的近似值并估计误差; (3) 利用Hermite 插值公式求60.0In 的近似值并估计误差.

分析 本题有多种解法,除了要求的几种方法外,还可以用待定系数法、逐次线性插值法求解.

解:(1)利用Lagrange 插值公式,得

用,x 40.00=,x 50.01=70.02=x 和80.03=x 作3次Lagrange 插

值多项式)(3x L ,

=)(3

x L l y i

i i

∑=3

+

------=))()(()

)()((3020103210

x x x x x x x x x y

x x x ))()(()

)()((3121013201

x x x x x x x x x y x x x ------

+

------+

))()(()

)()((3212023102

x x x x x x x x x y

x x x ))()(()

)()((2313032103

x x x x x x x x x y

x x x ------

则把60.0=x 代入)(3x L 中得:509975.0)60.0(3-=L

由于 4.234)(4)

4(8

.04.0max

≤=≤≤M f

x x

即有

)(!

4)(4

4

3x x M R ω≤

004.0≤

(2)利用Newton 插值公式,得差商表如下

表4 差商表

x Inx 一阶差商

二阶差商

三阶差商

0.40 -0.916291 0.50 -0.693147 2.23144 0.70 -0.356675 1.6823575 -1.830275 0.80

-0.223144

1.33531

-1.156825

1.684375

所以

=)(3

x N

+)(0x g ],[10x x g +-)(0x x ],,[210x x x g ))((10x x x x --

],,,[3210x x x x g +))()()((3210x x x x x x x x ----

把60.0=x 代入

)(3

x N

中得:50997525.0)60.0(3-=N

=-=)()()(33x x g x N R ],,,[3210x x x x g )(4x ω

?=684375.1)8.06.0)(7.06.0)(5.06.0)(4.06.0(----

00067375.00004.0684375.1=?=

(3) 利用Hermite 插值公式=+)(12x H n ))()((0

x x i

i i

n

i i

b y βα

+∑=得:

=

)(7x H []{}∑'='-+--3

02

2

)()()()()()()(21i i

i

i

i

i

i

i

i

x l x x l x l x f x x f x x

[]

{})()()()()(2)(2

3

x x f f f l x x x x l x i i i i i i i i ∑'=-?'--=

其中 =)60.0(0l 1666667.0)60.0(3-=l =)60.0(1l 666667.0)60.0(2=l

833333.15)40.0(0

-='l 666667.1)50.0(1

='l

666667.1)70.0(2-='l 833333.15)80.0(3='l

把60.0=x 代入)(7x H 中得:510889.0)60.0(7-=H 则 =)(7x R -)(x f =

)60.0(7

H

()

)(4!

8)

(2

7x f

ωη

125

.439453)(7)

7(8

.04.0max ≤=≤≤M f

x η 00000016.0)60.0(24

所以0000017439.0)(7≤x R

注 本题的真解510825623.060.0-=In ,由于相同次数的Lagrange 插值多项式和Newton 插值多项式是恒等关系,只是它们的表达形式不同,所以用它们算出来的结果也应该相同。然而从例题中可以发现分别用Lagrange 插值公式和Newton 插值公式计算出来的结果了出现差异,那是因为计算的次数不同,舍入的误差不同造成的。同时从例题中还可以看出用Hermite 插值公式计算得出的结果远比运用Lagrange 插值公式和Newton 插值公式得到的结果精确.

例 2]12,11,1[ 给定一个函

(),x

x f 2

11

+=

55≤≤-x , 现在给出等距离的插值节点n

i

x i 105+-=,其中n i ,,2,1 =.分别试用

Lagrange 插值法、分段低次插值法、三次样条插值法作出其图像,并与原图像相比较,再分析其差异.

解:首先用Lagrange 插值法进行计算,当10=n 时,在Matlab 的中输入命令[见附录1],得到以下图像:

图1

由图1可以知道在运用高次Lagrange插值多项式逼近被插函数时,并不是插值多项式的次数越高越好,随着节点的增多,用Lagrange插值法计算出来的结果与真实值相差就越大,其误差也就越大,也就出现了发散的现象,这就是我们常说的龙格现象。

然后再在图1的基础上用分段插值法计算,并在Matlab上实现[见附录2],得出图像如下:

图2

由图2中可以看出,用分段插值法计算出来的结果与真实值相差很小,所以分段插值法克服了高次Lagrange插值法的缺点,不但不会出现龙格的现象,也不会出现不收敛的现象。但是它还是具有插值精度低、节点处不光滑的缺点。

同理运用三次样条插值法计算,由Matlab得到以下图像[见附录3]:

图3

同样由图3中可以看出,三次样条插值法不仅克服了高次Lagrange插值法的不收敛性,同时也克服了分段插值法的插值精度低、在节点处不光滑的缺点,即提高节点处的光滑性。

3 、结束语

本文讨论了数值分析中几种常见的插值法,知道了插值法在数值分析中的重要地位。分别介绍了各种插值法实用范围和优缺点,并通过例题论证了其结果,加深其印象.让读者能够很好的估计误差,使其最小.文中同时运用了Matlab解决问题,使其计算量大大的减少.也为人们在以后遇到需要用插值法解决的诸多实际问题的时候,提供一点参考资料。

4、参考文献

[1] 韩旭里.数值计算方法[M].复旦大学出版社,2008.

[2] 关治,陆金甫.数值分析基础[M].北京:高等教育出版社,1998.

[3] 黄友谦,李岳生.数值逼近[M]. 北京:高等教育出版社,1987.

[4] 李庆扬,关治,白峰杉.数值计算原理[M]. 北京:清华大学出版社,

2000.

[5] 马东升,雷勇军.数值计算方法(第二版)[M].机械工业出版社,2006.

[6] 姜启源,谢金星,叶俊.数学模型(第三版)[M]. 北京:高等教育出版

社,2005.

[7] 王德人,杨忠华.数值逼近引论[M]. 北京:高等教育出版社,1990.

[8] 王能超.数值分析简明教程[M]. 北京:高等教育出版社,2001.

[9] 封建湖,车明刚.计算方法典型题分析解集[M].西北工业大学出版社,

2003.

[10] 王能超.计算方法简明教程[M].北京:高等教育出版社,2004.

[11] 张丽娟.三种插值方法的应用与比较[J].赤峰学院学报,2010.(3)

[12] 张德丰.MATLAB数值分析应用(第二版)[M].国防工业出版社,

2009.

附录1

x=[-5:1:5];

y=1./(1+x.^2);

x0=[-5:0.1:5];

y0=lagrange(x,y,x0);

y1=1./(1+x0.^2);

plot(x0,y0,’—r’)

hold on

plot(x0,y1,’-b’)

legend(拉格朗日插值曲线,‘原曲线’)

y2=interp1(x,y,x0);

plot(x0,y2,’*m’)

legend

附录2

yi=interp1(x,y,xi)对节点(x,y)插值,求插值点的函数值.

yi=interp1(x,y,xi,’method’)

method指定插值的算法,默认为线性算法.其值可为:

‘nearest’线性最近项插值

‘linear’线性插值

‘spline’立方样条插值

‘cubic’立方插值

附录3

x=[-5:1:5];

y=1./(1+x.^2);

x0=[-5:0.1:5];

y0=lagrange(x,y,x0);

y1=1./(1+x0.^2);

y2=interp1(x,y,x0,’spline’);

y3=interp1(x,y,x0);

plot (x0,y1,’-b’,x0,y0,’—r’,x0,y2,’xk’,x0,y3,’-y’);

legend

5、致谢:

在写论文的过程中,遇到了许多困难,但是在指导老师和同学们的帮助下,我最终克服这些难关,论文才得以完成.在这里我对帮助我的老师和同学们表示深深的感谢,也感谢为我的论文提供文献的作者。愿你们身体健康,万事如意!

相关主题
文本预览
相关文档 最新文档