数值积分 (论文)
数值分析积分实验报告(3篇)

第1篇一、实验目的本次实验旨在通过数值分析的方法,研究几种常见的数值积分方法,包括梯形法、辛普森法、复化梯形法和龙贝格法,并比较它们在计算精度和效率上的差异。
通过实验,加深对数值积分理论和方法的理解,提高编程能力和实际问题解决能力。
二、实验内容1. 梯形法梯形法是一种基本的数值积分方法,通过将积分区间分割成若干个梯形,计算梯形面积之和来近似积分值。
实验中,我们选取了几个不同的函数,对积分区间进行划分,计算积分近似值,并与实际积分值进行比较。
2. 辛普森法辛普森法是另一种常见的数值积分方法,它通过将积分区间分割成若干个等距的区间,在每个区间上使用二次多项式进行插值,然后计算多项式与x轴围成的面积之和来近似积分值。
实验中,我们对比了辛普森法和梯形法的计算结果,分析了它们的精度差异。
3. 复化梯形法复化梯形法是对梯形法的一种改进,通过将积分区间分割成多个小区间,在每个小区间上使用梯形法进行积分,然后计算所有小区间积分值的和来近似积分值。
实验中,我们对比了复化梯形法和辛普森法的计算结果,分析了它们的精度和效率。
4. 龙贝格法龙贝格法是一种通过外推加速提高计算精度的数值积分方法。
它通过比较使用不同点数(n和2n)的积分结果,得到更高精度的积分结果。
实验中,我们使用龙贝格法对几个函数进行积分,并与其他方法进行了比较。
三、实验步骤1. 编写程序实现梯形法、辛普森法、复化梯形法和龙贝格法。
2. 选取几个不同的函数,对积分区间进行划分。
3. 使用不同方法计算积分近似值,并与实际积分值进行比较。
4. 分析不同方法的精度和效率。
四、实验结果与分析1. 梯形法梯形法在计算精度上相对较低,但当积分区间划分足够细时,其计算结果可以接近实际积分值。
2. 辛普森法辛普森法在计算精度上优于梯形法,但当积分区间划分较细时,计算量较大。
3. 复化梯形法复化梯形法在计算精度上与辛普森法相当,但计算量较小。
4. 龙贝格法龙贝格法在计算精度上优于复化梯形法,且计算量相对较小。
定积分的数值计算方法[文献综述]
![定积分的数值计算方法[文献综述]](https://img.taocdn.com/s3/m/61e43029b84ae45c3a358c3f.png)
毕业论文文献综述信息与计算科学定积分的数值计算方法一、 前言部分在科学与工程计算中,经常要计算定积分()()().baI f f x dx a b =-∞≤≤≤∞⎰ (1.1)这个积分的计算似乎很简单,只要求出f 的原函数F 就可以得出积分(1.1)的值,即()()().I f F b F a =- (1.2)如果原函数F 非常简单又便于使用,那么式(1.2)就提供了计算起来最快的积分法.但是,积分过程往往将导出新的超越函数,例如,简单积分1dx x ⎰可引出对数函数,它已不是代数函数了;而积分2x edx -⎰,将引出一个无法用有限个代数运算、对数运算或指数运算组合表示的函数.有些积分虽然容易求解,并且原函数仍然是一个初等函数,但可能过于复杂,以致于人们采用(1.2)来计算之前还得三思而行[1].例如411dx C x =++⎰, (1.3) 采用式(1.3)这种“精确”表达式时,所需运算次数是个根本问题.由式(1.3)看出,需计算对数和反正切,因此只能计算到一定的近似程度.因此可以看出,这类表面上是“精确”的方法,实际上也是近似的.因此,我们常常需要探讨一些近似计算定积分的数值方法[2].通过人们的研究和发现,得出了很多数值计算的方法,比如利用牛顿-科茨求积公式,复合求积公式,龙贝格积分法,高斯求积公式,切比雪夫求积法等来解决定积分的数值计算问题.构造数值积分公式最通常的方法是用积分区间上的n 次插值多项式代替被积函数,由此导出的求积公式称为插值型求积公式.特别在节点分布等距的情形称为牛顿-柯茨公式,例如梯形公式与抛物线公式就是最基本的近似公式.但它们的精度较差.龙贝格算法是在区间逐次分半过程中,对梯形公式的近似值进行加权平均获得准确程度较高的积分近似值的一种方法,它具有公式简练、计算结果准确、使用方便、稳定性好等优点,因此在等距情形宜采用龙贝格求积公式.当用不等距节点进行计算时,常用高斯型求积公式计算,它在节点数目相同情况下,准确程度较高,稳定性好,而且还可以计算无穷积分[3].二、 主题部分2.1 牛顿-科茨求积公式[4]2.1.1 公式的一般形式[4]将积分(1.1)中的积分区间[],a b 分成n 等分,其节点k x 为1,()k x a kh h b a n=+=- (0,1,,)k n =L . 对于给定的函数f ,在节点k x (0,1,,)k n =L 上的值()k f x 为已知.那么f 在n+1个节点01,,,n x x x L 上的n 次代数插值多项式为00()().n nj n kk j k j j k x x p x f x x x ==≠⎡⎤-⎢⎥=⎢⎥-⎢⎥⎣⎦∑∏ 如果记x a th =+,则上式可以写为00()().n nn kk j j k t j p x f x k j ==≠⎡⎤-⎢⎥=⎢⎥-⎢⎥⎣⎦∑∏ (2.1) 在积分(1.1)中的被积函数f 用其n+1个节点的代数插值多项式()n p x 来代替,可 得 ()()()()bbn n aaI f f x dx I f p x dx =≈=⎰⎰.多项式的积分是容易求出的,因此把上式写为()()()nn n k k I f I f A f x =≈=∑, (2.2)其中 ()00(),n n n k k j j kb a t j A dt b ac n k j=≠--==--∏⎰ (2.3) ()00(1)().!()!n kn n n kj j kct j dt k n k n -=≠-=--∏⎰ (2.4) 公式(2.2)称为牛顿-科茨求积公式或称为等距节点求积公式,k A 称为求积公式系数,()n k c 称为科茨求积系数.牛顿-科茨求积公式的误差估计()n E f ()()n I f I f =-,由下面定理给出 定理2.1 (1) 如果n 为偶数,(2)n f +在[],a b 上连续,则有[]3(2)()(),,n n n n E f c hf a b ηη++=∈, (2.5)其中 201(1)(2)()(2)!n n c t t t t n dt n =---+⎰L . (2) 如果n 为奇数,(1)n f+在[],a b 上连续,则有[]2(1)()(),,n n n n E f c h f a b ηη++=∈, (2.6)其中 01(1)(2)()(1)!n n c t t t t n dt n =---+⎰L . 定义2.1 如果求积公式()()nbk k ak f x dx A f x =≈∑⎰对所有次数不高于n 的代数多项式等式精确成立,但存在n+1次的代数多项式使等式不成立,则称上式求积公式具有n 次代数精度.由定理2.1可知,牛顿-科茨求积公式(2.2)的代数精度至少是n 次,而当n 是偶数时,(2.2)的代数精度可达n+1次.2.1.2 梯形公式[5]在牛顿-科茨公式(2.2)中,取n=1时(1)(1)011,2c c ==所以有 []1()()()().2b aI f I f f a f b -≈=+ (2.7) 公式(2.7)称为梯形公式,如果用连接(),()a f a 和(),()b f b 的直线来逼近f ,并对这线性函数进行积分可得到1()I f .再用1()I f 来逼近()I f . 定理 2.2 若[]2,f Ca b ∈,则梯形公式(2.7)的误差为[]3111()()()()''(),,.12E f I f I f b a f a b ηη=-=--∈ 2.1.3 辛普森公式[6]在牛顿-科茨公式(2.2)中,取n=2,则有220011(1)(2),46c t t dt =--=⎰221014(2),26c t t dt =--=⎰ 222011(1),46c t t dt =-=⎰有此得到2()()()4()().32h a b I f I f f a f f b +⎡⎤≈=++⎢⎥⎣⎦(2.8) 其中1()2h b a =-.式(2.8)称为辛普森公式. 定理2.3 若[]4,f Ca b ∈,则辛普森公式(2.8)的误差为[]5(4)221()()()(),,.90E f I f I f h f a b ηη=-=-∈2.2 复化求积公式[7]上面已经给出了计算积分()()baI f f x dx =⎰的3个基本的求积公式:梯形公式,辛普森公式,牛顿-科茨公式,并给出了它们误差的表达式.由这些表达式可知其截断误差依赖于求积区间的长度.若积分区间的长度是小量的话,则这些求积公式的截断误差是该长度的高阶小量.但若积分区间的长度比较大,直接使用这些公式,则精度难以保证.为了提高计算积分的精度,可把积分区间分为若干个小区间,()I f 等于这些小区间上的积分和,然后对每个小区间上的积分应用上述求积公式,并把每个小区间上的结果累加,所得到的求积公式称为复化求积公式.将积分区间[],a b 作n 等分,并记,,0,1,,k b ah x a kh k n n-==+=L ,于是 11()()k kn x x k I f f x dx +-==∑⎰.2.2.1 复化梯形求积公式[8]如果需要求出一个已知函数()f x 在一个很大区间[],a b 上的积分,那么我们可以把区间分成n 个长度为x h ∆=的小区间,对每一个小区间用梯形法则,然后再把这些小区间上的积分值相加.于是就得到了计算定积分的复化梯形公式:1101210()()(222)22n bi i n n ai h hf x dx f f f f f f f -+-=≈+=+++++∑⎰L (2.9)整体积分误差等于n 个小区间上的积分误差之和:整体误差= []312''()''()''()12n h f f f ξξξ-+++L ,其中i ξ是第i 个小区间上的某一点.如果''()f x 在区间[],a b 上连续,那么由连续函数的性质可知,在区间[],a b 上存在点ξ使得''()i f ξ的平均值等于()f ξ.于是由于nh b a =-,有整体误差= 322''()''()()1212nh b a f h f O h ξξ--=-=, 局部误差是3()O h ,整体误差是2()O h .2.2.2 复化辛普森求积公式[9]对于积分()baf x dx ⎰,将[],a b 等分,每个小区间长度b ah n-=,节点记为 (0,1,2,,)k x a kh k n =+=L ,第k 个小区间记为[]1,(1,2,,)k k x x k n -=L .记[]1,k k x x -的中点为1121()2k k k xx x --=+,则复化辛普森公式为 1112()()()4()()6n bk k ak k h f x dx S h f x f x f x --=⎡⎤≈=++⎢⎥⎣⎦∑⎰.2.3 龙贝格积分[10]现在要介绍用龙贝格(Romberg )命名的一个算法,龙贝格首先给出了这种算法的递推形式,假设需要积分()baI f x dx =⎰ (2.10)的近似值.在讨论过程中函数()f x 和区间[],a b 将保持不变.2.3.1 递推梯形法则[10]设()T n 表示在长度是()/h b a n =-的n 个子区间上积分I 的梯形法则.根据()''()nbai f x dx h f a ih =≈+∑⎰,我们有 00()()''()''()nn n i i b a b a T h f a ih f a i n n ==--=+=+∑∑, (2.11) 这里求和符号中的两撇表示和式中第一项和最后一项减半. 2.3.2 龙贝格算法[10]在龙贝格算法中使用上述公式.设(,0)R n 表示具有2n个子区间的梯形估计,我们有[]1211(0,0)()()()21(,0)(1,0)((21))2n n n i R b a f a f b R n R n hf a i h -=⎧=-+⎪⎪⎨⎪=-++-⎪⎩∑ , (2.12) 对于一个适度的M 值,计算(0,0),(1,0),(2,0),,(,0)R R R R M L ,并且其中没有重复的函数值的计算.在龙贝格算法的其余部分中,还要计算附加值(,)R n m .所有这些都可以被理解为积分I 的估计.计算出(,0)R M 后,不再需要被积函数f 值的计算.根据公式[]1(,)(,1)(,1)(1,1)41m R n m R n m R n m R n m =-+-----, (2.13)对于1n ≥和1m ≥构造R 阵列的各列.定理 2.4(龙贝格算法收敛性定理)[10]若[],f C a b ∈,则龙贝格阵列中每一列都收敛于f 的积分.因此,对每个m ,lim (,)()baR n m f x dx =⎰.2.4高斯求积[11]前面研究的求积公式都是事先确定了n 个节点,然后按使求积公式阶数达到最大的原 则选取最佳权.由于自由参数为n 个,所以阶数一般为n-1,但如果节点的位置也自由选择,则自由参数的个数将变为2n ,因此求积公式的阶数可达到2n-1.高斯求积公式就是通过选择最佳的节点和权,使求积公式的阶数最大化.一般地,对每个n ,n 点高斯公式都是唯一的,而且阶数为2n-1.因而,对一定的节点个数,高斯求积公式的精度是最高的.但它的求得比牛顿—柯特斯公式要困难得多.虽然它的节点和权也可由待定系数法确定,但得到的方程是非线性的.2.4.1 高斯求积公式[11]为说明高斯求积公式,推导区间[]1,1-上的两点公式1112221()()()()()I f f x dx w f x w f x G f -=≈+=⎰,其中的节点1x 、2x 及权1w 、2w 按使求积公式阶数最大化的原则选取.令公式对前四个单项式精确成立,得力矩方程组112111122112221122113331122112,0,2,30.w w dx w x w x xdx w x w x x dx w x w x x dx ----⎧+==⎪⎪+==⎪⎪⎨⎪+==⎪⎪+==⎪⎩⎰⎰⎰⎰这个非线性方程组的一个解为12121,1,x x w w =-===另一个解可通过改变1x ,2x 的符号而得到.这样,两点高斯求积公式为2()(G f f f =-+,阶数为3.另外,高斯求积公式的节点也可以由正交多项式得到.若p 是n 次多项式,且满足()0,0,,1,bk ap x x dx k n ==-⎰L 则p 与[],a b 区间上所有次数小于n 的多项式正交,容易证明:1. p 的n 个零点都是实的、单的,且位于开区间(,)a b .2. 区间[],a b 上以p 的零点为节点的n 点插值型求积公式的阶数为2n-1,是唯一的n 点高斯公式.定义2.2[12] 如果1n +个节点的求积公式()()()nbk k ak x f x dx A f x ρ=≈∑⎰(2.14)的代数精度达到21n +,则称式(2.14)为高斯型求积公式,此时称节点k x 为高斯点,系数k A 称为高斯系数.定理2.5[12] 以01,,,n x x x L 为高斯点的插值型求积公式具有21n +次代数精确度的充要条件是以这些节点为零点的多项式101()()()()n n x x x x x x x ω+=---L与任意次数不超过n 的多项式()p x 带权()x ρ均在区间[],a b 上正交,即1()()()0bn ax p x x dx ρω+=⎰. (2.14)定理2.6 高斯公式()()nbi i ai f x dx A f x =≈∑⎰(2.15)的求积系数k A 全为正,且 2()(),0,1,,bbk k k aaA l x dx l x dx k n ===⎰⎰L . (2.16)定理2.7 对于高斯公式(2.14),其余项为 (22)211()()()()(22)!b n n a R f f x x dx n ξρω++=+⎰ , (2.17) 其中[]101,,()()()().n n a b x x x x x x x ξω+∈=---L2.4.2 高斯—勒让德(Gauss-Legendre )公式[13] 对于任意求积区间[],a b ,通过变换22a b b ax t +-=+,可化为区间[]1,1-,这时11()()222bab a a b b af x dx f t dt --+-=+⎰⎰. 因此,不失一般性,可取1,1a b =-=,考查区间[]1,1-上的高斯公式 11()()ni i i f x dx A f x -==∑⎰. (4.5)我们知道,勒让德多项式1211111()(1)2(1)!n n n n n d L x x n dx+++++⎡⎤=-⎣⎦+, (4.6) 是区间[]1,1-上的正交多项式,因此,1()n L x +的n+1个零点就是高斯公式(4.5)的n+1个节点.特别地,称1()n L x +的零点为高斯点,形如(4.5)的高斯公式称为高斯—勒让德公式.以上这些公式中的节点和求积系数可查表得到. 2.4.3 高斯—哈米特求积公式(Gauss-Hermite )[14] Gauss-Hermite 求积公式2()0()()nx n k k k ef x dx f x ω∞--∞=≈∑⎰, (4.7)其余项为(22)1(().2(22)!n n n n R f f n ξ+++=+ (4.8)2.4.4 高斯—切比雪夫(Gauss-Chebyshev )求积公式[15] 区间为[]1,1-,权函数()x ρ=Gauss 型求积公式,其节点k x 是Chebyshev多项式1()n T x +的零点,即21cos (0,1,,)2(1)k k x k n n π⎡⎤+==⎢⎥+⎣⎦L ,而(0,1,,)1k A k n n π==+L于是得到1021cos 12(1)nk k f n n ππ-=⎡⎤+≈⎢⎥++⎣⎦∑⎰(4.9) 称为Gauss-Chebyshev 求积公式,公式的余项为 (22)2(1)2()(),(1,1)2(22)!n n n R f f n πηη++=∈-+ , (4.10) 这种求积公式可用于计算奇异积分.2.5 递推型高斯求积[10]高斯求积公式不具有递推性:当节点个数一定时,如果自由选择所有的节点和权以达到最高的阶数,则节点个数不同的公式一般没有公共节点,这意味着与一组节点对应的积分值,在用另外一组节点计算积分值时不能被利用.Kronrod 求积公式避免了这种工作量的增加,这类公式是对称的,n 点高斯公式n G 与2n+1个点Kronrod 公式21n K +对应.21n K +节点的约束条件为:以n G 的节点作为21n K +的节点,按求积公式达到最高阶数的要求确定21n K +中剩下的n+1个节点及2n+1个权(其中包括n G 的节点的权).这样,求积公式的阶数可达到3n+1,而真正2n+1个点高斯公式应该是4n+1阶的,所以精度和效率是一对矛盾.使用两个节点个数不同的求积公式的主要原因是可以用它们的差估计积分近似值的误差.使用Gauss-Kronrod 公式对时,若以21n K +的值作为积分的近似值,则一半基于理论,一半基于经验,可以得到关于误差的保守估计: 1.521(200)n n G K +-.Gauss-Kronrod 公式不仅有效地提供了较高的精度,还给出了可靠误差估计,所以它被认为是最有效的求积公式之一,并且构成了主要软件库中求积程序的基础,特别地,公式715(,)G K 已被普遍使用.三、 总结部分因为一些定积分的求解比较复杂,所以数值积分的理论与方法一直是计算数学研究的基本课题.各种定积分的数值计算方法的出现和发展,加快和简化了求解定积分的效率和步骤.以上主要介绍了各种数值积分的方法——牛顿-科茨求积公式,复合求积公式,龙贝格积分法,高斯求积公式等.每种方法都有各自的优缺点,针对不同的积分函数采用不同的方法,所以在实际计算时,要做适当的采取.相信随着理论分析和研究的日益深入,求定积分的数值计算方法将更加简单和完善,为我们的计算带来前所未有的方便,在数学领域也将会更上一层楼.四、参考文献[1] 孙志忠,吴宏伟,袁慰平,闻震初.计算方法与实习(第4版)[M].南京:东南大学出版社,2009,(2): 128~129.[2]Micheal T .Heath . 张威,贺华,冷爱萍译.科学计算导论(第2版)[M].北京:清华大学出版社,2005,(10): 396~297.[3]李桂成.计算方法[M].北京:电子工业出版社,2005,(10):186.[4] 现代应用数学手册编委会. 现代应用数学手册——计算与数值分析卷[M]. 北京:清华大学出版社,2005,(1): 163~168.[5] 林成森. 数值计算方法(上)[M]. 北京:科学出版社,2004,(5): 220~221.[6]冯康.数值计算方法[M].北京:国防工业出版社,1978,(12): 45~47.[7]孙志忠,袁慰平,闻震初.数值分析(第2版)[M].南京:东南大学出版社,2002,(1): 191~194.[8] (美)柯蒂斯F .杰拉尔德 帕特里克O .惠特莱. 应用数值分析(第7版)[M].北京:机械工业出版社,2006,(8): 222~225.[9]夏爱生,胡宝安,孙利民,夏凌辉.复化Simpson 数值求积公式的外推算法[J].军事交通学院学报.2006,第8卷(第1期): 66~68.[10](美)David Kincaid, Ward Cheney .王国荣,俞耀明,徐兆亮译.数值分析(原书第三版)[M].北京:机械工业出版社,2005,(9): 400~403.[11]M.T.Heath. Scientific Computing:An Introductory Survey, Sscond Edition[M].清华大学出版社.英文影印版. 2001,(10): 351~355.[12]封建湖,车刚明,聂玉.数值分析原理[M].北京:科学出版社,2001,(9): 111~114.[13]杨大地,涂光裕.数值分析[M].重庆:重庆大学出版社,,2006,(9): 139~142.[14] 黄明游,刘播,徐涛.数值计算方法[M].北京:科学出版社,2005,(8):137~138.[15]Jeffery J.Leader. Numerical Analysis and Scientific Computation[M].英文影印本.北京:清华大学出版社,2005,(8): 342~349。
数学学年论文

数值积分中的代数精度的讨论学生姓名:滕伟峰 学号:20085034002 数学与信息科学学院 信息与计算科学专业指导教师:李连兵 职称:讲师摘 要:本文基于插值型求积公式及代数精度的概念,对代数精度的算法以及节点数分别为奇数和偶数时代数精度的情况进行讨论.关键词:插值型求积公式;代数精度;节点The Discussion of Algebra Precision in Numerical IntegrationAbstract: In this essay ,we base on interpolation quadrature formula and the concept of algebra precision to discuss the algebra precision algorithm and how will algebra precision going when the nodal point number is odd number or even number .Keywords: I nterpolation quadrature formula ; algebra precision ; nodal point number前 言实际问题中常常需要计算积分.有些数值方法,如微分方程和积分方程的求解问题也都和积分计算有关.在计算定积分时,根据人们所熟知的微积分基本定理,对于积分dx x f ba⎰=I )(,只要找到被积函数)(x f 的原函数()x F ,便有下列牛顿莱布尼茨公式)()()(a F b F dx x f ba-=⎰.但是在很多场合下,用这种方法往往有些困难,如(1)实验与观测仅给出()x f 在一些离散点的函数值 )(k k x f y =,0,1,2....k n =(2)函数不能用初等函数表示,如 ⎰10sin dx xx,⎰-102dx x e 等. (3)计算某些数学模型时,经常遇到大量定积分需要计算,用牛顿莱布尼茨公式就显得过于费时费力.基于上述原因,我们有必要研究积分的计算问题.1 插值型的求积公式目前,数值积分用的最多的公式就是插值型的求积公式()()∑⎰===nk k k ban nx f A dx x L I,其中k x 为给定的一组节点,且满足 b x x x x a n ≤<<<<≤ 210,并且已知()x f 在这些节点上的函数值.作插值函数()x L n ,()⎰=ba n n dx x L I 为积分()dx x f ba⎰=I 的近似值,k A 为求积系数,通过插值基函数)(x l k 积分得出k A ⎰=bak dx x l )(.2 代数精度的概念数值求积方法是近似计算,为了保证精度,我们自然希望求积公式能对“尽可能多”的函数准确成立,这也就引出了代数精度的概念.定义1 如果某个求积公式对于次数不超过m 的多项式均能准确地成立,但对于1+m 次多项式就不能准确成立,则称该求积公式具有m 次代数精度.显然,对于公式∑⎰=≈nk k k bax f A dx x f 0)()(具有m 次代数精度等价于mk k a b mk k a b ni k ii k k k k XA ≤+-=>+-≠=++++∑;1;101111{.因此,讨论代数精度m 时,就要从两方面讨论,一是在m 次成立,二是在1+m 次不成立.一般地,欲使求积公式∑⎰=≈nk k k bax f A dx x f 0)()(具有m 次代数精度,只要令它对于m x x x x f 2,,1)(=都准确成立,这就要求∑=-=nk ka b A,()a b x A nk k k -=∑=021, (1)()nk k k A f x =∑=()1111k k b a k ++-+. 以下将通过一道例题来说明这个问题.例2.1 求))(()(a b a f x f ba -=⎰的代数精度.解 由于当1)(=x f 时,⎰bax f )())((a b x f a b -=-=;当x x f =)(时,)()(21)(22a b a a b dx x f ba-≠-=⎰; 因此公式))(()(a b a f x f ba-=⎰具有1次代数精度.2.1 对于给定节点不等距的情况 如果事先已给定[],a b 中的求积节点k x 如下01n a x x x b ≤<<<≤ ,此时,式(1)成为n+1个未知数01,,n A A A 的m+1阶线性方程组,显然m n <时,有无穷多组解.用n+1个互异节点01,,n x x x 可以构造具有多高的代数精度的求积公式呢?我们有如下定理:定理 对于任意给定的n+1个互异节点01n a x x x b ≤<<<≤ ,总存在求积系数01,,n A A A ,使求积公式()()∑⎰===nk k k ban nx f A dx x L I至少具有n 次代数精度.3 牛顿—科特斯公式在做积分运算的过程中我们常常将积分区间][b a ,划分为n 等份,步长为nab h -=选取等距节点,kh a x k +=, i=0,1,2 ,n ,构造出插值型求积公式∑=-=I nk n k n x f C a b 0)()()(,此公式即为牛顿---科特斯公式.特别地当1=n 时,2)()()(a f b f a b I n --=, 此公式为梯形公式.当2=n 时,不难求02114,66C C C ===.此时相应的牛顿—科特斯公式为⎥⎦⎤⎢⎣⎡+++-=)()2(4)(6b f b a f a f a b S , 此公式称为为辛普森公式.当4=n 时,C [])(7)(32)(12)(32)(79043210x f x f x f x f x f ab ++++-=, 此时的牛顿—科特斯公式特别地称为科特斯公式.但作为插值型的求积公式,n 阶的牛顿—科特斯公式至少具有n 次代数精度.实际的代数精度能否进一步提高则是我们更应该关注的问题.首先我们考虑偶数阶牛顿科特斯公式的代数精度.引理 牛顿科特斯公式至少具有n 次代数精度;如果n 为偶数,则其代数精度能提高到n+1次.容易验证辛普森公式的代数精度刚好是3.先看辛普森公式:它是二阶牛顿—科特斯公式,因此至少具有二次代数精度.进一步用3)(x x f =进行检验,按辛普森公式计算得⎥⎦⎤⎢⎣⎡+++-=333)2(46b b a a a b S ; 另一方面)(51443a b dx x I ba -==⎰, 此时有I S =.即辛普森公式对不超过三次的代数精度均能准确成立.同样,我们用4)(x x f =进行检验⎥⎦⎤⎢⎣⎡+++-=444)2(46b b a a a b S , 另一方面)(51554a b dx x I ba -==⎰, 此时有I S ≠.因此,辛普森公式具有3次代数精度.一般地,当被积函数()f x 在区间][b a ,内具有连续的高阶导数时,牛顿—科特斯公式余项具有下列结论:(1)当n 为偶数时,设[]2(),n f x C a b +∈,则总存在(,)a b ζ∈,使得(2)1()()()(2)!n bn af E f xp x dx n ζ++=+⎰;(2)当n 为奇数时,设[]2(),n f x C a b +∈,则总存在(,)a b ζ∈,使得(1)1()()()(1)!n bn a f E f p x dx n ζ++=+⎰; 由引理及上面的余项公式我们有如下定理.定理2 当n 为偶数时,牛顿—科特斯公式∑=-=I nk n k n x f C a b 0)()()(具有1+n 次代数精度;当n 为奇数时,它有n 次代数精度.下面我们给出此定理的具体证明.证明 我们只要证明出当n 为偶数时,牛顿—科特斯公式1)(+=n x x f 的余项全为零,2)(+=n x x f 的余项不为零即可.按余项dx x n f I I f R ban n )(!)1()()()1(ωξ⎰+=-=+,式中ξ与变量x 有关,)())(()(10n x x x x x x x ---= ω.由于)!1()()1(+=+n x f n ,从而有)(f R dx xx banj j⎰∏=-=0)(.引入变量th a x +=,并注意到jh a x j +=有)(f R dt j t hn nj n ⎰∏=+-=002)(.若n 为偶数,则2n 为整数,再令2nu t +=,进一步有 )(f R du j nu hn n nj n ⎰∏-=+-+=2202)2(. 据此就可以制定)(f R =0.因为被积函数∏=-+=nj j nu u H 0)2()(=∏-=-22)(n nj j u 是一个奇函数,并且,当2)(+=n x x f 时,dx x n f f R ba n )(!)1()()()1(ωξ⎰+=+⎰=badx x x )(ωdx x x x banj j ⎰∏=-=0)(引进变量th a x +=,并注意到jh a x j +=有)(f R dt j t x hnnj b an ⎰∏⎰=+-=002)(.因为n 为偶数,则2n 为整数,再令2nu t +=,有 )(f R du j nu hx n n nj n ba⎰∏⎰-=+-+=2202)2(. 由于∏=-+=nj j nu x u g 0)2()(是偶函数,故 )(f R ≠0.因此,当n 为偶数时,牛顿科特斯公式具有n+1次代数精度.同理,当n 为奇数时,由)(f R dx xx banj j⎰∏=-=0)(,引入变量th a x +=,并注意到jh a x j +=有)(f R dt j t hn nj n ⎰∏=+-=002)(.若n 为奇数,则21-n 为整数,再令21-+=n u t ,进一步有 )(f R du j n u hn n nj n ⎰∏-=+--+=2202)21(. 因为被积函数∏=--+=nj j n u u Q 0)21()(=∏+--=-2121)(n n j j u 是一个奇函数,故)(f R =0.同理,当1)(+=n x x f 时,)(f R ≠0.即n 为奇数时,牛顿—科特斯公式具有n 次代数精度.以上讨论的是给定等距节点的情况,下面简单说一下节点不等距的情况. 3.1 对于给定节点不等距的情况 为了使()()nbk k ak f x dx A f x ==∑⎰=()1111k k b a k ++-+ 成立,(这里(),k f x ()1111k k b a k ++-+为已知),则要有n 个条件,即有n 个节点,构成n-1次多项式,使线性组合有唯一解.即nk i i i A X =≠∑()1111k k b a k ++-+. 所以,当1m n =- 等式有唯一解;当1m n >-等式无解;当1m n <-等式有无穷多解.因此,在节点给定的情况下,代数精度m 为1n -. 3.2 未给定节点的情况在未给定节点位置的情况下,1()nk k k A f x =∑里,k A 是n 个待定系数,()k f x 是n 个待定的点,因此,为使()1101()1nk k k k k A f x b a k ++==-+∑成立,要待定2n 个条件,构成21n -次多项式,使等式唯一确定,即当21m n =-等式有唯一解;当21m n >-等式无解; 当21m n <-等式有无穷多解.因此,在未给定节点位置时,代数精度m 为21n -.结束语:数值积分是近似计算,代数精度就是基于数值积分中出现的问题提出来的概念.所谓数值积分问题,就是要通过某种途径确定求积系数及节点,并使得求积结果逼近函数达到所要求的精度.本文就是在此基础上对数值积分中由于节点给出的情况不同对代数精度的算法做了浅显的讨论.这点多于做一些提高代数精度确定求积公式中的待定参数的试题有一定的帮助.参考文献:[1]吴波英主编.数值分析原理[M].北京:科学出版社,,2003[2]李庆杨王能超易大义.数值分析[M]第4版[M].北京:清华大学出版社,2001[3]徐萃薇孙绳武.计算方法引论[M] 3版[M].北京:高等教育出版社,2007[4]孙亮.具有三阶精度的数值微分紧致格式及其应用[J].数学的实践与认识,2003,(3):64-66 [5]郑华盛喻德生.求解数值微分公式及其余项的一种新方法[J].科技通报,2004(2):147-150。
实验一 面向微分方程的数值积分法仿真 (2)

实验一 面向微分方程的数值积分法仿真一、实验目的1.掌握数值积分法的基本概念、原理及应用;2.用龙格-库塔法解算微分方程,增加编写仿真程序的能力; 3.分析数值积分算法的计算步长与计算精度、速度、稳定性的关系; 4. 对数值算法中的“病态问题”进行研究。
二、实验内容1、已知系统微分方程及初值条件,(0)1y t y y =+=取步长0.1h =,试分别用欧拉方程法和RK4法求2t h =时的y 值,并将求得的值与解析解()21t y t e t =--比较(将三个解绘于同一坐标中,且用数值进行比较),说明造成差异的原因。
(①编程完成;②选用MATLAB ode 函数完成。
) 程序代码如下:t0=0; tf=2; h=0.1; y1=1; y2=1; y3=1; t1=0; t2=0; t3=0n=round(tf-t0)/h; for i=1:ny1(i+1)=y1(i)+h*(2*h+y1(i)); t1=[t1,t1(i)+h]; end for i=1:nk1=y2(i)+t2(i);k2=y2(i)+h*k1/2+t2(i)+h/2; k3=y2(i)+h*k2/2+t2(i)+h/2; k4=y2(i)+h*k3+t2(i)+h;y2(i+1)=y2(i)+h*(k1+2*k2+2*k3+k4)/6; t2=[t2,t2(i)+h]; end for i=1:ny3(i+1)=2*exp(t3(i))-t3(i)-1; t3=[t3,t3(i)+h];endplot(t1,y1,'r',t2,y2,'g',t3,y3,'k') 实验结果如下;00.51 1.52 2.524681012分析:红线为用欧拉法得到的结果,绿线为用四阶龙格—库塔法得到的结果,蓝线为根据解析方程得到的结果。
其差异原因主要有两个:1、二者的方法不同,欧拉法是根据一阶微分方程计算得到的,龙格—库塔法是根据四阶微分方程得到的;2、由于步长取为0.1,所以得到的图像与解析解之间存在差异,若将步长取小,则得到的解将更靠近解析解。
数值积分(论文)

break;
else
{
T0=T1;
T1=0;
add_T=0;
err_T=0;
}
}
在这个函数中我们将复化cotes公式和积分过程都用计算机语言表示出来。首先我们给出复化cotes公式,进行迭代,直到精确度达到设定要求,算出最后结果。
4.3 测试结果
用复化cotes有效数字四位求得的结果如下:
对区间[a,b],令h=b-a构造梯形值序列{T2K}。
T1=h[f(a)+f(b)]/2
把区间二等分,每个小区间长度为h/2=(b-a)/2,于是
T2 =T1/2+[h/22]f(a+h/2)
把区间四(22)等分,每个小区间长度为h/22 =(b-a)/4,于是
T4 =T2/2+[h/2][f(a+h/4)+f(a+3h/4).....................
数值积分 (一)
第一章 数值积分计算的重述
1.1引言
数值积分是积分计算的重要方法,是数值逼近的重要内容,是函数插值的最直接应用,也是工程技术计算中常常遇到的一个问题。在应用上,人们常要求算出具体数值,因此数值积分就成了数值分析的一个重要内容。在更为复杂的计算问题中,数值积分也常常是一个基本组成部分。
s_point=double(b)+double(a-b)/pow(2,i);
d_point=double(a-b)/pow(2,i-1);
for(j=1;j<=sum_num;j++)
{
add_T=add_T+f_x(s_point+(j-1)*d_point);
数值积分论文

数值积分的理论及其应用研究数值积分的多种问题及其在现代工程中的广泛应用张冲聪(西安文理学院数学系陕西西安 710065)摘要:数值积分的多种问题及其在现代工程中的广泛应用的探讨是计算数学的一个重要课题,数值积分是数学上的重要课题之一,是数值分析中的重要内容之一,也是数学的研究重点。
并在实际问题及应用中有着广泛的应用。
常用于科学与工程的计算中,如涉及到积分方程,工程计算,计算机图形学,金融数学等应用科学领域都有着相当重要的应用,所以研究数值积分问题有很重要的意义。
研究方法有插值法和抽样插值法等。
当然大家都知道计算积分可以借助原函数和查找积分表,但是,用这些方法只能解决很狭隘的一类积分,而且在计算的过程中,肯定会产生误差,我们要想法子使得误差尽可能的小。
因此,数值积分的公式应满足:计算简单,误差小,代数精度高等。
首先,我们通过构造函数并运用罗必达法则探讨数值积分中的矩形公式,梯形公式吧,抛物线公式,高斯公式的渐进性质。
结果表明,当积分区间的长度趋于零时,不但可以确定求积公式余项中的中介点的位置,还可以得到与之相应的修正公式,而且通过数值试验还能发现经过修正后的求积公式具有较高的代数精确度,我们可以通过构造函数运用分部积分的方法得到矩形公式,梯形公式吧,抛物线公式,高斯公式的推广并结合一些例子。
关键字:数值积分,矩形公式,梯形公式,抛物线公式,高斯公式近些年来,有关数值积分的研究已经成为一个很活跃的研究领域,所以研究数值积分有很重要的意义。
设f是闭区间[]ba,上某一给定的可积函数,现在要计算定积分⎰dtxf)(,我们可以借助原函数,或借助函数逼近的方法来计算,对于不熟悉的我们也可以借助参考积分表。
但都有一定的局限性,由于许多函数的无定积分无法用简单的函数表达出来,如一些离散点上的函数。
在微积分理论中,我们知道了牛顿—莱布尼茨(N ewtou_Leibniz)公式⎰-=)()()(aFbFdxxf其中f(x)在闭区间[]ba,上连续,F(x)是被积函数f(x)的某一个原函数,但是对于很多实际问题都无能为力。
(完整版)数值积分及matlab实现

建立数值积分公式的途径比较多, 其中最常用的
有两种:
(1)由积分中值定理可知,对于连续函数f(x),在
积分区间[a,b]内存在一点ξ,使得
分,因此将 选(x取) 为插值多项式, 这样f(x)的积分就
可以用其插值多项式的积分来近似代替
2.2 插值求积公式
设已知f(x)在节点 xk (k 0,1, , n) 有函数值 f (xk ) ,作n次拉格朗日插值多项式
式中
n
P(x) f (xk )lk (x)
k 0
lk (x)
n j0
b
n
f (x)dx
a
Ak f (xk )
k 0
为插值型求积公式的充要条件是公式
(
x)dx
时,则称求积公式为插值
设插值求积公式的余项为 R( f ) ,由插值余项定理得
R( f ) b f (x) P(x)dx b f (n1) ( ) (x)dx
a
a (n 1)!
其中 a, b
当f(x)是次数不高于n的多项式时,有 f (n1) (x) 0 R( f ) =0,求积公式(4)能成为准确的等式。由于闭区 间[a,b]上的连续函数可用多项式逼近,所以一个 求积公式能对多大次数的多项式f(x)成为准确等式, 是衡量该公式的精确程度的重要指标,为此给出以 下定义。
数值积分与微分
2009.4.22
数值积分和数值微分
1 引言 我们知道,若函数f(x)在区间[a,b]上连续且其原
函数为F(x),则可用Newton-Leibnitz公式
多种数值积分的分析比较(Gauss 抛物线 龙贝格)

多种数值积分求积公式的分析比较吴春晖(中国海洋大学海洋环境学院山东青岛 266100)摘要:对于运用牛顿-莱布尼茨积分公式不能较好解决的定义在区间[a,b]上的可积函数,原函数并不能简单地用初等函数来表达,故需要构造定积分的近似计算公式。
在本文中,主要构建了抛物线求积公式及其复化抛物线公式。
在对抛物线类的求积公式进行应用检验后,再运用Gauss求积公式,构建Gauss-Laguerre求积公式,对相同的问题进行运用,并比较截断误差。
之后再对求积过程进行优化,在限定误差范围的情况下,利用龙贝格算法,对求积加速收敛。
关键词:抛物线求积复化求积 Gauss-Laguerre 加速收敛引言:对于一些较为复杂的函数,在一定的误差要求下,需要通过构造的方式求给定函数的定积分。
基本的替代法主要有梯形面积及抛物线近似代替曲边梯形。
并通过划分更小的区间,减少截断误差从而提出了复化梯形及抛物线公式。
为了提高运算效率,有加速收敛的Richardson外推法和Romberg求积公式。
之后,针对节点数固定情况下,提出了Gauss公式,使其获得最大的精度。
本文主要研究的是抛物线求积法与Gauss-Laguerre公式。
目录第一章抛物线求积公式及应用 (3)1.1抛物线求积公式的算法 (3)1.2抛物线求积公式的matlab程序 (3)1.3复化抛物线求积公式的应用 (4)第二章Gauss-Laguerre求积公式及应用 (5)2.1 Gauss-Laguerre的算法 (5)2.2Gauss-Laguerre公式的matlab程序 (5)2.3 Gauss-Laguerre求积公式的应用 (6)第三章龙贝格算法与算法优化 (7)3.1龙贝格算法及程序 (7)3.2利用龙贝格算法优化求积 (7)3.3 龙贝格算法的应用 (8)第四章数值积分的分析总结 (9)第一章 抛物线求积公式及应用1.1 抛物线求积公式的算法抛物线求积公式,是将区间二等分,以中点及两端点作为抛物线的三个点,并求出抛物线,在区间上对抛物线函数求积分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
add_T=add_T+2*f_x(s_point+(j-1)*d_point)-4*f_x(s_point-sd_point+(j-1)*d_point)-4*f_x(s_point+sd_point+(j-1)*d_point);
}
add_T=add_T*xishu;
else
{
T0=T1;
T1=0;
add_T=0;
err_T=0;
}
}
在这个函数中我们将复化simpose公式和积分过程都用计算机语言表示出来。首先我们给出复化simpose公式,进行迭代,直到精确度达到设定பைடு நூலகம்求,算出最后结果。
3.3 测试结果
用复化simpose迭代取有效数字四位求得的结果如下:
用复化simpose迭代取有效数字七位求得的结果如下:
double add_T=0;
T0=(a-b)*(f_x(a)+f_x(b))/2;//n=1时的cotes公式即梯形公式。
for(i=1;i<=100;i++)//the first base number
{
sum_num=pow(2,i-1);
xishu=double(a-b)/sum_num;
在微积分理论中,我们知道了牛顿-莱布尼茨(Newton-Leibniz)公式
其中 是被积函数 的某个原函数。但是随着学习的深入,我们发现一个问题:对很多实际问题,上述公式却无能为力。这主要是因为:它们或是被积函数没有解析形式的原函数,或是只知道被积函数在一些点上的值,而不知道函数的形式,对此,牛顿—莱布尼茨(Newton-Leibniz)公式就无能为力了。此外,即使被积函数存在原函数,但因找原函数很复杂,人们也不愿花费太多的时间在求原函数上,这些都促使人们寻找定积分近似计算方法的研究,特别是有了计算机后,人们希望这种定积分近似计算方法能在计算机上实现,并保证计算结果的精度,具有这种特性的定积分近似计算方法称为数值积分。由定积分知识,定积分只与被积函数和积分区间有关,而在对被积函数做插值逼近时,多项式的次数越高,对被积函数的光滑程度要求也越高,且会出现Runge现象。如 时,Newton-Cotes公式就是不稳定的。因而,人们把目标转向积分区间,类似分段插值,把积分区间分割成若干小区间,在每个小区间上使用次数较低的Newton-Cotes公式,然后把每个小区间上的结果加起来作为函数在整个区间上积分的近似,这就是复化的基本思想。本文主要研究的公式有:复化梯形公式﹑复化Simpson公式﹑复化Cotes公式﹑Romberg积分法。
把[a,b] 2k等分,分点xi=a+(b-a)/ 2k ·i(i =0,1,2 · · · 2k)每个小区间长度为(b-a)/2k,由归纳法可得面所说的的第一个公式.
(二)计算公式如下:
整个程序就是循着这四个公式进行计算的。Sn,Cn, Rn分别代表特例梯形积分,抛物线积分,龙贝格积分.当然,编程的时候统一处理即可。
由以上结果可以看出两次不同精度要求的计算可以看出不同精度计算计算次数相差较多。精度为四和七间计算次数相差了三次。
第四章 复化cotes公式
4.1 复化cotes公式的算法描述
复化求积公式
当L=4时可得复化梯形公式:
=
复化cotes公式=
4.2 复化cotes公式在C语言中的实现
复化cotes公式运用的程序如下:
sum_num=pow(2,i-1); //the same as T
xishu=double(a-b)/sum_num/6;
s_point=double(b)+double(a-b)/pow(2,i);
d_point=double(a-b)/pow(2,i-1);
sd_point=double(a-b)/sum_num/4;
复化求积公式
当L=1时可得复化梯形公式:
=
复化梯形公式=
2.2 复化梯形公式在C语言中的实现
复化梯形公式运用的程序如下:
T0=(a-b)*(f_x(a)+f_x(b))/2;//n=1时的cotes公式即梯形公式
for(i=1;i<=100;i++)
{
//计算sum_num、xishu、s_point(start point)、d_point
T0=(a-b)*(7*f_x(1)+32*f_x(2)+12*f_x(3)+32*f_x(4)+7*f_x(5))/90;//四阶(n=4)cotes公式。
for(i=1;i<=100;i++)
{
sum_num=pow(2,i-1); //the same as T
xishu=double(a-b)/sum_num/90;
s_point=double(b)+double(a-b)/pow(2,i);
d_point=double(a-b)/pow(2,i-1);
for(j=1;j<=sum_num;j++)
{
add_T=add_T+f_x(s_point+(j-1)*d_point);
}
add_T=add_T*xishu;
T0=(a-b)*(f_x(a)+4*f_x((a+b)/2)+f_x(b))/6;//n=2的cotes公式即simpson公式
for(i=1;i<=100;i++)
{
//计算sum_num、xishu、s_point(start point)、d_point
//long powl (long double x, long double y)
T1=(T0+add_T)/2;
add_T=0;
//计算S1
S1=4*T1/3-T0/3;
if(i>=2)
C1=16*S1/15-S0/15;
if(i>=3)
s_point=double(b)+double(a-b)/pow(2,i);
d_point=double(a-b)/pow(2,i-1);
sd_point=double(a-b)/sum_num/8;
for(j=1;j<=sum_num;j++)
{
add_T=add_T-2*f_x(s_point+(j-1)*d_point)-32*f_x(s_point-sd_point+(j-1)*d_point)+20*f_x(s_point-2*sd_point+(j-1)*d_point)-32*f_x(s_point-3*sd_point+(j-1)*d_point)-32*f_x(s_point+sd_point+(j-1)*d_point)+20*f_x(s_point+2*sd_point+(j-1)*d_point)-32*f_x(s_point+3*sd_point+(j-1)*d_point);
1.2 问题重述
本文主要介绍微积分方程的复化解法。通过运用复化梯形公式、复化Simpose公式、复化cotes公式和Romberg积分法这四种积分法方法,解出微分方程的近似解。并进行误差分析和结果比较。
当积分区间[a,b]的长度较大,而节点个数n + 1固定时,直接使用Newton-Cotes公式的余项将会较大,而如果增加节点个数,即n + 1增加时,公式的舍入误差又很难得到控制,为提高公式的精度,又使算法简单易行,往往使用复化方法。即将积分区间[a,b]分成若干个子区间,然后在每个小区间上使用低阶Newton-Cotes公式,最后将每个小区间上的积分的近似值相加。
sum_num=pow(2,i-1);
xishu=double(a-b)/sum_num;
s_point=double(b)+double(a-b)/pow(2,i);
d_point=double(a-b)/pow(2,i-1);
for(j=1;j<=sum_num;j++)
{
add_T=add_T+f_x(s_point+(j-1)*d_point);
}
add_T=add_T*xishu;
T1=(T0-add_T)/2;
err_T=(T1-T0)/63;
//output
printf("%d %d %10.8f %10.8f",i,pow(2,i),T1,err_T);
printf("\n");
if(err_T<=0)
err_T=(-1)*err_T;
对区间[a,b],令h=b-a构造梯形值序列{T2K}。
T1=h[f(a)+f(b)]/2
把区间二等分,每个小区间长度为h/2=(b-a)/2,于是
T2 =T1/2+[h/22]f(a+h/2)
把区间四(22)等分,每个小区间长度为h/22 =(b-a)/4,于是
T4 =T2/2+[h/2][f(a+h/4)+f(a+3h/4).....................
由以上结果可以看出取两个不同的精度相对误差比较小,但计算次数大大的增加,复化梯形公式计算次数多。
第三章 复化simpson公式
3.1 复化simpson公式的算法描述
复化求积公式
当L=2时可得复化梯形公式:
=
复化simpson公式=
3.2 复化simpson公式在C语言中的实现