辛普森求积公式
matlab复化Simpson求积公式计算数值积分
,(k 0,1,...,n)k x a kh =+=b a h n-=2221222121(x)dx (x)dx [(x )4(x )(x )]3k k m a x b x k m k k k k f f h f f f -=--=≈≈++∑⎰⎰∑复化Simpson 求积公式计算数值积分一·复化Simpson 求积公式的数学理论如果用分段二次插值函数近似被积函数,即在小区间上用Simpson 公式计算积分近似值,就可导出复化Simpson 公式。
二·复化Simpson 求积公式的算法和流程图将积分区间[a,b]分成n=2m 等分,分点为,在每个小区间[222,x k k x -](k=0,1,…,n-1)上。
用Simpson 公式求积分,则有2222222221222212(x)dx [(x )4(x )(x )]6[(x )4(x )(x )]3kk x k k k k k x k k k x x f f f f h f f f -------≈++=++⎰求和得整理后得到122111(x)dx [(a)(b)2(x )4(x )]3m m bk k a k k h f f f f f --==≈+++∑∑⎰ (5-21)式(5-21)称为复化Simpson 公式。
如果(4)(x)[a,b]f c ∈,则由Simpson 插值余项公式可得复化公式的截断误差为1221115(4)2221()(x)dx [(a)(b)2(x )4(x )]3(2h)()[x ,x ]2880m m bS k k a k k mk k k h R f f f f f f ξξ--==-==-+++=-∈∑∑⎰∑因为(4)f x 为连续,故存在[a,b]ξ∈,使得(4)(4)11()()m k k f f m ξξ==∑代入上式得5(4)4(4)1(2h)()()()(a,b)2880180m s k b a R f mf h f ξξξ=-=-=-∈∑ (5-22)式(5-22)表明,步长h 越小,截断误差越小。
c语言辛普森公式求定积分
c语言辛普森公式求定积分摘要:1.辛普森公式的定义和作用2.C 语言中实现辛普森公式的方法3.求定积分的基本步骤4.辛普森公式在求定积分中的应用实例5.总结正文:1.辛普森公式的定义和作用辛普森公式,又称为梯形公式,是一种求定积分的数值方法。
它可以用来估计定积分的值,其公式为:$I_n = frac{h}{3}(f(a) + f(b) + 2sum_{i=1}^{n-1}f(x_i))$。
其中,$a$ 和$b$ 分别是积分的上下限,$h$ 是每个小区间的长度,$f(x)$ 是被积函数,$x_i$ 是每个小区间的右端点。
2.C 语言中实现辛普森公式的方法在C 语言中,我们可以使用循环结构来实现辛普森公式。
首先,需要输入积分的上下限和区间长度,然后计算梯形的面积,最后根据梯形公式计算定积分的值。
3.求定积分的基本步骤求定积分的基本步骤如下:(1) 确定积分的上下限:$a$ 和$b$。
(2) 确定区间长度:$h = frac{b - a}{n}$,其中$n$ 是区间个数。
(3) 计算每个小区间右端点的值:$x_i = a + (i - 1)h$。
(4) 计算被积函数在每个小区间的值:$f(x_i) = f(a + (i - 1)h)$。
(5) 计算梯形的面积:$S_i = frac{1}{2}h(f(x_{i-1}) + f(x_i))$。
(6) 计算定积分的值:$I_n = frac{h}{3}(f(a) + f(b) + 2sum_{i=1}^{n-1}f(x_i))$。
4.辛普森公式在求定积分中的应用实例假设我们要求定积分$int_{0}^{1} x^2 dx$,被积函数为$f(x) = x^2$。
我们可以使用辛普森公式进行求解:(1) 确定积分的上下限:$a = 0$,$b = 1$。
(2) 确定区间长度:$h = frac{1 - 0}{n} = frac{1}{n}$。
(3) 计算每个小区间右端点的值:$x_i = 0 + (i - 1)frac{1}{n} = frac{i - 1}{n}$。
复合梯形公式与复合辛普森公式对比
SHANGHAI JIAO TONG UNIVERSITY题目名称:复合梯形公式与复合辛普森公式对比学生姓名:学生学号:班级:学院(系):目录1.概述 (3)2.问题提出 (4)3.算法推导 (5)4.算法框图 (6)4.1复合梯形公式算法流程图 (6)4.2 复合辛普森公式算法流程图 (6)5.MATLAB源程序 (7)6.结论与展望 (8)图表目录图 4-1 复合梯形公式算法流程图 (6)图 4-2 复合辛普森公式算法流程图 (7)图 6-1 MATLAB计算结果 (9)表 2-1函数计算结果表 (4)1.概述梯形求积公式和辛普森求积公式分别是牛顿-科斯特公式中n=1和n=2时的情形。
其中梯形求积公式可表示为由于牛顿-科斯特公式在n≥8时不具有稳定性,故不可能通过提高阶的方法来提高求积精度。
为了提高精度通常可把积分区间分成若干子区间(通常是等分),再在每个子区间上用低阶求积公式。
这种方法称为复合求积法。
本文主要讨论复合梯形公式和复合辛普森公式在同一数学问题中的应用。
首先给出了复合梯形公式和复合辛普森公式的推导过程以及其余项的表达形式,然后用流程图的形式介绍算法思路,再运用MATLAB编写代码计算结果,最后对结果进行对比讨论。
希望通过两个算法在同一个算例中的应用对比,更好的理解和掌握复合梯形公式和复合辛普森公式的适用范围和适用条件。
并且能够熟悉MATLAB编程求解问题的流程,掌握编程化的思想方法。
同时对两种方法的计算结果对比分析,讨论两种求积方法的计算精度。
2.问题提出对于函数 给出的函数表如下,试用复合梯形公式和复合辛普森公式计算积分 。
表 2-1函数计算结果表3. 算法推导3.1复合梯形公式根据梯形公式,将区间 划分为n 等份,分点 ,, ,在每个子区间上采用梯形公式,则得:记则 为复合梯形公式。
另外,复合梯形公式的余项可表示为2()()12n b a R f h f η-''=-3.2 复合辛普森公式根据辛普森公式将区间 划分为n 等份,在每个子区间 上采用辛普森公式。
球体体积计算-梯形公式与辛普森公式
梯形公式和辛普森公式计算球体体积题目:分别用梯形公式和辛普森公式计算半径为1的球体体积解答:计算积分值:I=梯形公式:I=(b-a)/2*[]组合梯形公式:辛普森公式:I=(b-a)/6*[] 组合辛普森公式:+*(1)梯形公式计算定义函数function y=fx(x) function T_n=fht(a,b,n)源代码:function y=fx(x)y=3.14*(1-x^2);function T_n=fht(a,b,n)h=(b-a)/n;for k=0:nx(k+1)=a+k*h;endT_1=h/2*(fx(x(1))+fx(x(n+1)));for i=2:nF(i)=h*fx(x(i));endT_2=sum(F);T_n=T_1+T_2;(2)辛普森公式计算定义函数function G_n=sps(a,b,n)源代码:function G_n=sps(a,b,n)h=(b-a)/n;for k=0:nx(k+1)=a+k*hx_k(k+1)=x(k+1)+1/2*hendG_1=h/6*(fx(x(1))+fx(x(n+1)));for i=2:nF_1(i)=h/3*fx(x(i));endfor j=1:nF_2(j)=2*h/3*fx(x_k(j));endG_2=sum(F_1)+sum(F_2);G_n=G_1+G_2;结果分析:梯形公式:n=10,100,1000,T_n=fht(-1,1,10) T_n=4.1848T_n=fht(-1,1,100) T_n=4.1862T_n=fht(-1,1,1000) T_n=4.1867辛普森公式:n=10,100,1000G_n=sps(-1,1,10) G_n=4.1867G_n=sps(-1,1,10) G_n=4.1867G_n=sps(-1,1,10) G_n=4.1867通过对比,n值越大,球体体积的计算结果更加准确,并且辛普森公式计算比梯形公式更加准确V-n关系曲线梯形公式V-n曲线代码:辛普森公式V-n曲线代码:图形:。
数值计算考题五——复合梯形求积公式与复合辛普森求积公式求积分
数值计算考题五1. 分别用复合梯形求积公式与复合辛普森求积公式求积分I=⎰102x e sinx dx 的近似值,要求误差不超过ε=0.5⨯10-5.解:方法一: 复合梯形求积公式复合梯形求积公式是将积分区间划分为n 个很小的区间,然后将各个小区间的面积相加而得到在整个积分区间上的积分,当分成的小区间数n →∞时,求得的面积就等于积分的精确值。
由复合梯形求积公式的余项R n T 可得满足精度要求≤ε0.5⨯10-5时区间()b a ,被分成的区间数n 的最小值为700,所以在编程时循环次数应大于等于这个值,方可满足精度要求。
以下是编写的C 语言程序:#include<stdio.h>#include<math.h>void main(){int n=700,i;double x,f=0.0,t,h,T=0.0,c=2.0,a=0.0,b=1.0;h=(b-a)/n;for(i=0;i<n;i++){x=a+i*h;f=f+exp(pow(x,c))*sin(x);}t=(h/2)*(2*f+sin(1)*exp(1));printf("T=%f\n",t);}输出结果为T=0.778746.方法二:复合辛普森求积公式:复合辛普森求积法是将积分区间分割之后,在每个小区间[x i ,x i+1]上运用辛普森求积公式。
以下是编写的c 语言程序:#include<stdio.h>#include<math.h>void main(){int n=700,i;double x1,x2,f1=0.0,f2=0.0,t,h,T=0.0,c=2.0,a=0.0,b=1.0;h=(b-a)/n;for(i=0;i<n;i++){x1=a+i*h;x2=a+(i+0.5)*h;f1=f1+exp(pow(x1,c))*sin(x1);f2=f2+exp(pow(x2,c))*sin(x2); }t=(h/6)*(2*f1+sin(1)*exp(1)+4*f2); printf("T=%f\n",t);}程序输出结果为0.778745.2. 用高斯求积法求上述积分的近似值。
辛普森求积公式
辛普森求积公式
辛普森求积公式是数值积分中一种常用的方法,它利用三点插值公式来计算被积函数的近似积分值。
具体而言,辛普森求积公式可以表示为:
∫a^b f(x)dx ≈ (b-a)/6 [f(a) + 4f((a+b)/2) + f(b)]
其中,a和b是积分区间的左右端点,f(x)是被积函数在区间[a,b]内的取值。
公式中使用了三点插值法,将积分区间[a,b]分成了两个
子区间,然后在每个子区间中应用二次插值公式来计算积分值。
辛普森求积公式的精度比较高,在被积函数光滑的情况下可以达到二阶精度,比其他一些数值积分方法更为准确。
但是它的缺点是需要将积分区间等分成偶数份,所以在非等距离的区间上可能会有误差。
- 1 -。
牛顿辛普森公式
牛顿辛普森公式牛顿-辛普森公式是数学中的一个重要公式,它主要用于解决积分问题。
这个公式在数学分析、物理、工程等领域有着广泛的应用。
本文将详细介绍牛顿-辛普森公式的原理、应用和注意事项。
一、牛顿-辛普森公式的原理牛顿-辛普森公式是一种数值积分的方法,基于泰勒级数展开。
它将一个函数近似表示为一个多项式,并通过求和得到该函数的近似值。
具体来说,牛顿-辛普森公式将积分区间分成若干个小区间,并在每个小区间的中点上取多项式的值,将这些值相加即可得到积分的近似值。
二、牛顿-辛普森公式的应用1. 数值积分:牛顿-辛普森公式主要用于数值积分。
当被积函数难以找到原函数或者积分区间较大时,使用牛顿-辛普森公式可以方便地得到积分的近似值。
2. 求解微分方程:通过数值积分的方法,牛顿-辛普森公式也可以用于求解微分方程。
通过离散化微分方程,可以将微分方程转化为代数方程组,然后求解代数方程组即可得到微分方程的近似解。
3. 近似计算:在科学计算中,许多函数都需要进行近似计算。
牛顿-辛普森公式可以用于这些函数的近似计算,例如计算函数的值、函数的导数值等。
三、注意事项1. 精度问题:牛顿-辛普森公式的精度取决于分区的数量和多项式的阶数。
为了提高精度,需要增加分区数量和多项式的阶数。
但是,增加这些参数也会增加计算的复杂度和计算时间。
因此,需要在精度和计算效率之间进行权衡。
2. 振荡问题:当被积函数在积分区间内存在多个峰值或谷值时,牛顿-辛普森公式可能会产生振荡现象,导致结果不准确。
此时,可以使用其他数值积分方法,例如复化梯形公式、复化辛普森公式等。
3. 收敛性:牛顿-辛普森公式是一种数值逼近的方法,其结果取决于所选取的近似多项式。
如果多项式的阶数过高,可能会导致计算结果发散,因此需要对多项式的阶数进行合理的选择。
4. 稳定性:在计算过程中,可能会遇到数值稳定性问题,例如舍入误差的累积。
为了提高计算的稳定性,可以使用更精确的数值计算方法,例如使用高精度的数学库进行计算。
几种数值积分算法的误差分析
一、几种数值积分的算法
1、Newton-Cotes求积公式
(1)梯形公式(n=1)
b f (x)dx T b af (a) f (b)
a
2
(2)Simpson(辛普森)公式(n=2)
b
f (x)dx S
a
b
6
a
f
(a)
4
f
(a
2
b)
f
(b)
(3)Cotes公式(n=4)
b
f (x)dx C
1
n
f (x,)dx
1
Ak f (xk )
k 0
1 1
f (x) 1 x2
dx
n
Ak
k 0
f (xk )
ex f (x)dx
0
n
Ak f (xk )
k 0
e x2 f (x)dx
n
Ak f (xk )
k 0
二、数值积分方法的误差比较及算例
1、Newton-Cotes求积公式的误差分析
收敛的快.
余项为:
b
Rm,k ( f ) a f (x)dx Tm,k
B2m2
(b a)2m3 f (2m2) ( )
2 ! (m1)(m2k ).2m
Romberg积分法高速有效,易于编程,适合于计算机计算.但它 有一个主要的缺点是,每当把区间对分后,就要对被积函数 f (x) 计算它在 新分点处的值,而这些函数值的个数是成倍的增加的.
a
b a 90
7
f
(
x0
)
32
f
(
x1
)
12
f
(
x2
变步长辛普森公式
变步长辛普森公式
变步长辛普森公式是一种用于数值积分的方法,它的特点是在求解积分时可以自适应地调整步长,从而提高计算的准确性。
下面我将以人类的视角来描述一次使用变步长辛普森公式求解积分的过程。
现在,假设我要求解函数f(x)在区间[a, b]上的定积分,也就是求解∫[a, b] f(x)dx。
为了使用变步长辛普森公式,我首先需要将区间[a, b]等分成若干个小区间,每个小区间的长度为h。
然后,我会使用辛普森公式来近似计算每个小区间上的积分。
辛普森公式的基本思想是将每个小区间近似成一个抛物线,然后计算抛物线下的面积。
具体而言,我会选择每个小区间的三个点,分别是起点、终点和中点。
这三个点将抛物线完全确定下来,我可以使用抛物线的面积公式来计算积分的近似值。
为了提高计算的准确性,我会对每个小区间进行递归处理。
首先,我会计算整个区间[a, b]上的积分近似值,然后将区间等分成两半,分别计算左半边和右半边的积分近似值。
如果左半边和右半边的积分近似值之和与整个区间的积分近似值之差小于某个阈值,那么我就认为计算结果是准确的,否则就继续递归处理左半边和右半边。
通过这样的递归处理,我可以自适应地调整步长,从而在保证计算准确性的前提下,尽可能减少计算量。
这就是变步长辛普森公式的优势所在。
总结一下,变步长辛普森公式是一种用于数值积分的方法,它可以自适应地调整步长,提高计算准确性。
通过将区间等分成若干个小区间,然后使用辛普森公式来近似计算每个小区间上的积分,最后通过递归处理不断调整步长,得到最终的积分近似值。
这种方法在数值计算中广泛应用,可以帮助我们解决各种实际问题。
simpson求积公式的代数精度
simpson求积公式的代数精度
Simpson求积公式是数值积分中常用的一种方法,通过将被积函数在每个小区间上用二次多项式来逼近被积函数的曲线,从而求得定积分的近似值。
在这篇文章中,我们将探讨Simpson求积公式的代数精度。
我们需要了解什么是代数精度。
代数精度是指数值积分方法用多项式逼近被积函数时得到的近似积分值与真实积分值之间的误差。
对于Simpson求积公式而言,其代数精度为4,即用Simpson求积公式计算得到的近似积分值与真实积分值之间的误差是关于步长h的4次多项式。
Simpson求积公式的代数精度为4是如何得到的呢?这涉及到对被积函数进行二次多项式逼近的过程。
在Simpson求积公式中,我们将被积函数在每个小区间上用一个二次多项式来逼近,然后再对每个小区间上的二次多项式进行积分,将得到的结果相加即为整个区间上的近似积分值。
通过数学推导和分析,可以证明Simpson求积公式的代数精度为4。
代数精度的概念对于数值积分方法的选择和应用具有重要意义。
代数精度越高,意味着使用该数值积分方法得到的近似积分值与真实积分值之间的误差越小,计算结果越精确。
因此,在实际应用中,我们可以根据需要选择代数精度不同的数值积分方法来进行计算,以确保计算结果的准确性和稳定性。
Simpson求积公式作为一种常用的数值积分方法,在代数精度上具有较高的优势,能够有效地逼近被积函数的曲线并得到准确的积分值。
通过深入理解Simpson求积公式的代数精度,我们可以更好地应用这一数值积分方法,提高计算效率和准确性,为科学计算和工程应用提供有力支持。
希望本文能够帮助读者更加深入地了解Simpson求积公式的代数精度及其重要性。
辛普森(simpson)公式
辛普森(Simpson)公式是用于数值积分的重要方法之一,它可以更精确地计算定积分的值。
由于其高精度和易于理解的特点,辛普森公式被广泛运用于科学计算和工程领域。
本文将对辛普森公式的原理、推导过程以及应用进行详细介绍。
一、辛普森公式的原理辛普森公式是利用多项式的插值思想来逼近定积分的值。
其基本原理是将被积函数在每个小区间上用二次多项式来逼近,然后对所有区间上的二次多项式进行积分,最终得到整个函数的积分值。
辛普森公式的精度比较高,尤其适合于二次或四次多项式的积分计算。
二、辛普森公式的推导在区间[a,b]上进行积分,将区间等分成n段,每段长度为h=(b-a)/n。
设被积函数为f(x),则辛普森公式的推导过程如下:1. 计算积分区间的分割点首先需要计算各个分割点的横坐标 xi(i=0,1,2,...,n),即xi=a+ih(i=0,1,2,...,n)。
2. 计算每个分段上的积分值对于每个小区间 [xi-1,xi],可以采用三点插值公式来逼近积分值:∫f(x)dx≈h/3*(f(xi-1)+4f((xi-1+xi)/2)+f(xi))3. 求和计算总的积分值将所有小区间上的积分值相加,即可得到整个区间[a,b]上的定积分值。
经过以上推导,可以得到辛普森公式的表达式为:∫f(x)dx≈h/3*(f(x0)+4f(x1)+2f(x2)+4f(x3)+...+2f(xn-2)+4f(xn-1)+f(xn))三、辛普森公式的应用辛普森公式在数值积分中有着广泛的应用,尤其适用于被积函数光滑而且二次可微的情况。
在实际工程和科学计算中,经常需要对曲线和曲面进行积分计算,而辛普森公式可以提供比较精确的积分结果。
在概率统计学、信号处理、图像处理等领域,辛普森公式也被广泛运用。
在概率密度函数的计算中,可以利用辛普森公式来对密度函数进行积分,从而得到概率分布的特征参数。
辛普森公式作为一种数值积分的方法,具有计算精度高、易于编程实现等特点,因此在实际工程和科学计算中得到了广泛的应用。
步长逐次减半的辛普森公式
步长逐次减半的辛普森公式辛普森公式是一种用于数值积分的方法,通过将待积函数曲线近似为一系列抛物线,来估算积分的值。
步长逐次减半是辛普森公式的一种改进方法,它通过不断减小步长来提高积分的准确性。
下面将介绍辛普森公式的基本原理和步长逐次减半的改进方法。
辛普森公式的基本原理是基于二次插值多项式的思想。
给定一个连续函数f(x),我们希望计算在区间[a, b]上的积分∫[a,b]f(x)dx。
辛普森公式将[f(x)在[a, b]上的插值多项式记为P2(x),它是一个二次多项式。
而辛普森公式的核心思想是用P2(x)的积分近似f(x)在[a, b]上的积分。
辛普森公式的公式表示为:∫[a, b]f(x)dx ≈ (b-a)/6 * (f(a) + 4f((a+b)/2) + f(b))步长逐次减半是辛普森公式的一种改进方法。
它通过反复应用辛普森公式,并将区间[a, b]划分为多个子区间,每一次计算时使用更小的步长来减小误差。
具体来说,首先用辛普森公式计算整个区间[a, b]的积分近似值I1,然后将区间[a, b]均分为两个子区间[a, c]和[c, b],分别计算这两个子区间的积分近似值I2和I3。
如果I1和I2、I3的差别足够小,则我们可以认为I1已经足够接近真实值。
如果差别较大,则我们可以将每个子区间再次划分为更小的子区间,以进一步减小误差。
重复这个过程直到所需要的精度满足要求为止。
步长逐次减半的辛普森公式可以表示为:I ≈ I1 + (I1 - I2 - I3)/15这个公式表示的是在每一次计算后,通过对I1、I2和I3的误差进行修正,得到更精确的积分值I。
重复应用这个公式可以进一步提高计算的准确性。
步长逐次减半的辛普森公式是一种高效而准确的数值积分方法。
它的主要优点是可以通过不断减小步长来提高积分的准确性,但同时也存在着计算复杂度高的问题。
因此,在实际应用中需要根据具体情况选择合适的步长和迭代次数,以平衡计算效率和准确性的要求。
数值方法
数值方法1、 梯形求积公式梯形求积公式即使当n=1时,过a,b 两点,做直线:)()()(1a f b a bx b f a b a x x L --+--=用)(1x L 代替)(x f ,得)1())()((2)()()()(1 b f a f a b dx a f b a bx b f a b a x dxx L dx x f ba baba+-=--+--=≈⎰⎰⎰ 用梯形面积近似替代曲面梯形的面积,所以(1)式叫做梯形求积公式。
2、 辛普森求积公式辛普森求积公式即是当n=2时,把区间2等分即是过a 、b 和 2ba +三点,做抛物线:)()(2)(2)2(22))(()()(2)(2)(2b f a b b a b a x b a x b a f b b a a b a b x a x a f b a b a a b x b a x x L -⎪⎭⎫⎝⎛+--⎪⎭⎫ ⎝⎛+-++⎪⎭⎫ ⎝⎛-+⎪⎭⎫ ⎝⎛-+--+-⎪⎭⎫ ⎝⎛+--⎪⎭⎫ ⎝⎛+-=用)(2x L 代替)(x f ,则可求得)2())()2(4)((6)()(2 b f ba f a f ab dx x L dx x f ba ba +++-=≈⎰⎰ 式(2)就叫做辛普森(Simpson )公式。
从几何意义上来看,因为辛普森公式是用抛物线围成的曲边梯形来近似代替)(x f 所围成的曲边梯形面积,所以辛普森公式也叫做抛物线求积公式。
3、 牛顿-科次(Newton-Cotes )公式牛顿-科次(Newton-Cotes )公式即把区间[a,b]n 等分,其分点为nab h n i ih a x i -==+=、),,3,2,1,0( ,过这n+1节点,可以构造一个n 次差值多项式:)()()()()(0'i ni i i n x f x w x x x w x L ∑=-= 其中)())(()(10n x x x x x x x w ---= ,用)(x L n 代替被积函数)(x f 则有.)()()(A )3()()()()()()()()()()()('00'0'⎰∑∑⎰⎰∑⎰⎰-==⎪⎪⎭⎫ ⎝⎛-=⎪⎪⎭⎫ ⎝⎛-=≈===bai i i i ni i i ni b a i i ba i n i i i ban badx x w x x x w x f A x f dx x w x x x w dx x f x w x x x w dx x L dx x f 其中公式(3)叫做牛顿-科次(Newton-Cotes )公式,使用牛顿-科次(Newton-Cotes )公式的关键是计算系数i A ,用变量替换th a x +=,于是)5(C )(A )4()()()1()!(!)1(C)()!)(!()1()()1()()()(A )!)(!()1()()()1()()((n)i 0(n)i1111 a b dx i t n t t t i n ni hdxi t h i n i h n t t t h dx x w x x x w i n i h x w n t t t h th a w x w i n i n nn n n b ai i i n n n -=-----=-----='-=--='--=+=⎰⎰⎰--+-+则引入记号:这样而这时(n)i C 是依赖于函数)(x f 和区间[a,b]的常数,可以事先计算出来,叫做牛顿-科次系数。
python辛普森积分
Python辛普森积分1. 什么是辛普森积分?辛普森积分是一种数值积分方法,用于计算定积分的近似值。
它是通过将积分区间划分为多个小区间,并在每个小区间上使用二次多项式来逼近被积函数,从而得到近似的积分值。
辛普森积分是数值分析中常用的积分方法之一,其精度较高,适用于计算光滑函数的积分。
2. 辛普森积分的原理辛普森积分的原理基于插值多项式的思想。
它将被积函数在每个小区间上用一个二次多项式逼近,然后通过对这些二次多项式的积分来计算整个积分区间上的积分值。
具体而言,辛普森积分使用以下公式来计算积分值:∫f b a (x)dx≈ℎ3[f(x0)+4f(x1)+2f(x2)+⋯+4f(x n−1)+f(x n)]其中,ℎ为每个小区间的宽度,x i为每个小区间的起点。
3. 辛普森积分的实现在Python中,可以使用以下代码实现辛普森积分:def simpson_integration(f, a, b, n):h = (b - a) / nresult = f(a) + f(b)for i in range(1, n):x = a + i * hif i % 2 == 0:result += 2 * f(x)else:result += 4 * f(x)result *= h / 3return result上述代码中,f为被积函数,a和b为积分区间的起点和终点,n为划分的小区间数。
函数使用循环计算每个小区间上的积分值,并根据辛普森积分公式将它们累加起来,最后乘以ℎ/3得到最终的积分结果。
4. 辛普森积分的应用辛普森积分在科学计算和工程领域中有广泛的应用。
它可以用于计算一些复杂函数的积分,如概率密度函数、物理方程等。
辛普森积分的优点是精度较高,相对于其他数值积分方法来说,它能够更准确地计算积分值。
5. 辛普森积分的优缺点辛普森积分的优点主要体现在它的精度上。
由于使用了二次多项式逼近被积函数,辛普森积分通常比其他数值积分方法具有更高的精度。
辛普森求积公式
摘要在工程实验及研究中,实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。
曲线拟合是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系.可以说,曲线拟合模型与我们的生活生产密切相关.本课题着重介绍曲线拟合模型及其应用,其中包括它的基本思想、模型的建立、以及具体应用.为了更好的了解曲线拟合模型,可以将它分为线性与非线性模型,在模型建立的基础上我们可以用最小二乘法来解决一些我们日常所应用的问题.关键词曲线拟合;线性与非线性模型;最小二乘发目录引言 (1)第一章曲线拟合 (2)§1.1 基本思想及基本概念 (2)§1.1.1 方法思想 (2)§1.1.2几个基本概念 (2)§1.2辛普森算法基本定义及其应用 (4)§1.2.1辛普森求积公式的定义 (4)§1.2.2辛普森求积公式的几何意义 (5)§1.2.3辛普森求积公式的代数精度及其余项 (5)§1.2.4辛普森公式的应用 (6)第二章辛普森求积公式的拓展及其应用 (7)§2.1 复化辛普森求积公式 (7)§2.1.1问题的提出 (7)§2.1.2复化辛普森公式及其分析 (7)§2.1.3复化辛普森公式计算流程图 (8)§2.1.4复化辛普森公式的应用 (9)§2.2 变步长辛普森求积公式 (10)§2.2.1变步长辛普森求积公式的导出过程 (10)§2.2.2变步长辛普森求积公式的加速过程 (12)§2.2.3变步长辛普森求积公式的算法流程图 (13)§2.2.4变步长辛普森公式算法程序代码 (14)§2.2.5变步长辛普森求积公式的应用 (14)§2.2.6小结 (14)§2.2.7数值求积公式在实际工程中的应用 (14)参考文献 (16)附录A (17)附录B (18)附录C (21)引言辛普森是英国数学家.1710年8月20日生于波士沃希;1761年5月14日卒于波士沃希.在定积分近似计算中,以他的姓来命名的“辛普森公式”,虽早在他之前牛顿的学生柯特斯(Cotes)和斯特林就已经得出了(包括一些更高阶的近似公式),但真正广泛地为人所知并加以应用,则是1743年辛普森重新发现之后的事了.辛普森的工作使牛顿的微积分学说得到了进一步完善.在我们的日常生活中计算积分与我们的生活生产密切相关.所以掌握数值积分方法是学生储备知识能量的武器.数值积分的一个基本的计算策略,用易于积分的简单函数来逼近曲线)y .f(x 简单曲线下面的面积近似等于)f下面的面积.如果涉及初等函数的积分找不到其(x他由初等函数构成的解析表达式,或者只在一些离散的x点上知道函数的值,在多数情况下,被积函数的原函数很难用初等函数表达出来,因此能够借助微积分学的牛顿-莱布尼兹公式计算定积分的机会是不多的.那么就必须对定积分进行数值逼近.数值积分实现是将整个闭区间]f进行(x,[ba划分为N个小段,在每个小段上对)低阶分段多项式逼近.对每个小段上的逼近多项式积分时,就得到基本公式.基本公式只涉及足够多的))f(xx对来定义分段多项式的某一段,将此公式应用到N个小段并,(把结果相加得到复合公式,或称为扩展公式. 在一个小段中节点的位置和数目决定了基本公式的很多重要特性.当节点均匀分布时,所有的积分公式称为牛顿—柯特斯公式.例如,梯形、辛普森、柯特斯求积公式等.经典辛普森求积公式来源于Lagrange插值多项式的应用,它的代数精度高达3阶,其形变后的代数精度高达4阶,且二者都具有良好的稳定性与收敛性,从而提高了计算效率及准确度,是定积分近似计算常使用的方法,一直是理工科大学生必修的内容. 下面将给出具体辛普森求积公式的具体思想以及其算法程序设计并给出将其拓展后在实际工程问题中的应用.第一章 辛普森求积公式的理论实际问题当中常常需要计算积分,有些数值方法,如微分方程和积分方程的求解,也都和积分计算相联系.依据人们所熟知的微积分基本定理,对积分dx x f I ba ⎰=)(只要找到被积函数)(x f 的原函数)(X F ,便有下列牛顿-莱布尼茨公式:⎰-=b a a F b F dx x f )()()(,但实际计算dx x f ba ⎰)(往往遇到一些困难,如: 1))(x f 的原函数不能用初等函数表示,故不能用牛顿-莱布尼茨公式计算.2) 虽然找到了)(x f 的原函数, 但因表达式过于复杂而不便应用牛顿-莱布尼茨公式.3) )(x f 在许多实际问题中是以列表函数的形式给出, 即仅仅知道其在一些节点处的函数值, 牛顿-莱布尼茨公式也不能直接运用,因此有必要研究积分的数值计算问题,数值积分是解决上述困难的一种有效方法.§1.1基本思想及基本概念§1.1.1 方法思想由定积分中值定理:b a a b f dx x f I b a ≤≤-==⎰ξξ),)(()(可知: 积分可以通过被积函数在ξ处的值得到. 由于积分中值定理仅仅告诉我们ξ在一定条件下是存在的, 但并没有给出确定ξ的方法. 一个很自然的想法就是利用被积函数)(x f 在节点b x x x x a n =≤≤≤= 210处函数值的加权平均来替代(近似))(ξf , 按此思想有)()(0i ni i b a x f A dx x f ∑⎰=≈ (1-1) 这就是数值求积的思想(有效地解决了本章开始提出的问题),权因子i A 和节点i x n i ,,2,1,0 =的不同确定方法就对应不同的数值求积公式.§1.1.2 几个基本概念定义1.1 称形如(1-1)式的求积公式为机械求积公式,其中i A 仅节点的选择与)(x f 无关,b x x x x a n =≤≤≤= 210称为求积节点,i A (n i ,,2,1,0 =)称为求积系数.定义1.2 如果某个求积公式对于次数不超过m 的多项式均能准确地成立,而对于1+m 次多项式就不准确成立, 则称该求积公式具有m 次代数精度(或代数精确度).注1.1 a) m 越大近似程度越高,标志着使函数准确成立的“个数”越多,但代数精度不是唯一衡量标准.b) 若机械求积公式的代数精度0≥m ,则有a b A ni i -=∑=0.c) 若机械求积公式的代数精度为m ,即当m x x x f ,,1)(=时,由(1.1)式可得,对任意次数不超过m 的k 次多项式m k x P k ≤),(有)()(0i k ni i b a k x P A dx x P ∑⎰=≡. d) 代精度的高低, 从侧面反映求积公式的精度高低.定义1.3 称求积公式∑==nk k k n x f A I 0)(为插值型求积公式,式中求积系数k A 通过插值基函数.,1,0)())(()()())(()()(110110n k x x x x x x x x x x x x x x x x x l n k k k k k k n k k k =--------=+-+- 积分求得,即 .,,1,0,)(n k dx x l A b a k k ==⎰ (1-2)定理1.1 插值型求积公式的代数精度至少为n 次.定义1.4 若节点将被积区间等分成n 等分, 即.,2,1,0,n i i na b a x i =-+=则相应的插值求积公式称为Newton-Cotes (牛顿-柯特斯)求积公式. 即等距节点情形下的插值求积公式称为牛顿-柯特斯公式, 相应的求积系数称为Cotes 系数. 常见的几个简单求积公式( Newton-Cotes 公式),如表1-1所示:表1-1 几种简单N-C 求积公式总结表 n 名称形式 1=n 梯形求积公式)]()([2)(b f a f a b T dx x f b a +-=≈⎰ 2=n 辛普森求积公式 )]()2(4)([6)(b f b a f a f a b S dx x f ba +++-=≈⎰4=n 柯特斯求积公式 )](7)(32)(12)(32)(7[90)(321b f x f x f x f a f a b C dx x f b a ++++-=≈⎰其中.1,,1,,-=-=+=n k na b h kh a x k 注1.2 a )8≥n 时,N-C 公式出现数值不稳定.b )n 为偶数时,N-C 公式的代数精度至少为1+n 次,n 为奇数时,N-C 公式的代数精度至少为n 次.定义1.5 截断误差: 由(1-3) 当1=n 时可得梯形求积公式的截断误差T R],[)(,],[,)(12)("))((2)("))((!2)("23b a C x f b a a b f dx b x a x f dx b x a x f T I R b a b a T ∈∈--=--=--=-=⎰⎰ηηηξ 类似的,可得当2=n ,4=n 时的截断误差注1.3 从截断误差公式可知,当区间长度a b -较大时,求积公式误差较大.§1.2辛普森算法基本定义及其应用§1.2.1 辛普森求积公式的定义设计积分区间],[b a 划分为n 等份,步长na b -,选取等距节点kh a x k +=构造出的插值型求积公式)()()(k n k n x f c a b I -= 为牛顿—柯特斯(Newton-Cotes )公式,式中)(n k c 称为柯特斯系数.根据插值型求积公式系数(1-2),引进变换th a x +=,则有⎰∏⎰∏≠=-≠=---=---=n kj j kn n n k j j n k dt j t n k n nk dt j k j t a b h c 0000)()()!(!)1( 当2=n 时,由上式有61)2)(1(4120)2(0=--=⎰dt t t c dx x n f x f A dx x f f R f I f I b a n n i n i i b a n n )()!1()()()(][][][1)1(0⎰∑⎰++=+=-==-ωξ64)1(2120)2(1=--=⎰dt t t c 61)1(4120)2(2=-=⎰dt t t c 则相应的求积公式是辛普森求积公式:)]()2()([6)(b f b a f a f a b dx x f s b a ++-==⎰ (1-4) §1.2.2辛普森求积公式的几何意义辛普森公式的几何意义就是用通过A,B,C 三点的抛物线)(x L y =代替)(x f y =所得曲边梯形面积,如图1.1所示.§1.2.3辛普森求积公式的代数精度及其余项由N-C 公式的特点知,当n 为偶数时N-C 公式的代数精度至少为1+n 次,由于Simpson 求积公式为2=n 时的N-C 公式,故它的代数精度至少为3次,即3≥m将4)(x x f =代入Simpson 公式(1-4)左边5554a b dx x b a -==⎰右边≠+++-=))2(4(6444b b a a a b 左边 由此可知4)(x x f =使得Simpson 求积公式不准确成立,所以3=m 即Simpson 公式代数精度为3次由N-C 公式的余项公式(1-3)知,当2=n 时可得辛普森求积公式的截断误差 y xO0 )(x L y =a 2b a + b A BC)(x f y =图1.1 辛普森求积公式的几何意义图],[)(],,[),()2(1804)4(4b a C x f b a f a b a b R s ∈∈---=ηη (1-5) §1.2.4辛普森公式的应用例1.1 用辛普森求积公式计算积分dx x x ⎰+1024. 由积分形式可知 2,1,0===n b a用辛普森公式计算有下式)]1()21(4)0([614102f f f dx x x s ++=+=⎰其中24)(x x x f +=. 计算流程图C 语言程序代码及其运算结果详见附录A分析附录A 可知 111765.04102=+⎰dx x x开始定义函数f (x )输入n ,a ,b 的值计算h=(b-a )/n调用函数f (x ),计算s 的值输出s 的值结束图1.2 例1.1流程图第二章 辛普森求积公式的拓展及其应用为了提高精度,通常在实际应用中往往采用将积分区间划分成若干个小区间,在各小区间上采用低次的求积公式,如:梯形公式或辛普森公式,然后再利用积分的可加性,把各区间上的积分加起来,便得到新的求积公式,这就是复化求积公式,本章重点介绍复化辛普森求积公式.§2.1 复化辛普森求积公式§2.1.1问题的提出由截断误差可知,当区间长度a b -较大时,Newton-Cotes 求积公式的误差较大. 为构造更高精度的数值积分公式,可以采用分段低次多项式替代整体高次多项式,为此,利用积分关于区间具有可加性,将],[b a 区间上的积分,分成若干小区间上的积分,以此来减少积分区间长度引起的误差.这就引用了复化求积公式. 其基本思想是:先把积分区间分成一些长度较小的子区间,在每个子区间上使用低阶的牛顿-柯特斯公式,即利用n a b h ih a x dx x f dx x f i n i x x b a i i -=+==∑⎰⎰=-,,)()(11 并把小区间n i x x i i ,,2,1],,[1 =-上的积分dx x f ii x x ⎰-1)(用前面的方法近似求得,由此即可得到相应的复化求积公式. 最常用的是复化梯形公式和复化辛普森公式,下面学习辛普森求积公式.§2.1.2复化辛普森公式及其分析定义 2.1 将小区间n i x x i i ,,2,1],[1 =-上的积分分别用辛普森公式计算,即可得到复化辛普森公式n n i i n i i i i i b a ni S b f x f x f a f h x f x f x f h dx x f =+++=++≈∑∑⎰∑=--=--=)]()(4)(2)([6)]()(4)([6)(111112121 其中221h x x i i ==-. 另一种定义形式为:用分段二次插值函数代替,记1,2,1,0,2-==m k m n 在第k 段的两个小区间上,用三个结点))(,()),(,()),(,(2222121222++++k k k k k k x f x x f x x f x 作二次插值函数)(x s k ,然后积分,求m 段之和可得整个区间上的近似积分mab h x f x f x f x f hs m k k m k k m n 2))(2)(4)()((3112101220-=+++=∑∑-=-=+ 称该求积公式为复化辛普森求积公式(抛物线公式).定理2.1 若],,[)(4b a C x f ∈则复化辛普森公式的截断误差为b a f h a b S dx x f n b a≤≤--=-⎰ξξ),()2(180)()()4(4 且0)],()([)21(1801)("'"')4(4→-→-⎰h b f a f h S dx x f ban. 注 2.1 从误差公式可以看出当],[)(4b a C x f ∈时,n S 比n T 2的精度一般要高,但他们的计算量几乎一样.注2.2 ○1nS 属于机械型求积公式,但不属于插值型、也不属于N-C 求积公式. ○2n S 的代数精度为4次,具有稳定性和收敛性即][f I S n→(∞→n 或∞→h ).§2.1.3复化辛普森公式计算流程图为了减少计算工作量,优化程序设计,将复化辛普森公式nni i n i i i i i b a n i S b f x f x f a f hx f x f x f hdx x f =+++=++≈∑∑⎰∑=--=--=)]()(4)(2)([6)]()(4)([6)(111112121改写为])}2(])12([2{)]()([5.0[3}])12([2)2()]()([5.0{3}])12([4)2(2)()({61111111∑∑∑∑∑==-=-=-++-++--=-+++++-=-+++++-=n i n i n i n i ni n ih a f h i a f b f a f n a b h i a f ih a f b f a f n a b h i a f ih a f b f a f a b S 则于此相对应的辛普森流程图为:§2.1.4 复化辛普森公式的应用例2.1 用复化辛普森公式计算正弦积分的近似值.分析该积分可知,sin )(dx xxx f =0=a ,1=b 则 125.081==-=n a b h 为步长C 语言程序代码及其运算结果详见附录B 由此可知94608.04=S开始输入A,B,NH=(B-A )/(2*N )S=0.5*(F (A )- F (B )),调用函数FS=S+2*F[A+(2*I-1*H )]+(F (A+2*I*H )),调用函数FS=(B-A )/(3*N )S输出S结束I=1,N定义函数F++I8sin 10==⎰n dxx xS n 图2.1 复化辛普森算法流程图例2.2 用复化辛普森公式计算定积分84102=+⎰n dx x x. 分析该积分可知24)(x x x f +=,0=a ,1=b 则125.081==-=n a b h 为步长 C 语言程序代码及其运算结果详见附录B. 由此可知11157.04=S在利用插值型求积公式求积分时,为了提高精度有两种途径.一是提高积分区间上的插值多项式的阶数,从而也就提高了求积的阶数.但是,由于插值多项式的阶数越高,其逼近性质未必好(即精度未必能提高),因此,牛顿-柯特斯公式的阶数越高,其积分精度也未必越高,工程上一般只作到六阶牛顿-柯特斯公式(即龙贝格公式)为止.二是采用复化公式,尽量减小每个求积小区间的长度.在实际应用时,往往将两种方法混合使用,以便提高求积的精度.§2.2 变步长辛普森求积公式在数值积分中,精度是一个很重要的问题,如果误差太大,就没有实际意义.为了提高精度,通过需要在复化求积公式中尽量减少各细分小区间的长度,即减少步长h .显然,如果步长h 取得太大,则精度就难以保证.但是,如果步长取得太小,则计算工作量就随之增大,并且,由于项数增加,其误差积累也就增大.因此,在采用复化公式求积时,关键的问题是合理地选择步长(即合理选择对整个积分区间的细分数),以便既能满足精度要求,又不至于引起过多的误差积累和过大的计算工作量.在实际计算过程中,通常采用变步长的求积法.§2.2.1变步长辛普森求积公式的导出过程变步长辛普森求积公式是建立在变步长梯形公式的基础上,同时它又是龙贝格算法导出的中间过程,我们知道, 若被积函数具有一定的光滑性, 则增加节点可以降低复化求积公式的截断误差.这里需要解决的问题是增加节点后的复化求积方法能否充分利用已有的计算工作量. 譬如: 若将n T 作为⎰=ba dx x f I )(的近似精度不够, 需减少步长(增加节点数)计算相应的m T 来近似I , 当然我们想要充分利用已经求得的n T .为此, 设区间n b a ],[等分后, 利用复化梯形公式已经求得n T 这一结果, 为了得到精度更高的数值结果, 我们将原有的步长折半, 即把区间],[b a 分为n 2等分, 然后应用复化梯形公式求得n T 2.下面将会看到这样既提高了精度, 又能充分利用已经求得的n T .事实上, 我们可以建立n T 与n T 2的下述递推关系. 设nab h x f x f h T n i i i n -=+=∑-=+,)]()([211 则∑∑∑∑-=+-=+-=+++-=+=++=++=1101011102)(221)(2)]()([4)]()(2)([4212121n i i n n k k n k k k i k k n h n x f h T x f h x f x f h x f x f x f hT其中nab x x h k k -=-=-1 即,∑-=+=12221n i n nh T T 新增分点的函数值 注2.3 由上述公式可知在n T 的基础上计算n T 2只需调用n 次函数即可,最大限度地节省了n T 2的计算量.加速公式的导出:由前面的误差分析,我们可以得到复化梯形公式n T 的截断误差为2)("12h f ab ξ--,即 2)("12h f ab T I n ξ--=- 类似根据复化梯形公式n T 2的截断误差为2)2)(("12hf a b η--,有 22)2)(("12hf a b T I n η-≈-两式相比可得412≈-n T I , 其中dx x f f I I b a ⎰==)()(即)(3122n n n T T T I -≈- (2-1)注2.4 ○1公式(2-1)说明n T 2的误差可以近似地由n T 2与n T 表现, 这样就给出了复化梯形公式估计误差的事后估计法.○2由公式(2-1)还可以得到校正公式(加速公式) n n n n n T T T T T I 3134)(31222-=-+≈数值实验结果表明,在一定条件下,上式计算出来的值比原来的n T 2好得多,上述公式称为梯形公式的加速公式.梯形求积公式的实质:假设已知n T ,n T 2,则nk k k n k k k n k n k k k k k n n S x f x f x f hx f x f hx f x f hx f x f h T T =++=+-+++=-=+-=+-=-=+++∑∑∑)]()(4)([6)]()([231)]}()([4)]()([4{3431341101101012212121即n n n T T S 31342-=上式表明n T 与n T 2通过上面公式处理后,可得精度更高的n S .即复化辛普森公式,这也是加速的实质.§2.2.2变步长辛普森求积公式的加速过程类似梯形加速公式的推导,由n S 的截断误差公式(1-5)可得][1512n n n S S S I -≈-即n n n n n S S S S S I 1511516][151222-=-+≈注2.5 ○1上述两个公式分别称为复化辛普森公式估计误差的事后估计公式及复化辛普森公式的加速公式.○2类似地可以证明: n n n S S C 15115162-=○3在求得n C ,nC 2的基础上,可以进一步加速得:龙贝格公式n n n C C R 63163642-=§2.2.3变步长辛普森求积公式的算法流程图开始 N=1,H=B-AIP=F(A)+F(B) FIC=0,X=A-H/2K=1,NX=X+HIC=IC+F(x) FI2=(4*IC+IP)*H/6N=1|I2-I|<ESPI1<=I2,IP=IP+2*ICN=N+NH=0.5*HYNNI=2I输出结束图2.2 变步长辛普森算法流程图§2.2.4变步长辛普森公式算法程序代码详见附录C§2.2.5变步长辛普森求积公式的应用例2.3 用变步长辛普森求积公式计算定积分dx x x⎰+1024取000001.0=ε.C 语言程序代码及其运算结果详见附录C. 分析结果可知111572.04102=+⎰dx x x§2.2.6小结通过分析例1.1、2.2、2.3有下表2-1表2-1 三种算法比较 算法名称 代数精度积分形式计算结果 余项辛普森求积 3dx x x⎰+10240.111765111765.0)4ln 5(ln 21-- 复化辛普森求积 4dx x x⎰+10240.1115711157.0)4ln 5(ln 21-- 变步长辛普森求积dx x x⎰+10240.111572111572.0)4ln 5(ln 21-- 由表2-1可以得出用变步长辛普森求积公式求得的结果偏离准确值的程度最小,即其计算结果最接近准确值,其次是复化辛普森求积方法,辛普森求积方法较前述两种方法误差较大.但三种算法均具有良好的稳定性与收敛性,从而提高了计算效率及准确度.在工程技术中有较为广泛的应用.§2.2.7 数值求积公式在实际工程中的应用例 2.4人造地球卫星轨道可视为平面上的椭圆。
复合梯形公式与复合辛普森公式对比
SHANGHAI JIAO TONG UNIVERSITY题目名称:复合梯形公式与复合辛普森公式对比学生姓名:学生学号:班级:学院(系):目录1.概述 (3)2.问题提出 (4)3.算法推导 (5)4.算法框图 (6)4.1复合梯形公式算法流程图 (6)4.2 复合辛普森公式算法流程图 (7)5.MATLAB源程序 (8)6.结论与展望 (9)图表目录图4-1 复合梯形公式算法流程图 (6)图4-2 复合辛普森公式算法流程图 (7)图6-1 MATLAB计算结果 (9)表2-1函数计算结果表 (4)1.概述梯形求积公式和辛普森求积公式分别是牛顿-科斯特公式中n=1和n=2时的情形。
其中梯形求积公式可表示为由于牛顿-科斯特公式在n≥8时不具有稳定性,故不可能通过提高阶的方法来提高求积精度。
为了提高精度通常可把积分区间分成若干子区间(通常是等分),再在每个子区间上用低阶求积公式。
这种方法称为复合求积法。
本文主要讨论复合梯形公式和复合辛普森公式在同一数学问题中的应用。
首先给出了复合梯形公式和复合辛普森公式的推导过程以及其余项的表达形式,然后用流程图的形式介绍算法思路,再运用MATLAB编写代码计算结果,最后对结果进行对比讨论。
希望通过两个算法在同一个算例中的应用对比,更好的理解和掌握复合梯形公式和复合辛普森公式的适用范围和适用条件。
并且能够熟悉MATLAB编程求解问题的流程,掌握编程化的思想方法。
同时对两种方法的计算结果对比分析,讨论两种求积方法的计算精度。
2.问题提出对于函数f(x)=sinxx给出的函数表如下,试用复合梯形公式和复合辛普森公式计算积分I=∫sinxx dx1。
表 2-1函数计算结果表3. 算法推导3.1复合梯形公式根据梯形公式,将区间[a,b]划分为n 等份,分点x k =a +kℎ,h =b−a n,k =0,1,…,n ,在每个子区间[x k ,x k+1](k =0,1,…,n −1)上采用梯形公式,则得:记则T n 为复合梯形公式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要在工程实验及研究中,实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。
曲线拟合是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系.可以说,曲线拟合模型与我们的生活生产密切相关.本课题着重介绍曲线拟合模型及其应用,其中包括它的基本思想、模型的建立、以及具体应用.为了更好的了解曲线拟合模型,可以将它分为线性与非线性模型,在模型建立的基础上我们可以用最小二乘法来解决一些我们日常所应用的问题.关键词曲线拟合;线性与非线性模型;最小二乘发目录引言 (1)第一章曲线拟合 (2)§1.1 基本思想及基本概念 (2)§1.1.1 方法思想 (2)§1.1.2几个基本概念 (2)§1.2辛普森算法基本定义及其应用 (4)§1.2.1辛普森求积公式的定义 (4)§1.2.2辛普森求积公式的几何意义 (5)§1.2.3辛普森求积公式的代数精度及其余项 (5)§1.2.4辛普森公式的应用 (6)第二章辛普森求积公式的拓展及其应用 (7)§2.1 复化辛普森求积公式 (7)§2.1.1问题的提出 (7)§2.1.2复化辛普森公式及其分析 (7)§2.1.3复化辛普森公式计算流程图 (8)§2.1.4复化辛普森公式的应用 (9)§2.2 变步长辛普森求积公式 (10)§2.2.1变步长辛普森求积公式的导出过程 (10)§2.2.2变步长辛普森求积公式的加速过程 (12)§2.2.3变步长辛普森求积公式的算法流程图 (13)§2.2.4变步长辛普森公式算法程序代码 (14)§2.2.5变步长辛普森求积公式的应用 (14)§2.2.6小结 (14)§2.2.7数值求积公式在实际工程中的应用 (14)参考文献 (16)附录A (17)附录B (18)附录C (21)引言辛普森是英国数学家.1710年8月20日生于波士沃希;1761年5月14日卒于波士沃希.在定积分近似计算中,以他的姓来命名的“辛普森公式”,虽早在他之前牛顿的学生柯特斯(Cotes)和斯特林就已经得出了(包括一些更高阶的近似公式),但真正广泛地为人所知并加以应用,则是1743年辛普森重新发现之后的事了.辛普森的工作使牛顿的微积分学说得到了进一步完善.在我们的日常生活中计算积分与我们的生活生产密切相关.所以掌握数值积分方法是学生储备知识能量的武器.数值积分的一个基本的计算策略,用易于积分的简单函数来逼近曲线)y .f(x 简单曲线下面的面积近似等于)f下面的面积.如果涉及初等函数的积分找不到其(x他由初等函数构成的解析表达式,或者只在一些离散的x点上知道函数的值,在多数情况下,被积函数的原函数很难用初等函数表达出来,因此能够借助微积分学的牛顿-莱布尼兹公式计算定积分的机会是不多的.那么就必须对定积分进行数值逼近.数值积分实现是将整个闭区间]f进行(x,[ba划分为N个小段,在每个小段上对)低阶分段多项式逼近.对每个小段上的逼近多项式积分时,就得到基本公式.基本公式只涉及足够多的))f(xx对来定义分段多项式的某一段,将此公式应用到N个小段并,(把结果相加得到复合公式,或称为扩展公式. 在一个小段中节点的位置和数目决定了基本公式的很多重要特性.当节点均匀分布时,所有的积分公式称为牛顿—柯特斯公式.例如,梯形、辛普森、柯特斯求积公式等.经典辛普森求积公式来源于Lagrange插值多项式的应用,它的代数精度高达3阶,其形变后的代数精度高达4阶,且二者都具有良好的稳定性与收敛性,从而提高了计算效率及准确度,是定积分近似计算常使用的方法,一直是理工科大学生必修的内容. 下面将给出具体辛普森求积公式的具体思想以及其算法程序设计并给出将其拓展后在实际工程问题中的应用.第一章 辛普森求积公式的理论实际问题当中常常需要计算积分,有些数值方法,如微分方程和积分方程的求解,也都和积分计算相联系.依据人们所熟知的微积分基本定理,对积分dx x f I ba ⎰=)(只要找到被积函数)(x f 的原函数)(X F ,便有下列牛顿-莱布尼茨公式:⎰-=b a a F b F dx x f )()()(,但实际计算dx x f ba ⎰)(往往遇到一些困难,如: 1))(x f 的原函数不能用初等函数表示,故不能用牛顿-莱布尼茨公式计算.2) 虽然找到了)(x f 的原函数, 但因表达式过于复杂而不便应用牛顿-莱布尼茨公式.3) )(x f 在许多实际问题中是以列表函数的形式给出, 即仅仅知道其在一些节点处的函数值, 牛顿-莱布尼茨公式也不能直接运用,因此有必要研究积分的数值计算问题,数值积分是解决上述困难的一种有效方法.§1.1基本思想及基本概念§1.1.1 方法思想由定积分中值定理:b a a b f dx x f I b a ≤≤-==⎰ξξ),)(()(可知: 积分可以通过被积函数在ξ处的值得到. 由于积分中值定理仅仅告诉我们ξ在一定条件下是存在的, 但并没有给出确定ξ的方法. 一个很自然的想法就是利用被积函数)(x f 在节点b x x x x a n =≤≤≤= 210处函数值的加权平均来替代(近似))(ξf , 按此思想有)()(0i ni i b a x f A dx x f ∑⎰=≈ (1-1) 这就是数值求积的思想(有效地解决了本章开始提出的问题),权因子i A 和节点i x n i ,,2,1,0 =的不同确定方法就对应不同的数值求积公式.§1.1.2 几个基本概念定义1.1 称形如(1-1)式的求积公式为机械求积公式,其中i A 仅节点的选择与)(x f 无关,b x x x x a n =≤≤≤= 210称为求积节点,i A (n i ,,2,1,0 =)称为求积系数.定义1.2 如果某个求积公式对于次数不超过m 的多项式均能准确地成立,而对于1+m 次多项式就不准确成立, 则称该求积公式具有m 次代数精度(或代数精确度).注1.1 a) m 越大近似程度越高,标志着使函数准确成立的“个数”越多,但代数精度不是唯一衡量标准.b) 若机械求积公式的代数精度0≥m ,则有a b A ni i -=∑=0.c) 若机械求积公式的代数精度为m ,即当m x x x f ,,1)(=时,由(1.1)式可得,对任意次数不超过m 的k 次多项式m k x P k ≤),(有)()(0i k ni i b a k x P A dx x P ∑⎰=≡. d) 代精度的高低, 从侧面反映求积公式的精度高低.定义1.3 称求积公式∑==nk k k n x f A I 0)(为插值型求积公式,式中求积系数k A 通过插值基函数.,1,0)())(()()())(()()(110110n k x x x x x x x x x x x x x x x x x l n k k k k k k n k k k =--------=+-+- 积分求得,即 .,,1,0,)(n k dx x l A b a k k ==⎰ (1-2)定理1.1 插值型求积公式的代数精度至少为n 次.定义1.4 若节点将被积区间等分成n 等分, 即.,2,1,0,n i i na b a x i =-+=则相应的插值求积公式称为Newton-Cotes (牛顿-柯特斯)求积公式. 即等距节点情形下的插值求积公式称为牛顿-柯特斯公式, 相应的求积系数称为Cotes 系数. 常见的几个简单求积公式( Newton-Cotes 公式),如表1-1所示:表1-1 几种简单N-C 求积公式总结表 n 名称形式 1=n 梯形求积公式)]()([2)(b f a f a b T dx x f b a +-=≈⎰ 2=n 辛普森求积公式 )]()2(4)([6)(b f b a f a f a b S dx x f ba +++-=≈⎰4=n 柯特斯求积公式 )](7)(32)(12)(32)(7[90)(321b f x f x f x f a f a b C dx x f b a ++++-=≈⎰其中.1,,1,,-=-=+=n k na b h kh a x k 注1.2 a )8≥n 时,N-C 公式出现数值不稳定.b )n 为偶数时,N-C 公式的代数精度至少为1+n 次,n 为奇数时,N-C 公式的代数精度至少为n 次.定义1.5 截断误差: 由(1-3) 当1=n 时可得梯形求积公式的截断误差T R],[)(,],[,)(12)("))((2)("))((!2)("23b a C x f b a a b f dx b x a x f dx b x a x f T I R b a b a T ∈∈--=--=--=-=⎰⎰ηηηξ 类似的,可得当2=n ,4=n 时的截断误差注1.3 从截断误差公式可知,当区间长度a b -较大时,求积公式误差较大.§1.2辛普森算法基本定义及其应用§1.2.1 辛普森求积公式的定义设计积分区间],[b a 划分为n 等份,步长na b -,选取等距节点kh a x k +=构造出的插值型求积公式)()()(k n k n x f c a b I -= 为牛顿—柯特斯(Newton-Cotes )公式,式中)(n k c 称为柯特斯系数.根据插值型求积公式系数(1-2),引进变换th a x +=,则有⎰∏⎰∏≠=-≠=---=---=n kj j kn n n k j j n k dt j t n k n nk dt j k j t a b h c 0000)()()!(!)1( 当2=n 时,由上式有61)2)(1(4120)2(0=--=⎰dt t t c dx x n f x f A dx x f f R f I f I b a n n i n i i b a n n )()!1()()()(][][][1)1(0⎰∑⎰++=+=-==-ωξ64)1(2120)2(1=--=⎰dt t t c 61)1(4120)2(2=-=⎰dt t t c 则相应的求积公式是辛普森求积公式:)]()2()([6)(b f b a f a f a b dx x f s b a ++-==⎰ (1-4) §1.2.2辛普森求积公式的几何意义辛普森公式的几何意义就是用通过A,B,C 三点的抛物线)(x L y =代替)(x f y =所得曲边梯形面积,如图1.1所示.§1.2.3辛普森求积公式的代数精度及其余项由N-C 公式的特点知,当n 为偶数时N-C 公式的代数精度至少为1+n 次,由于Simpson 求积公式为2=n 时的N-C 公式,故它的代数精度至少为3次,即3≥m将4)(x x f =代入Simpson 公式(1-4)左边5554a b dx x b a -==⎰右边≠+++-=))2(4(6444b b a a a b 左边 由此可知4)(x x f =使得Simpson 求积公式不准确成立,所以3=m 即Simpson 公式代数精度为3次由N-C 公式的余项公式(1-3)知,当2=n 时可得辛普森求积公式的截断误差 y xO0 )(x L y =a 2b a + b A BC)(x f y =图1.1 辛普森求积公式的几何意义图],[)(],,[),()2(1804)4(4b a C x f b a f a b a b R s ∈∈---=ηη (1-5) §1.2.4辛普森公式的应用例1.1 用辛普森求积公式计算积分dx x x ⎰+1024. 由积分形式可知 2,1,0===n b a用辛普森公式计算有下式)]1()21(4)0([614102f f f dx x x s ++=+=⎰其中24)(x x x f +=. 计算流程图C 语言程序代码及其运算结果详见附录A分析附录A 可知 111765.04102=+⎰dx x x开始定义函数f (x )输入n ,a ,b 的值计算h=(b-a )/n调用函数f (x ),计算s 的值输出s 的值结束图1.2 例1.1流程图第二章 辛普森求积公式的拓展及其应用为了提高精度,通常在实际应用中往往采用将积分区间划分成若干个小区间,在各小区间上采用低次的求积公式,如:梯形公式或辛普森公式,然后再利用积分的可加性,把各区间上的积分加起来,便得到新的求积公式,这就是复化求积公式,本章重点介绍复化辛普森求积公式.§2.1 复化辛普森求积公式§2.1.1问题的提出由截断误差可知,当区间长度a b -较大时,Newton-Cotes 求积公式的误差较大. 为构造更高精度的数值积分公式,可以采用分段低次多项式替代整体高次多项式,为此,利用积分关于区间具有可加性,将],[b a 区间上的积分,分成若干小区间上的积分,以此来减少积分区间长度引起的误差.这就引用了复化求积公式. 其基本思想是:先把积分区间分成一些长度较小的子区间,在每个子区间上使用低阶的牛顿-柯特斯公式,即利用n a b h ih a x dx x f dx x f i n i x x b a i i -=+==∑⎰⎰=-,,)()(11 并把小区间n i x x i i ,,2,1],,[1 =-上的积分dx x f ii x x ⎰-1)(用前面的方法近似求得,由此即可得到相应的复化求积公式. 最常用的是复化梯形公式和复化辛普森公式,下面学习辛普森求积公式.§2.1.2复化辛普森公式及其分析定义 2.1 将小区间n i x x i i ,,2,1],[1 =-上的积分分别用辛普森公式计算,即可得到复化辛普森公式n n i i n i i i i i b a ni S b f x f x f a f h x f x f x f h dx x f =+++=++≈∑∑⎰∑=--=--=)]()(4)(2)([6)]()(4)([6)(111112121 其中221h x x i i ==-. 另一种定义形式为:用分段二次插值函数代替,记1,2,1,0,2-==m k m n 在第k 段的两个小区间上,用三个结点))(,()),(,()),(,(2222121222++++k k k k k k x f x x f x x f x 作二次插值函数)(x s k ,然后积分,求m 段之和可得整个区间上的近似积分mab h x f x f x f x f hs m k k m k k m n 2))(2)(4)()((3112101220-=+++=∑∑-=-=+ 称该求积公式为复化辛普森求积公式(抛物线公式).定理2.1 若],,[)(4b a C x f ∈则复化辛普森公式的截断误差为b a f h a b S dx x f n b a≤≤--=-⎰ξξ),()2(180)()()4(4 且0)],()([)21(1801)("'"')4(4→-→-⎰h b f a f h S dx x f ban. 注 2.1 从误差公式可以看出当],[)(4b a C x f ∈时,n S 比n T 2的精度一般要高,但他们的计算量几乎一样.注2.2 ○1nS 属于机械型求积公式,但不属于插值型、也不属于N-C 求积公式. ○2n S 的代数精度为4次,具有稳定性和收敛性即][f I S n→(∞→n 或∞→h ).§2.1.3复化辛普森公式计算流程图为了减少计算工作量,优化程序设计,将复化辛普森公式nni i n i i i i i b a n i S b f x f x f a f hx f x f x f hdx x f =+++=++≈∑∑⎰∑=--=--=)]()(4)(2)([6)]()(4)([6)(111112121改写为])}2(])12([2{)]()([5.0[3}])12([2)2()]()([5.0{3}])12([4)2(2)()({61111111∑∑∑∑∑==-=-=-++-++--=-+++++-=-+++++-=n i n i n i n i ni n ih a f h i a f b f a f n a b h i a f ih a f b f a f n a b h i a f ih a f b f a f a b S 则于此相对应的辛普森流程图为:§2.1.4 复化辛普森公式的应用例2.1 用复化辛普森公式计算正弦积分的近似值.分析该积分可知,sin )(dx xxx f =0=a ,1=b 则 125.081==-=n a b h 为步长C 语言程序代码及其运算结果详见附录B 由此可知94608.04=S开始输入A,B,NH=(B-A )/(2*N )S=0.5*(F (A )- F (B )),调用函数FS=S+2*F[A+(2*I-1*H )]+(F (A+2*I*H )),调用函数FS=(B-A )/(3*N )S输出S结束I=1,N定义函数F++I8sin 10==⎰n dxx xS n 图2.1 复化辛普森算法流程图例2.2 用复化辛普森公式计算定积分84102=+⎰n dx x x. 分析该积分可知24)(x x x f +=,0=a ,1=b 则125.081==-=n a b h 为步长 C 语言程序代码及其运算结果详见附录B. 由此可知11157.04=S在利用插值型求积公式求积分时,为了提高精度有两种途径.一是提高积分区间上的插值多项式的阶数,从而也就提高了求积的阶数.但是,由于插值多项式的阶数越高,其逼近性质未必好(即精度未必能提高),因此,牛顿-柯特斯公式的阶数越高,其积分精度也未必越高,工程上一般只作到六阶牛顿-柯特斯公式(即龙贝格公式)为止.二是采用复化公式,尽量减小每个求积小区间的长度.在实际应用时,往往将两种方法混合使用,以便提高求积的精度.§2.2 变步长辛普森求积公式在数值积分中,精度是一个很重要的问题,如果误差太大,就没有实际意义.为了提高精度,通过需要在复化求积公式中尽量减少各细分小区间的长度,即减少步长h .显然,如果步长h 取得太大,则精度就难以保证.但是,如果步长取得太小,则计算工作量就随之增大,并且,由于项数增加,其误差积累也就增大.因此,在采用复化公式求积时,关键的问题是合理地选择步长(即合理选择对整个积分区间的细分数),以便既能满足精度要求,又不至于引起过多的误差积累和过大的计算工作量.在实际计算过程中,通常采用变步长的求积法.§2.2.1变步长辛普森求积公式的导出过程变步长辛普森求积公式是建立在变步长梯形公式的基础上,同时它又是龙贝格算法导出的中间过程,我们知道, 若被积函数具有一定的光滑性, 则增加节点可以降低复化求积公式的截断误差.这里需要解决的问题是增加节点后的复化求积方法能否充分利用已有的计算工作量. 譬如: 若将n T 作为⎰=ba dx x f I )(的近似精度不够, 需减少步长(增加节点数)计算相应的m T 来近似I , 当然我们想要充分利用已经求得的n T .为此, 设区间n b a ],[等分后, 利用复化梯形公式已经求得n T 这一结果, 为了得到精度更高的数值结果, 我们将原有的步长折半, 即把区间],[b a 分为n 2等分, 然后应用复化梯形公式求得n T 2.下面将会看到这样既提高了精度, 又能充分利用已经求得的n T .事实上, 我们可以建立n T 与n T 2的下述递推关系. 设nab h x f x f h T n i i i n -=+=∑-=+,)]()([211 则∑∑∑∑-=+-=+-=+++-=+=++=++=1101011102)(221)(2)]()([4)]()(2)([4212121n i i n n k k n k k k i k k n h n x f h T x f h x f x f h x f x f x f hT其中nab x x h k k -=-=-1 即,∑-=+=12221n i n nh T T 新增分点的函数值 注2.3 由上述公式可知在n T 的基础上计算n T 2只需调用n 次函数即可,最大限度地节省了n T 2的计算量.加速公式的导出:由前面的误差分析,我们可以得到复化梯形公式n T 的截断误差为2)("12h f ab ξ--,即 2)("12h f ab T I n ξ--=- 类似根据复化梯形公式n T 2的截断误差为2)2)(("12hf a b η--,有 22)2)(("12hf a b T I n η-≈-两式相比可得412≈-n T I , 其中dx x f f I I b a ⎰==)()(即)(3122n n n T T T I -≈- (2-1)注2.4 ○1公式(2-1)说明n T 2的误差可以近似地由n T 2与n T 表现, 这样就给出了复化梯形公式估计误差的事后估计法.○2由公式(2-1)还可以得到校正公式(加速公式) n n n n n T T T T T I 3134)(31222-=-+≈数值实验结果表明,在一定条件下,上式计算出来的值比原来的n T 2好得多,上述公式称为梯形公式的加速公式.梯形求积公式的实质:假设已知n T ,n T 2,则nk k k n k k k n k n k k k k k n n S x f x f x f hx f x f hx f x f hx f x f h T T =++=+-+++=-=+-=+-=-=+++∑∑∑)]()(4)([6)]()([231)]}()([4)]()([4{3431341101101012212121即n n n T T S 31342-=上式表明n T 与n T 2通过上面公式处理后,可得精度更高的n S .即复化辛普森公式,这也是加速的实质.§2.2.2变步长辛普森求积公式的加速过程类似梯形加速公式的推导,由n S 的截断误差公式(1-5)可得][1512n n n S S S I -≈-即n n n n n S S S S S I 1511516][151222-=-+≈注2.5 ○1上述两个公式分别称为复化辛普森公式估计误差的事后估计公式及复化辛普森公式的加速公式.○2类似地可以证明: n n n S S C 15115162-=○3在求得n C ,nC 2的基础上,可以进一步加速得:龙贝格公式n n n C C R 63163642-=§2.2.3变步长辛普森求积公式的算法流程图开始 N=1,H=B-AIP=F(A)+F(B) FIC=0,X=A-H/2K=1,NX=X+HIC=IC+F(x) FI2=(4*IC+IP)*H/6N=1|I2-I|<ESPI1<=I2,IP=IP+2*ICN=N+NH=0.5*HYNNI=2I输出结束图2.2 变步长辛普森算法流程图§2.2.4变步长辛普森公式算法程序代码详见附录C§2.2.5变步长辛普森求积公式的应用例2.3 用变步长辛普森求积公式计算定积分dx x x⎰+1024取000001.0=ε.C 语言程序代码及其运算结果详见附录C. 分析结果可知111572.04102=+⎰dx x x§2.2.6小结通过分析例1.1、2.2、2.3有下表2-1表2-1 三种算法比较 算法名称 代数精度积分形式计算结果 余项辛普森求积 3dx x x⎰+10240.111765111765.0)4ln 5(ln 21-- 复化辛普森求积 4dx x x⎰+10240.1115711157.0)4ln 5(ln 21-- 变步长辛普森求积dx x x⎰+10240.111572111572.0)4ln 5(ln 21-- 由表2-1可以得出用变步长辛普森求积公式求得的结果偏离准确值的程度最小,即其计算结果最接近准确值,其次是复化辛普森求积方法,辛普森求积方法较前述两种方法误差较大.但三种算法均具有良好的稳定性与收敛性,从而提高了计算效率及准确度.在工程技术中有较为广泛的应用.§2.2.7 数值求积公式在实际工程中的应用例 2.4人造地球卫星轨道可视为平面上的椭圆。