分段线性插值与三次样条插值法
- 格式:docx
- 大小:58.29 KB
- 文档页数:8
几种常用的插值方法数学系 信息与计算科学1班 李平指导老师:唐振先摘要:插值在诸如机械加工等工程技术和数据处理等科学研究中有许多直接的应用,在很多领域都要用插值的办法找出表格和中间值,插值还是数值积分微分方程数值解等数值计算的基础。
本文归纳了几种常用的插值方法,并简单分析了其各自的优缺点。
关键词:任意阶多项式插值,分段多项式插值。
引言:所谓插值,通俗地说就是在若干以知的函数值之间插入一些未知函数值,而插值函数的类型最简单的选取是代数多项式。
用多项式建立插值函数的方法主要用两种:一种是任意阶的插值多项式,它主要有三种基本的插值公式:单项式,拉格朗日和牛顿插值;另一种是分段多项式插值,它有Hermite 和spine 插值和分段线性插值。
一.任意阶多项式插值:1.用单项式基本插值公式进行多项式插值:多项式插值是求通过几个已知数据点的那个n-1阶多项式,即P n-1(X)=A 1+A 2X+…A n X n-1,它是一个单项式基本函数X 0,X 1…X n-1的集合来定义多项式,由已知n 个点(X,Y )构成的集合,可以使多项式通过没数据点,并为n 个未知系数Ai 写出n 个方程,这n 个方程组成的方程组的系数矩阵为Vandermonde 矩阵。
虽然这个过程直观易懂,但它都不是建立插值多项式最好的办法,因为Vandermonde 方程组有可能是病态的,这样会导致单项式系数不确定。
另外,单项式中的各项可能在大小上有很大的差异,这就导致了多项式计算中的舍入误差。
2.拉格朗日基本插值公式进行插值: 先构造一组插值函数L i (x )=011011()()()()()()()()i i n i i i i i i n x x x x x x x x x x x x x x x x -+-+--------L L L L ,其中i=0,…n.容易看出n 次多项式L i (x )满足L i (x )=1,(i=j );L i (x )=0,(i ≠j ),其中i=0,1…n ,令L i (x )=0()ni i i y l x =∑这就是拉格朗日插值多项式。
三次样条插值分段线性插值的优点:计算简单、稳定性好、收敛性有保证且易在计算机上实现缺点:它只能保证各小段曲线在连接点的连续性,却无法保证整条曲线的光滑性,这就不能满足某些工程技术的要求。
三次Hermit 插值优点:有较好的光滑性,缺点:要求节点的一阶导数已知。
从20世纪60年代开始,首先由于航空、造船等工程设计的需要而发展起来所谓样条(Spline)插值方法,既保留了分段低次插值多项式的各种优点,又提高了插值函数的光滑性。
今天,样条插值方法已成为数值逼近的一个极其重要的分支,在许多领域里得到越来越多广泛应用。
我们介绍应用最广的具二阶连续导数的三次样条插值函数。
一、三次样条插值函数的定义:给定区间],[b a 上的个节点b x x x a n =<<<= 10和这些点上的函数值),,1,0()(n i y x f i i == 若)(x S 满足: (1)),,2,1,0()(n i y x S i i ==;(2)在每个小区间],[b a 上至多是一个三次多项式; (3))(),(),(x S x S x S '''在],[b a 上连续。
则称)(x S 为函数)(x f 关于节点的n x x x ,,,10 三次样条插值函数。
二、边界问题的提出与类型单靠一个函数表是不能完全构造出一个三次样条插值函数。
我们分析一下其条件个数,条件(2)三次样条插值函数)(x S 是一个分段三次多项式,若用)(x S i 表示它在第i 个子区间],[1i i x x -上的表达式,则)(x S i 形如],[,)(1332210i i i i i i i x x x x a x a x a a x S -∈+++=其中有四个待定系数)3,2,1,0(=j a ij ,子区间共有n 个,所以)(x S 共有n 4个待定系数。
由条件(3))(),(),(x S x S x S '''在],[b a 上连续,即它们在各个子区间上的连接点110,,,-n x x x 上连续即可,共有)1(4-n 个条件,即⎪⎪⎩⎪⎪⎨⎧==-=+''=-''-=+'=-'-=+=-),2,1,0()()1,,2,1)(0()0()1,,2,1)(0()0()1,,2,1)(0()0(n i y x S n i x S x S n i x S x S n i x S x S i i i i i i i i 共有241)1(3-=++-n n n 个条件,未知量的个数是n 4个。
各种插值法的对比研究目录1.引言 (1)2.插值法的历史背景 (1)3.五种插值法的基本思想 (2)3.1拉格朗日插值 (2)3.2牛顿插值 (3)3.3埃尔米特插值 (3)3.4分段线性插值 (4)3.5三次样条插值 (5)4.五种插值法的对比研究 (5)4.1拉格朗日插值与牛顿插值的比较 (5)4.2多项式插值法与埃尔米特插值的比较 (6)4.3多项式插值法与分段线性插值的比较 (6)4.4 分段线性插值与样条插值的比较 (6)5.插值法在实际生活中的应用 (6)6.结束语 (6)致谢 (7)参考文献 (7)各种插值法的对比研究摘要:插值法是一种古老的数学方法,也是数值计算中的一个算法.插值法不仅是微分方程、数值积分、数值微分等计算方法的基础,而且在医学、通讯、精密机械加工等领域都涉及到了它.本文首先介绍了插值的背景以及常用的五种插值法的基本思想,然后通过拉格朗日插值与牛顿插值、多项式插值与埃尔米特插值、多项式插值与分段线性插值、分段线性插值和样条函数插值给出相应的算法与MATLAB 程序,根据已学的知识对五种插值方法与被插函数的逼近程度进行对比研究,找出不同方法间的联系与区别,分析出它们的优缺点,最后在此基础上进一步研究插值法的实际应用,以提高插值法的实用性,从而能让我们在以后的应用中看到一个问题,就知道哪种方法更适合于它,然后大大地快速的提高效率.关键词:多项式插值;样条函数插值;MATLAB 程序;应用1.引言在很多解题以及应用生活中,常常需要用数量关系来反映问题,但是有时没有办法通过数学语言准确地表达出来.已知有些变量之间存在一种函数关系,但没法用函数的表达式表示出来.比如,)(x f 在某个区间上[]b a ,是存在某种数量关系的,但是根据观察和测量或者实验只能得到有限个函数值,我们可以利用这几点来确定函数表达式.或者有一些函数表达式是已经知道的,但是它们的计算是十分繁琐复杂的,不容易发现它的本质,而且它的使用方法也比较局限.函数是表达数与数之间的联系,为了能很好地用数学语言表达出函数的关系,一般通过给定的数据构造一个函数)(x P ,这样既能反映函数)(x f 的特点,又方便计算,用)(x P 近似)(x f .通常选一个简单的函数)(x P ,而且=)(i x P )(i x f ()n i ,...,2,1,0=成立,这个时候的)(x P ,从要表达的函数规律来看,就是我们需要的插值函数[1].所用方法就是插值法,由于所选用的)(x P 的多样化,得到不同的插值法.2.插值法的历史背景插值法的历史源远流长,在很早的时候就涉及到了它.它是数值计算中一个古老的分支,它来源于生产实践.因为牛顿力学的物理理论知识在一千年前没有出现,所以我们的祖先没有办法用很准确的数学解析式来表达日月五星的运行规律.后来,古代的人们有着聪慧的头脑,想出了插值方法,然后发现了日月五星的运行规律.例如唐朝数学家张遂提出了插值法的概念以及不等距节点的插值,并将其应用在天文历法观测中.现代工业革命以后欧洲著名的数学家拉格朗日给出了拉格朗日插值法的概念以及应用.微积分产生后,插值法的基本理论和结果进一步得到改善.3.五种插值法的基本思想如果一个函数)(x f y =在区间[]b a ,上有定义,且已知在点b x x x a n ≤<<<≤...10上的值0y ,1y ,2y , ,n y ,若存在一简单函数)(x P ,使得成立,)(x P 为插值函数,点0x ,1x ,2x , ,n x 称为插值节点,插值节点的区间[]b a ,称为插值区间,求插值函数)(x P 的方法称为插值法.若)(x P 的多项式次数不超过n ,即有)(x P n n x a x a x a a ++++= (2210)3.1拉格朗日插值拉格朗日插值是n 次多项式插值,它是用构造插值基函数的办法来解决n 次多项式插值的问题.拉格朗日插值多项式可以表示为=)(x L n ∑=n k k k x ly 0)(,)(x l k 为插值基函数,表达式为=)(x l k ))...()()...(())...()()...((110110n k k k k k k n k k x x x x x x x x x x x x x x x x --------+-+-,n k ,,1,0 = 截断误差为)()()(x L x f x R n n -=,也是插值余项.关于插值余项,估计有以下定理[2]:设)(x f n 在[]b a ,上连续,)(1x f n +在()b a ,内存在,节点b x x x x a n≤<<<<≤ 210,)(x L n 是满足条件(1.4)的插值多项式,则对任何[]b a x ,∈,插值余项)()!1()()()()(1)1(x n f x L x f x R n n n n +++=-=ωξ 余项表达式的应用有它的局限性,一般只适合于)(x f 高阶导数存在的情况下.若设1)1()(max ++≤≤=n n b x a M x f ,则误差为)()!1()(11x w n M x R n n n +++≤.3.2牛顿插值牛顿插值的基本思想是对n 次插值多项式)(x P n 进行逐次生成,然后用插值条件求出)(x P n 系数[3].因此,提出了均差(即差商)的概念.设 称有函数)(x f ,1x ,2x ,3x , ,n x 是一系列不相等的点,则[]=k x x f ,000)()(x x x f x f k k --为函数)(x f 关于点0x ,2x 的一阶均差; []=k x x x f ,,10[]1100],[,x x x x f x x f k k -- 称为)(x f 的二阶均差; []=k x x x f ,...,,10[][]1110210,...,,,,...,,-----k k k k k x x x x x f x x x x f 为)(x f )的k 阶均差. 我们先求出1次多项式,2次多项式,然后类推出n 次多项式,构造出n 次代数插值多项式的另外一种表达形式—牛顿插值多项式=)(x P n +)(0x f []10,x x f +-)(0x x []210,,x x x f )(0x x -+-)(1x x … []n x x x x f ,...,,,210+)(0x x -))...((11---n x x x x ,=)(x R n []n x x x x x f ,...,,,,210)(0x x -))...((1n x x x x --, =)(x f +)(x P n )(x R n . )(x P n 为牛顿插值多项式,)(x R n 为余项.3.3埃尔米特插值有的时候解决函数)(x f 的问题,不仅要在某些点上知道函数值,而且已知在一些点上的导数值.那么这时插值函数)(x P ,它在某些点处的导数值和函数值与原表达式的值相等的.那么我们从几何这个方面来思考这个问题,求出插值多项式的曲线,不但通过已知点组,而且在这些点处与原曲线"相切"[4].(一)、泰勒插值定义 [][])(,lim ,0'0000x f x x f x x f x x ==→为一阶重节点均差;[][])(21,,lim ,,0''2100000201x f x x x f x x x f x x x x ==→→为二阶重节点均差; 则n 阶重节点均差为[][])(!1,,,lim ,,,0100000x f n x x x f x x x f n n x x i ==→ . 当0x x i →时,牛顿插值公式的极限为=)(x P n +)(0x f )(0'x f +-)(0x x ...!n x f n )(0)(nx x )(0-. 称为泰勒插值多项式.它满足条件=)(0)(x P k n )(0)(x f k ,),...,2,1,0(n k =(二)、两点三次埃尔米特插值若)(x f 在k x ,1+k x 的函数值为k y ,1+k y ,k k m x f =)(',11')(++=k k m x f ,我们可以构造出一个次数不超过3的多项式,)(3x H 为插值函数.设=)(3x H +k k y x a )(+++11)(k k y x a +k k m x )(β11)(++k k m x β,k a ,1+k a ,k β,1+k β为插值基函数.可得结果 =)(3x H 2111))(21(+++----+k k k k k k x x x x x x x x k y 2111))(21(kk k k k k x x x x x x x x ----+++++++1k y )(k x x -+--++k k k k m x x x x 211)(121)(++--k k k k m x x x x , =)(3x R 2124)())((41+--k k x x x x f ξ!,),(1+∈k k x x ξ. 3.4分段线性插值分段线性插值:一般描述,如给定[]上b a ,1+n 个节点b x x x x a n =<<<<= 210和相应的函数值)(i f f i =),...,2,1,0(n i =,记k k k x x h -=+1,k kh h max =. 构造)(x I h 满足:(1)[]b a C x I h ,)(∈;(2)k k h f x I =)(),,2,1,0(n k =;(3))(x I h 在每个小区间[]1,+k k x x 上是线性函数.由以上条件直接可得)(x I h 在小区间[]1,+k k x x 上的表达式为=)(x I h +--++k k k k f x x x x 1111++--k kk k f x x x x , )1,,2,1,0(-=n k 误差估计 -)(x f =)(x I h ))((!2)(1)(''+--k k k x x x x x f ξ))((max 2121+≤≤--≤+k k x x x x x x x M k k . 当∞→h 时,0)()()(→-=x I x f x R h ,)(x I h 在[]b a ,上一致收敛到)(x f .3.5三次样条插值三次样条插值(Spline 插值)的具体要求是:函数[]b a C x S ,)(2∈,并在每个小区间[]1,+j j x x 上是一个三次多项式,其中b x x x x a n =<<<<=...210是给定节点,如果对给定的节点函数值有j y )(j x f =),...,2,1,0(n j =,并且=)(j x S j y ,),...,2,1,0(n j =成立,这时我们就把)(x S 称为三次样条插值函数.4.五种插值法的对比研究通过讨论插值法的相关内容,可以让我们更好的了解插值法.现在我们先从插值多项式的形式上、用途上、计算方法上、精确度上等进行对比研究,比较各自优缺点,然后再通过实例验证之.4.1拉格朗日插值与牛顿插值的比较(一)拉格朗日插值多项式步骤衔接紧密,条理清晰,在理论中十分重要.但是计算比较复杂,因为每添加一个点,所以的公式都要重新计算,这样计算步骤较多会导致计算量变大,反而会导致出现误差与原来的目的背道而驰.(二)牛顿插值多项式的计算量小,步骤简洁.当添加一个节点时,它仍然可以使用,即具有“承袭性”也叫“继承”,所以此类方法应用灵活.但是我们根据正常的想象和观察插值余项,我们一般局部地总是认为当原函数给出的点是越来越多时,我们借助的辅助函数的次数越高,它就和原函数越来越近,误差越来越小.然而事实并非如此,当遇到插值节点等距分布的情况时,只要求函数点值相等不能够充分反映插值函数的性质[5].4.2多项式插值法与埃尔米特插值的比较多项式插值要求在插值节点上函数值相等,计算简单,条件不怎么苛刻.但是如果有的时候一方面要在节点处函数值相等,另一方面要导数值相等,这时多项式插值否则不满足此类情况.埃尔米特插值不仅算法简单而且它具有强烈收敛性.但是它的光滑度不高,而且它的使用条件,也有局限性.在一些特定的限制条件下,有时函数的导数值在这点是完全没有必要知道的.因此,知道节点处的导数的插值函数成为能否运用Hermite插值的一个重要因素[6].4.3多项式插值法与分段线性插值的比较多项式插计算简单,比较方便,但是节点增加的同时就会出现龙格现象,图形波动较大[7].分段线性插值能够克服龙格现象,有收敛性,但是在区间内有转折点,光滑性不好.4.4 分段线性插值与样条插值的比较样条插值的插值函数算法稳定,而且插值函数光滑,收敛性强,误差小.但是它不能局部确定,常常需要解线性方程组.5.插值法在实际生活中的应用插值法是数值逼近中一个非常重要的部分,其次它在实际生活中起着不容小觑的作用,比如天文学以及数学.6.结束语插值法在解决实际问题中有很大的应用.插值方法是各种各样的,它包含拉格朗日插值法、牛顿插值法、Hermite插值法、分段线性插值法以及三次样条插值法等.我们不论使用哪个插值法,它的原理都是一样的.本课题首先介绍了插值的背景以及各类方法的基本思想;然后通过解题、画图、一道题用几种不同方法来解答,让我们哪种方法适合解答哪种类型的题,再然后进行对比,探讨出它们的优缺点,最后文章举个例子来说明插值法有很大的作用,它和我们是相连的,同时利用MATLAB给出了模拟图,通过这种数与形的结合,更好地了解各类插值法的应用于特征.致谢本论文在苏晓琴老师的悉心指导下完成的,同样也是我第一次写这样的文章。
第1篇一、实验目的1. 理解并掌握插值法的基本原理和常用方法。
2. 学习使用拉格朗日插值法、牛顿插值法等数值插值方法进行函数逼近。
3. 分析不同插值方法的优缺点,并比较其精度和效率。
4. 通过实验加深对数值分析理论的理解和应用。
二、实验原理插值法是一种通过已知数据点来构造近似函数的方法。
它广泛应用于科学计算、工程设计和数据分析等领域。
常用的插值方法包括拉格朗日插值法、牛顿插值法、样条插值法等。
1. 拉格朗日插值法拉格朗日插值法是一种基于多项式的插值方法。
其基本思想是:给定一组数据点,构造一个次数不超过n的多项式,使得该多项式在这些数据点上的函数值与已知数据点的函数值相等。
2. 牛顿插值法牛顿插值法是一种基于插值多项式的差商的插值方法。
其基本思想是:给定一组数据点,构造一个次数不超过n的多项式,使得该多项式在这些数据点上的函数值与已知数据点的函数值相等,并且满足一定的差商条件。
三、实验内容1. 拉格朗日插值法(1)给定一组数据点,如:$$\begin{align}x_0 &= 0, & y_0 &= 1, \\x_1 &= 1, & y_1 &= 4, \\x_2 &= 2, & y_2 &= 9, \\x_3 &= 3, & y_3 &= 16.\end{align}$$(2)根据拉格朗日插值公式,构造插值多项式:$$P(x) = \frac{(x-x_1)(x-x_2)(x-x_3)}{(x_0-x_1)(x_0-x_2)(x_0-x_3)}y_0 + \frac{(x-x_0)(x-x_2)(x-x_3)}{(x_1-x_0)(x_1-x_2)(x_1-x_3)}y_1 + \frac{(x-x_0)(x-x_1)(x-x_3)}{(x_2-x_0)(x_2-x_1)(x_2-x_3)}y_2 + \frac{(x-x_0)(x-x_1)(x-x_2)}{(x_3-x_0)(x_3-x_1)(x_3-x_2)}y_3.$$(3)计算插值多项式在不同点的函数值,并与实际值进行比较。