复合梯形公式及复合辛普森公式对比

合集下载

分别利用矩形法梯形法辛普森法对定积分进行近似计算并比较计算效果

分别利用矩形法梯形法辛普森法对定积分进行近似计算并比较计算效果

分别利用矩形法梯形法辛普森法对定积分进行近似计算并比较计算效果定积分是微积分中重要的概念之一,表示在一个区间上函数的面积。

在计算定积分时,有时候我们无法通过解析方法求得精确的结果,这时候可以利用数值方法来进行近似计算。

常见的数值方法包括矩形法、梯形法和辛普森法。

本文将分别对这三种方法进行介绍并进行比较。

1.矩形法(矩形近似法):矩形法是最简单的数值方法之一,它的基本思想是将函数曲线上每个小区间的面积近似为一个矩形的面积,然后将这些矩形的面积相加,即可得到函数曲线下的面积。

根据矩形法的计算公式可以得到:∫f(x)dx ≈ Δx·(f(x₁)+f(x₂)+...+f(xₙ))其中,Δx为区间的长度,f(x)为函数在区间上的值。

2.梯形法(梯形近似法):梯形法同样是利用近似的思想,将函数曲线上每个小区间的面积近似为一个梯形的面积,然后将这些梯形的面积相加,即可得到函数曲线下的面积。

梯形法的计算公式为:∫f(x)dx ≈ (Δx/2)·[f(x₀)+2f(x₁)+2f(x₂)+...+2f(xₙ-1)+f(xₙ)]其中,Δx为区间的长度,f(x)为函数在区间上的值。

3.辛普森法(抛物线近似法):辛普森法是一种基于三次多项式插值的数值积分方法,它通过将函数曲线上每个小区间的面积近似为一个抛物线的面积,然后将这些抛物线的面积相加,即可得到函数曲线下的面积。

辛普森法的计算公式为:∫f(x)dx ≈ (Δx/3)·[f(x₀)+4f(x₁)+f(x₂)+4f(x₃)+...+4f(xₙ-1)+f(xₙ)]其中,Δx为区间的长度,f(x)为函数在区间上的值。

例:计算函数f(x)=√(1+x²)在区间[0,1]上的定积分。

接下来,我们分别利用矩形法、梯形法和辛普森法对这个定积分进行近似计算,并比较计算结果。

1)矩形法:将区间[0,1]平均分为n个小区间,取xᵢ=i/n,其中i=0,1,2,...,n。

利用复化梯形公式、复化simpson公式计算积分

利用复化梯形公式、复化simpson公式计算积分

1、 利用复化梯形公式、复化simpson 公式计算积分2、 比较计算误差与实际误差取n=2,3,…,10分别利用复化梯形公式、复化simpson 公式计算积分1 I = x 2dx ,并与真值进行比较,并画出计算误差与实际误差之间的曲线。

利用复化梯形公式的程序代码如下: function f=fx(x) f=x.A 2;R=on es(1,9)*(-(b-a)/12*h.A 2*2); %积分余项(计算误差)true=quad(@fx,0,1); %积分的真实值A=T-true; %计算的值与真实值之差(实际误差)x=li nspace(0,1,9);plot(x,A,'r',x,R,'*')%将计算误差与实际误差用图像画出来 注:由于被积函数是x.A2,它的二阶倒数为 2,所以积分余项为:(-(b-a)/12*h.A 2*2) 实 验 原 理 ( a=0; b=1; T=[]; for n=2:10; %积分下线 %积分上线 %用来装不同n 值所计算出的结果 h=(b-a)/n; %步长 x=zeros(1, n+1); for i=1: n+1 x(i)=a+(i-1)*h; end y=x.A2; t=0; for i=1: n t=t+h/2*(y(i)+y(i+1)); end T=[T,t]; end%给节点定初值 %给节点赋值 %给相应节点处的函数值赋值 %利用复化梯形公式求值 %把不同n 值所计算出的结果装入 T 中 实验目的或 %首先建立被积函数,以便于计算真实值。

2法二:a=0;b=1;T=[];for n=2:10h=(b-a)/(2* n); x=zeros(1,2* n+1);for i=1:2* n+1x(i)=a+(i-1)*h;endy=x.A4;t=y(1)+y(2* n+1);for i=1: nt=t+4*y(2*i)+2*y(2*i-1);endT=[T,h/3*t];endtrue=quad(@fx1,0,1);A=T-true;x=li nspace(0,1,9);plot(x,A)此法与第一种一样,只是所用的表达式不同。

复化梯形公式和复化辛普生公式

复化梯形公式和复化辛普生公式
return result;
}
void simpson::integration()//实现积分
{
cout<<"输入上限和下限";
cin>>b>>a;
cout<<"输入你要使用simposn法则的数目(即等分数)";
cin>>n;
h=(b-a)/n;
sum_even_terms=0.0;
sum_odd_terms=0.0;
for(k=1;k<n;k++)
{
sum_even_terms+=sine(k*h);
}
for(k=0;k<n;k++)
{
sum_odd_terms+=sine((2*k+1)*h/2);
}
integral=(2.0*sum_even_terms+4.0*sum_odd_terms+sine(b)+1)*h/6.0;
《数值分析》实验报告
姓名
学号
日期
2012.11.20
实验室
设备编号
实验题目
用复化梯形公式和复化辛普生公式求I=∫01sinx/xdx
一实验目的
1.了解复化梯形公式和复化辛普生公式。
2.用复化梯形公式和复化辛普生公式求I=∫01sinx/xdx。
二实验内容
算法:复化梯形公式是Tn=∑h/2[f(xi)+ f(xi+1)]=(b-a)/2n[f(a)+2∑f(xi)+f(b)]记子段[xi,xi+1]的中点为xi+1/2,则复化Simpson公式为Sn=∑h/6[f(xi)+4f(xi+1/2)+ f(xi+1)]=b-a/6n[f(a)+4∑f(xi+1/2)+2f(xi)+f(b)]

复合梯形公式与复合辛普森公式对比

复合梯形公式与复合辛普森公式对比
4、1 复合梯形公式算法流程图
开始
输入区间断点 a,b 及等分数 n
求出步长 h,各节点 及相应得
各函节数点值函数值,k=1,2求,、、 与ns-u1m, k=1,2,、、n-1
输出积分值
结束
图 4-1 复合梯形公式算法流程图 4、2 复合辛普森公式算法流程图
开始
输入区间断点 a, b 及等分数 n
SHANGHAI JIAO TONG UNIVERSITY
题目名称:复合梯形公式与复合辛普森公式对比
学生姓名: 学生学号: 班 级: 学院(系):
目录
1、 概述 .............................................................................................................. 1 2、 问题提出 ...................................................................................................... 2 3、 算法推导 ...................................................................................................... 3 4、 算法框图 ...................................................................................................... 4
图表目录
图 4-1 复合梯形公式算法流程图 ...................................................................... 4 图 4-2 复合辛普森公式算法流程图 .................................................................. 5 图 6-1 MATLAB 计算结果..................................................................................6 表 2-1 函数计算结果表 .......................................................................................2

复合梯形和复合辛普森MATLAB程序

复合梯形和复合辛普森MATLAB程序
s=0;
fork=1:(b-a)/h,
s= s+y(k)+y(k+1)+4*z(k);
end
s=s*h./6;
③龙贝格求积程序
function[q,R]=Romberg(a,b,eps)
h=b-a;
R(1,1)=h*(0+sqrt(b).*log(b))/2;
M=1;
J=0;
err=1;
whileerr>eps
五.实验结果比较与分析
(1)
h = 0.2时,结果如下:
h = 0.02时,结果如下:
h = 0.002时;得到的结果如下:
由结果(1)可知对于同一步长h,复合辛普森法求积分精度明显比复合梯形法求积的精度要高,且当步长取不同值时即h越小时,积分精度越高。实验结果说明不存在一个最小的h,使得精度不能再被改善。又两个相应的关于h的误差(余项)Rn(f)=- h2f’’(η);Rn(f)=- (h/2)4f(4)(η),其中η属于a到b。可知h愈小,余项愈小,从而积分精度越高。
>> h=0.002;
>> t=TiXing_quad(a,b,h)
>> s=Simpson_quad(a,b,h)
(2)
>> a=0;
>> b=1;
>> eps=10^-8;
>> [quad,R]=Romberg(a,b,eps)
(3)
>> a=0;
>> b=1;
>> eps=10^-4;
>> q=ZiShiYingSimpson('sqrt(x).*log(x)',a,b,eps)

复合梯形公式和复合Simpson公式用法的比较

复合梯形公式和复合Simpson公式用法的比较

复合梯形公式和复合Simpson 公式用法的比较一、问题叙述由曲线y ()f x = ,a x b ≤≤绕x 轴旋转得到立体,其表面积计算公式为2(baS f x π=⎰分别用N=10的复合梯形公式和N=5的复合Simpson 公式求解下列每个的曲线绕x 轴旋转得到立方体的表面积。

(1)3(),01f x x x =≤≤ (2)()sin ,0/4f x x x π=≤≤ ; (3)()e ,01x f x x -=≤≤。

二、问题分析由叙述可知,三个函数在各自的定义域上函数值都大于0,且函数在各自的定义域上都是单调的。

(1)复合梯形公式取正整数n,令(b a)/n h =-,则点(k 0,1,,n)k x a kh =+=将[a,b]分为n 个小区间,利用定积分的性质可得11110011(x)(x)(x )f(x )2 =(a)f(b)2(x )2j jn n bx j j ax j j n j j h f dx f dx f h f f +--+==-=⎡⎤=≈+⎣⎦⎡⎤++⎢⎥⎣⎦∑∑⎰⎰∑所以,复合梯形公式的近似面积为:11(a)f(b)2(x )2n j j h S f f -=⎡⎤=++⎢⎥⎣⎦∑(2)复合Simpson 公式取正整数n,令h=(b-a)/2n,(j 0,1,,2n)j x a jh =+=.利用定积分的性质,以及Simpson 公式[]012(x)(x )4f(x )f(x )(f)3bahf dx f R =+++⎰在小区间222,j j x x -⎡⎤⎣⎦上的应用,有 2222221211(x)(x)(x )4f(x )f(x )3j nnbj j j j ax j j hf dx f dx f ---==⎡⎤=≈++⎣⎦∑∑⎰⎰整理可得,复合Simpson 公式的近似面积为:121211[f(a)f(b)4(x )2(x )]3n n j j j j hS f f --===+++∑∑。

复合梯形公式与复合辛普森公式对比

复合梯形公式与复合辛普森公式对比

下面利用余项公式来估计两种算法的误差。首先需要求
f (x) sin x 1cos(xt)dt ,
x
0
所以有
的高阶导数。由于
于是
f k (x)
1 0
dk dxk
(cos
xt)dt
1tk cos(xt k )dt ,
0
2
max f k (x) 1 cos(xt k )tk dt 1tk dt 1 .
输出积分值 结束
图 4-1 复合梯形公式算法流程图 4.2 复合辛普森公式算法流程图
开始 输入区间断点 a, b
及等分数 n 求出步长各h节,各点节函点数值,相邻节求点和中su点m1, 及
各相相邻应节的点函中数心值输点出函结积数束,分值值
k=1求,2,和..n-s1um2
k=1,2,..n-1
图 4-2 复合辛普5.森M公A式TL算AB法源流程程序
1. 对多个算例进行分析,保证计算量基本相同的情况下去比较计算精度,验证复合辛普森
公式具有更高精度的结论。
2. 对多个算例进行 MATLAB 编程分析,在要求相同计算精度的前提下去比较计算量的大小,
从而分析复合梯形公式与复合辛普森公式的优劣。
参考文献
[1]穆耶赛尔·艾合买提,阿布都热西提·阿布都外力. 改进复合梯形求积公式[J]. 首都师范大学学报(自然科学 版),2016,06:1-4. [2] 刘 智 颖 , 王 向 公 , 任 威龙 , 龙 耀 萍 . 辛 普 森 公 式的 推 广 形 式 及 应 用 [J]. 山 东 理 工 大 学 学 报 ( 自 然科 学 版),2014,01:29-31. [3]陈凤忠. 辛普森公式的统一美[J]. 长春理工大学学报(综合版),2005,03:59-60+80. [4]李庆扬, 王能超, 易大义. 数值分析.第 5 版[M]. 清华大学出版社, 2008,12:106-109.

复化梯形公式和复化Simpson公式

复化梯形公式和复化Simpson公式

数值计算方法上机题目3计算定积分的近似值:221x e xe dx =⎰ 要求:(1)若用复化梯形公式和复化Simpson 公式计算,要求误差限71021-⨯=ε,分别利用他们的余项估计对每种算法做出步长的事前估计;(2)分别利用复化梯形公式和复化Simpson 公式计算定积分;(3)将计算结果与精确解比较,并比较两种算法的计算量。

1.复化梯形公式程序:程序1(求f (x )的n 阶导数:syms xf=x*exp(x) %定义函数f (x )n=input('输入所求导数阶数:')f2=diff(f,x,n) %求f(x)的n 阶导数结果1输入n=2f2 =2*exp(x) + x*exp(x)程序2:clcclearsyms x%定义自变量xf=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可f2=inline('(2*exp(x) + x*exp(x))','x') %定义f(x)的二阶导数,输入程序1里求出的f2即可。

f3='-(2*exp(x) + x*exp(x))'%因fminbnd()函数求的是表达式的最小值,且要求表达式带引号,故取负号,以便求最大值e=5*10^(-8) %精度要求值a=1 %积分下限b=2 %积分上限x1=fminbnd(f3,1,2) %求负的二阶导数的最小值点,也就是求二阶导数的最大值点对应的x值for n=2:1000000 %求等分数nRn=-(b-a)/12*((b-a)/n)^2*f2(x1) %计算余项if abs(Rn)<e %用余项进行判断break% 符合要求时结束endendh=(b-a)/n %求hTn1=0for k=1:n-1 %求连加和xk=a+k*hTn1=Tn1+f(xk)endTn=h/2*((f(a)+2*Tn1+f(b)))z=exp(2)R=Tn-z %求已知值与计算值的差fprintf('用复化梯形算法计算的结果 Tn=')disp(Tn)fprintf('等分数 n=')disp(n) %输出等分数fprintf('已知值与计算值的误差 R=')disp(R)输出结果显示:用复化梯形算法计算的结果 Tn= 7.3891等分数 n= 7019已知值与计算值的误差 R= 2.8300e-0082. Simpson公式程序:程序1:(求f(x)的n阶导数):syms xf=x*exp(x) %定义函数f(x)n=input('输入所求导数阶数:')f2=diff(f,x,n) %求f(x)的n阶导数结果1输入n=4f2 =4*exp(x) + x*exp(x)程序2:clcclearsyms x%定义自变量xf=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可f2=inline('(4*exp(x) + x*exp(x))','x') %定义f(x)的四阶导数,输入程序1里求出的f2即可f3='-(4*exp(x) + x*exp(x))'%因fminbnd()函数求的是表达式的最小值,且要求表达式带引号,故取负号,一边求最大值e=5*10^(-8) %精度要求值a=1 %积分下限b=2 %积分上限x1=fminbnd(f3,1,2) %求负的四阶导数的最小值点,也就是求四阶导数的最大值点对应的x值for n=2:1000000 %求等分数nRn=-(b-a)/180*((b-a)/(2*n))^4*f2(x1) %计算余项if abs(Rn)<e %用余项进行判断break% 符合要求时结束endendh=(b-a)/n %求hSn1=0Sn2=0for k=0:n-1 %求两组连加和xk=a+k*hxk1=xk+h/2Sn1=Sn1+f(xk1)Sn2=Sn2+f(xk)endSn=h/6*(f(a)+4*Sn1+2*(Sn2-f(a))+f(b)) %因Sn2多加了k=0时的值,故减去f(a)z=exp(2)R=Sn-z %求已知值与计算值的差fprintf('用Simpson公式计算的结果 Sn=')disp(Sn)fprintf('等分数 n=')disp(n)fprintf('已知值与计算值的误差 R=')disp(R)输出结果显示:用Simpson公式计算的结果 Sn= 7.3891等分数 n= 24已知值与计算值的误差 R= 2.7284e-008用复化梯形公式计算的结果为:7.3891,与精确解的误差为:2.8300e-008。

复合梯形公式和复合辛普森公式

复合梯形公式和复合辛普森公式

复合梯形公式和复合辛普森公式1.复合梯形公式步骤1:将积分区间[a,b]均匀地分成n个小区间,每个小区间的长度为h=(b-a)/n,其中n为正整数。

步骤2:定义一个函数f(x),并在每个小区间上求出函数在小区间两个端点的函数值,记作f(x0), f(x1), f(x2), ..., f(xn)。

步骤3:根据梯形公式,每个小区间上的定积分近似值为(h/2) * (f(x0) + 2f(x1) + 2f(x2) + ... + 2f(xn-1) + f(xn))。

步骤4:将所有小区间上的定积分近似值相加,得到最终的近似值。

复合辛普森公式是通过将积分区间划分成若干个小区间,然后在每个小区间上应用辛普森公式来逼近定积分的值。

具体的步骤如下:步骤1:将积分区间[a,b]均匀地分成n个小区间,每个小区间的长度为h=(b-a)/n,其中n为正偶数。

步骤2:定义一个函数f(x),并在每个小区间上求出函数在小区间三个点的函数值,记作f(x0),f(x1),f(x2)。

步骤3:根据辛普森公式,每个小区间上的定积分近似值为(h/3)*(f(x0)+4f(x1)+f(x2))。

步骤4:将所有小区间上的定积分近似值相加,得到最终的近似值。

复合辛普森公式的误差主要取决于小区间的数量和函数在每个小区间上的变化情况。

与复合梯形公式相比,复合辛普森公式的精度更高,但计算复杂度也更高。

综上所述,复合梯形公式和复合辛普森公式是数值积分中常用的近似计算方法。

它们通过将积分区间划分成小区间,并在每个小区间上应用相应的公式来逼近定积分的值。

这两种方法都可以通过增加小区间的数量来提高近似的精度,但相应地也会增加计算的复杂度。

根据实际情况,我们可以选择合适的方法来计算需要求解的定积分。

复合梯形公式与复合辛普森公式对比

复合梯形公式与复合辛普森公式对比

SHANGHAI JIAO TONG UNIVERSITY 题目名称:复合梯形公式与复合辛普森公式对比学生姓名:学生学号:班级:学院(系):目录1.概述 (3)2.问题提出 (4)3.算法推导 (5)4.算法框图 (6)复合梯形公式算法流程图 (6)复合辛普森公式算法流程图 (7)5.MATLAB源程序 (8)6.结论与展望 (9)图表目录图 4-1 复合梯形公式算法流程图 (6)图 4-2 复合辛普森公式算法流程图 (7)图 6-1 MATLAB计算结果 (9)表 2-1函数计算结果表 (4)1.概述梯形求积公式和辛普森求积公式分别是牛顿-科斯特公式中n=1和n=2时的情形。

其中梯形求积公式可表示为其公式左端是以[a,b]区间上积分,右端为b-a为高、端点函数值为上下底的梯形的面积值,故通称为梯形公式,具有1次代数精确度。

类似的,辛普森求积公式可以表示为该公式一般在立体几何中用来求拟柱体的体积,由于偶数n阶牛顿-科特斯求积公式至少具有n+1次代数精确度,所以辛普森公式实际上具有3次代数精确度。

由于牛顿-科斯特公式在n≥8时不具有稳定性,故不可能通过提高阶的方法来提高求积精度。

为了提高精度通常可把积分区间分成若干子区间(通常是等分),再在每个子区间上用低阶求积公式。

这种方法称为复合求积法。

本文主要讨论复合梯形公式和复合辛普森公式在同一数学问题中的应用。

首先给出了复合梯形公式和复合辛普森公式的推导过程以及其余项的表达形式,然后用流程图的形式介绍算法思路,再运用MATLAB编写代码计算结果,最后对结果进行对比讨论。

希望通过两个算法在同一个算例中的应用对比,更好的理解和掌握复合梯形公式和复合辛普森公式的适用范围和适用条件。

并且能够熟悉MATLAB编程求解问题的流程,掌握编程化的思想方法。

同时对两种方法的计算结果对比分析,讨论两种求积方法的计算精度。

2.问题提出对于函数f(x)=sinxx给出的函数表如下,试用复合梯形公式和复合辛普森公式计算积分I=∫sinxx dx1。

复化梯形法 复化矩形法 变步长梯形 变步长辛普森

复化梯形法 复化矩形法 变步长梯形 变步长辛普森

陕西科技大学机械教改班用C++的积分其实积分的思想就是,微分—>求和—>取极限,如果是用纯手工法那就是先对一个函数微分,再求出它的面积,在取极限,因为我们的计算速度和计算量有限,现在有了计算机这个速度很快的机器,我们可以把微分后的每个小的面积加起来,为了满足精度,我们可以加大分区,即使实现不了微分出无限小的极限情况,我们也至少可以用有限次去接近他,下面我分析了四种不同的积分方法,和一个综合通用程序。

一.积分的基本思想1、思路:微分—>求和—>取极限。

2、Newton —Leibniz 公式 ⎰-=ba a Fb F dx x f )()()( 其中,)(x F 被积函数)(x f的原函数。

3、用计算机积分的思路在积分区间内“微分—>求和—>控制精度”。

因为计算机求和不可以取极限,也就是不可以无限次的加下去,所以要控制精度。

二.现有的理论1、一阶求积公式---梯形公式⎰=+-=b a T b f a f a b dx x f )]()([2)( 他只能精确计算被积函数为0、1次多项式时的积分。

2、二阶求积分公式——牛顿、科特斯公式 ⎰=+++-=ba Sb f a b f a f a b dx x f )]()2(4)([6)(他只能精确计算被积函数为0、1、2、3次多项式时的积分。

三.四种实现方法1.复化矩形法将积分区间[a,b]等分成n 个子区间:],[],[],[],[],[112322110n n n n x x x x x x x x x x ---、、、 则h=(b-a)/n,区间端点值k x =a+kh)hf(x ))f(x x (x I 11121=-=)()()x (22232x hf x f x I =-=............................)()()(111n ---=-=n n n n x hf x f x x I∑==ni i x hf T 1n )(源程序:#include <iostream.h>#include<math.h>double f(double x) //计算被积函数{double y;y=log(1+x)/(1+x*x); //被积函数return y;}double Tn(double a,double b,int n) //求Tn{double t=0.0;double xk; //区间端点值double t1,t2; //用来判断精度do{double h=(b-a)/n;for(int k=1;k<=n-1;k++) //每一小段的矩形叠加 {t1=t;xk=a+k*h;t+=h*f(xk);t2=t;}n++; //如果精度不够就对区间再次细分,直到达到精度要求 }while(fabs(t1-t2)<=1e-7); //判断计算精度return t;}void main(){double a=0.0; //积分下线double b=2.0; //积分上限int n=1024; //把区间分为1024段cout<<Tn(a,b,n)<<endl; //输出积分结果}执行结果:2.复化梯形法方法和复化矩形法类似,只是把原来的矩形小面积变成了梯形小面积,但是精确度明显提高了,也就是说达到同样的精度需要的时间少了。

复合梯形公式和复合辛普森公式误差

复合梯形公式和复合辛普森公式误差

复合梯形公式和复合辛普森公式误差在我们学习数学的过程中,常常会遇到各种各样的公式,而复合梯形公式和复合辛普森公式就是其中比较重要的两个。

这两个公式在数值计算中发挥着重要的作用,可别小瞧它们,这里面的学问可大着呢!先来说说复合梯形公式。

它就像是一个勤劳的小工人,虽然简单直接,但也有自己的小脾气。

复合梯形公式的基本思想就是把区间分成很多小段,然后在每个小段上用梯形的面积来近似函数的积分值。

这就好像我们要计算一段山坡的面积,把山坡分成一段一段的,每一段都看成一个梯形,然后把这些梯形的面积加起来,就得到了山坡的近似面积。

我记得有一次在课堂上,老师给我们出了一道用复合梯形公式计算积分的题目。

那道题可把大家难住了,大家都在草稿纸上不停地写写画画。

我也不例外,一开始我总是算错,不是区间分错了,就是梯形面积计算有误。

但是我没有放弃,一遍又一遍地检查,终于发现了问题所在。

原来我在计算梯形面积的时候,忘记乘以二分之一了。

经过这次小小的挫折,我对复合梯形公式的理解更加深刻了,也明白了做数学题一定要细心,不能马虎。

再聊聊复合辛普森公式。

它可比复合梯形公式要“聪明”一些,精度也更高。

复合辛普森公式就像是一个精明的小管家,能够更准确地估计函数的积分值。

它把区间分成偶数段,然后用抛物线来近似函数,计算出的结果更接近真实值。

有一次我在做一个数学实验,要用复合辛普森公式计算一个复杂函数的积分。

我按照公式一步一步地计算,心里还挺紧张,生怕出错。

当我算出结果,和标准答案一对比,发现竟然相差无几,那一刻我心里别提多高兴了,就像是在黑暗中找到了光明一样。

那么,复合梯形公式和复合辛普森公式到底有什么误差呢?其实啊,复合梯形公式的误差与区间长度的平方成正比,而复合辛普森公式的误差与区间长度的四次方成正比。

这就意味着,在相同的区间长度下,复合辛普森公式的误差要比复合梯形公式小得多。

比如说,我们要计算一个函数在[0, 1]区间上的积分,如果用复合梯形公式,把区间分成 10 段,可能会有比较大的误差;但如果用复合辛普森公式,同样分成 10 段,误差就会小很多。

复化梯形公式和复化辛普森公式

复化梯形公式和复化辛普森公式

复化梯形公式和复化辛普森公式1. 引言嘿,大家好!今天我们来聊聊数学里那些看似高深莫测的公式,尤其是复化梯形公式和复化辛普森公式。

这些名字听起来就像是从某部科幻片里蹦出来的角色,但其实它们是我们在数值积分中不可或缺的好帮手。

你知道吗?它们就像是数学世界里的“超能英雄”,让我们轻松搞定积分,简直是妙不可言。

2. 复化梯形公式2.1 你知道什么是梯形吗?首先,咱们得聊聊复化梯形公式。

说白了,就是把一个复杂的积分任务,分解成几个小的梯形来求解。

想象一下,你在河边钓鱼,河水流得可欢了。

为了找一个合适的钓鱼点,你可能得把河分成几段,然后每一段的宽度就是你的小梯形。

你看,这就是复化梯形的魅力所在!2.2 如何运用复化梯形公式?用这个公式的时候,你只需把整个区间分成N个小区间,每个区间的宽度都是一样的。

然后,把每个小区间的函数值拿来加一加,再乘上宽度的一半,最后再把头尾的函数值加上。

这听起来是不是很简单?比如,你想算从0到1的某个函数的积分,只要把这个区间分成若干段,像切蛋糕一样,每一片都求个函数值,然后把结果合起来就行了。

简单得就像吃个冰淇淋,大家都喜欢。

3. 复化辛普森公式3.1 辛普森是谁?接下来,让我们来看看复化辛普森公式。

辛普森这个名字,大家可能都听过,或者说过“这是辛普森家的事儿”。

其实,他是一位牛逼的数学家,专门研究如何让积分变得更加简单。

辛普森公式就像是对梯形公式的一次升级,像换了个新款手机,功能更强大,效果更好。

3.2 如何运用复化辛普森公式?用复化辛普森公式的时候,我们也是把整个区间分成N个小区间,不过这里的N必须是偶数哦!每个小区间的宽度仍然是一样的。

然后,用函数值的加权平均法来计算。

换句话说,你把每个小区间的头尾和中间的函数值都考虑进来,像是为你的冰淇淋加上各种口味的配料。

最后,你的结果就会比单纯用梯形公式得来的要精准多了,仿佛一口下去,味蕾都在舞蹈。

4. 比较与应用4.1 谁更强?说到这儿,很多人就会问,复化梯形公式和复化辛普森公式,谁更厉害呢?其实,这就像问“苹果和橘子,哪个更好吃”。

复合梯形公式与复合辛普森公式对比

复合梯形公式与复合辛普森公式对比

复合梯形公式与复合辛普森公式对比标准化管理部编码-[99968T-6889628-J68568-1689N]SHANGHAI JIAO TONG UNIVERSITY 题目名称:复合梯形公式与复合辛普森公式对比学生姓名:学生学号:班级:学院(系):目录1.概述 (3)2.问题提出 (4)3.算法推导 (5)4.算法框图 (6)复合梯形公式算法流程图 (6)复合辛普森公式算法流程图 (7)5.MATLAB源程序 (8)6.结论与展望 (9)图表目录图 4-1 复合梯形公式算法流程图 (6)图 4-2 复合辛普森公式算法流程图 (7)图 6-1 MATLAB计算结果 (9)表 2-1函数计算结果表 (4)1.概述梯形求积公式和辛普森求积公式分别是牛顿-科斯特公式中n=1和n=2时的情形。

其中梯形求积公式可表示为其公式左端是以[a,b]区间上积分,右端为b-a为高、端点函数值为上下底的梯形的面积值,故通称为梯形公式,具有1次代数精确度。

类似的,辛普森求积公式可以表示为该公式一般在立体几何中用来求拟柱体的体积,由于偶数n阶牛顿-科特斯求积公式至少具有n+1次代数精确度,所以辛普森公式实际上具有3次代数精确度。

由于牛顿-科斯特公式在n≥8时不具有稳定性,故不可能通过提高阶的方法来提高求积精度。

为了提高精度通常可把积分区间分成若干子区间(通常是等分),再在每个子区间上用低阶求积公式。

这种方法称为复合求积法。

本文主要讨论复合梯形公式和复合辛普森公式在同一数学问题中的应用。

首先给出了复合梯形公式和复合辛普森公式的推导过程以及其余项的表达形式,然后用流程图的形式介绍算法思路,再运用MATLAB编写代码计算结果,最后对结果进行对比讨论。

希望通过两个算法在同一个算例中的应用对比,更好的理解和掌握复合梯形公式和复合辛普森公式的适用范围和适用条件。

并且能够熟悉MATLAB编程求解问题的流程,掌握编程化的思想方法。

同时对两种方法的计算结果对比分析,讨论两种求积方法的计算精度。

复化梯形公式和复化Simpson公式

复化梯形公式和复化Simpson公式

数值计算方法上机题目3一、计算定积分的近似值:221x e xe dx =⎰ 要求:(1)若用复化梯形公式和复化Simpson 公式计算,要求误差限71021-⨯=ε,分别利用他们的余项估计对每种算法做出步长的事前估计;(2)分别利用复化梯形公式和复化Simpson 公式计算定积分;(3)将计算结果与精确解比较,并比较两种算法的计算量。

1.复化梯形公式程序:程序1(求f (x )的n 阶导数:syms xf=x*exp(x) %定义函数f (x )n=input('输入所求导数阶数:')f2=diff(f,x,n) %求f(x)的n 阶导数结果1输入n=2f2 =2*exp(x) + x*exp(x)程序2:clcclearsyms x%定义自变量xf=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可f2=inline('(2*exp(x) + x*exp(x))','x') %定义f(x)的二阶导数,输入程序1里求出的f2即可。

f3='-(2*exp(x) + x*exp(x))'%因fminbnd()函数求的是表达式的最小值,且要求表达式带引号,故取负号,以便求最大值e=5*10^(-8) %精度要求值a=1 %积分下限b=2 %积分上限x1=fminbnd(f3,1,2) %求负的二阶导数的最小值点,也就是求二阶导数的最大值点对应的x值for n=2:1000000 %求等分数nRn=-(b-a)/12*((b-a)/n)^2*f2(x1) %计算余项if abs(Rn)<e %用余项进行判断break% 符合要求时结束endendh=(b-a)/n %求hTn1=0for k=1:n-1 %求连加和xk=a+k*hTn1=Tn1+f(xk)endTn=h/2*((f(a)+2*Tn1+f(b)))z=exp(2)R=Tn-z %求已知值与计算值的差fprintf('用复化梯形算法计算的结果 Tn=')disp(Tn)fprintf('等分数 n=')disp(n) %输出等分数fprintf('已知值与计算值的误差 R=')disp(R)输出结果显示:用复化梯形算法计算的结果 Tn= 7.3891等分数 n=7019已知值与计算值的误差 R= 2.8300e-0082. Simpson公式程序:程序1:(求f(x)的n阶导数):syms xf=x*exp(x) %定义函数f(x)n=input('输入所求导数阶数:')f2=diff(f,x,n) %求f(x)的n阶导数结果1输入n=4f2 =4*exp(x) + x*exp(x)程序2:clcclearsyms x%定义自变量xf=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可f2=inline('(4*exp(x) + x*exp(x))','x') %定义f(x)的四阶导数,输入程序1里求出的f2即可f3='-(4*exp(x) + x*exp(x))'%因fminbnd()函数求的是表达式的最小值,且要求表达式带引号,故取负号,一边求最大值e=5*10^(-8) %精度要求值a=1 %积分下限b=2 %积分上限x1=fminbnd(f3,1,2) %求负的四阶导数的最小值点,也就是求四阶导数的最大值点对应的x值for n=2:1000000 %求等分数nRn=-(b-a)/180*((b-a)/(2*n))^4*f2(x1) %计算余项if abs(Rn)<e %用余项进行判断break% 符合要求时结束endendh=(b-a)/n %求hSn1=0Sn2=0for k=0:n-1 %求两组连加和xk=a+k*hxk1=xk+h/2Sn1=Sn1+f(xk1)Sn2=Sn2+f(xk)endSn=h/6*(f(a)+4*Sn1+2*(Sn2-f(a))+f(b)) %因Sn2多加了k=0时的值,故减去f(a)z=exp(2)R=Sn-z %求已知值与计算值的差fprintf('用Simpson公式计算的结果 Sn=')disp(Sn)fprintf('等分数 n=')disp(n)fprintf('已知值与计算值的误差 R=')disp(R)输出结果显示:用Simpson公式计算的结果 Sn= 7.3891等分数 n=24已知值与计算值的误差 R= 2.7284e-008用复化梯形公式计算的结果为:7.3891,与精确解的误差为:2.8300e-008。

复化梯形公式和复化Simpson公式

复化梯形公式和复化Simpson公式

数值计算方法上机题目3一、计算定积分的近似值:要求:(1)若用复化梯形公式和复化Simpson 公式计算,要求误差限71021-⨯=ε,分别利用他们的余项估计对每种算法做出步长的事前估计;(2)分别利用复化梯形公式和复化Simpson 公式计算定积分;(3)将计算结果与精确解比较,并比较两种算法的计算量。

1.复化梯形公式程序:程序1(求f (x )的n 阶导数:syms xf=x*exp(x) %定义函数f (x )n=input('输入所求导数阶数:')f2=diff(f,x,n) %求f(x)的n 阶导数 结果1输入n=2f2 =2*exp(x) + x*exp(x)程序2:clcclearsyms x %定义自变量xf=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可 f2=inline('(2*exp(x) + x*exp(x))','x') %定义f(x)的二阶导数,输入程序1里求出的f2即可。

f3='-(2*exp(x) + x*exp(x))' %因fminbnd ()函数求的是表达式的最小值,且要求表达式带引号,故取负号,以便求最大值e=5*10^(-8) %精度要求值a=1 %积分下限b=2 %积分上限x1=fminbnd(f3,1,2) %求负的二阶导数的最小值点,也就是求二阶导数的最大值点对应的x值for n=2:1000000 %求等分数nRn=-(b-a)/12*((b-a)/n)^2*f2(x1) %计算余项if abs(Rn)<e %用余项进行判断break% 符合要求时结束endendh=(b-a)/n %求hTn1=0for k=1:n-1 %求连加和xk=a+k*hTn1=Tn1+f(xk)endTn=h/2*((f(a)+2*Tn1+f(b)))z=exp(2)R=Tn-z %求已知值与计算值的差fprintf('用复化梯形算法计算的结果 Tn=')disp(Tn)fprintf('等分数 n=')disp(n) %输出等分数fprintf('已知值与计算值的误差 R=')disp(R)输出结果显示:用复化梯形算法计算的结果Tn= 7.3891等分数n=7019已知值与计算值的误差R= 2.8300e-0082. Simpson公式程序:程序1:(求f(x)的n阶导数):syms xf=x*exp(x) %定义函数f(x)n=input('输入所求导数阶数:')f2=diff(f,x,n) %求f(x)的n阶导数结果1输入n=4f2 =4*exp(x) + x*exp(x)程序2:clcclearsyms x%定义自变量xf=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可f2=inline('(4*exp(x) + x*exp(x))','x') %定义f(x)的四阶导数,输入程序1里求出的f2即可f3='-(4*exp(x) + x*exp(x))'%因fminbnd()函数求的是表达式的最小值,且要求表达式带引号,故取负号,一边求最大值e=5*10^(-8) %精度要求值a=1 %积分下限b=2 %积分上限x1=fminbnd(f3,1,2) %求负的四阶导数的最小值点,也就是求四阶导数的最大值点对应的x值for n=2:1000000 %求等分数nRn=-(b-a)/180*((b-a)/(2*n))^4*f2(x1) %计算余项if abs(Rn)<e %用余项进行判断break% 符合要求时结束endendh=(b-a)/n %求hSn1=0Sn2=0for k=0:n-1 %求两组连加和xk=a+k*hxk1=xk+h/2Sn1=Sn1+f(xk1)Sn2=Sn2+f(xk)endSn=h/6*(f(a)+4*Sn1+2*(Sn2-f(a))+f(b)) %因Sn2多加了k=0时的值,故减去f(a)z=exp(2)R=Sn-z %求已知值与计算值的差fprintf('用Simpson公式计算的结果 Sn=')disp(Sn)fprintf('等分数 n=')disp(n)fprintf('已知值与计算值的误差 R=')disp(R)输出结果显示:用Simpson公式计算的结果Sn= 7.3891等分数n=24已知值与计算值的误差R= 2.7284e-008用复化梯形公式计算的结果为:7.3891,与精确解的误差为:2.8300e-008。

复化梯形公式和复化Simpson公式

复化梯形公式和复化Simpson公式

数值计算方法上机题目3一、计算定积分的近似值:221x e xe dx =⎰ 要求:(1)若用复化梯形公式和复化Simpson 公式计算,要求误差限71021-⨯=ε,分别利用他们的余项估计对每种算法做出步长的事前估计;(2)分别利用复化梯形公式和复化Simpson 公式计算定积分;(3)将计算结果与精确解比较,并比较两种算法的计算量。

1.复化梯形公式程序:程序1(求f (x )的n 阶导数:syms xf=x*exp(x) %定义函数f (x )n=input('输入所求导数阶数:')f2=diff(f,x,n) %求f(x)的n 阶导数结果1输入n=2f2 =2*exp(x) + x*exp(x)程序2:clcclearsyms x%定义自变量xf=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可f2=inline('(2*exp(x) + x*exp(x))','x') %定义f(x)的二阶导数,输入程序1里求出的f2即可。

f3='-(2*exp(x) + x*exp(x))'%因fminbnd()函数求的是表达式的最小值,且要求表达式带引号,故取负号,以便求最大值e=5*10^(-8) %精度要求值a=1 %积分下限b=2 %积分上限x1=fminbnd(f3,1,2) %求负的二阶导数的最小值点,也就是求二阶导数的最大值点对应的x值for n=2:1000000 %求等分数nRn=-(b-a)/12*((b-a)/n)^2*f2(x1) %计算余项if abs(Rn)<e %用余项进行判断break% 符合要求时结束endendh=(b-a)/n %求hTn1=0for k=1:n-1 %求连加和xk=a+k*hTn1=Tn1+f(xk)endTn=h/2*((f(a)+2*Tn1+f(b)))z=exp(2)R=Tn-z %求已知值与计算值的差fprintf('用复化梯形算法计算的结果 Tn=')disp(Tn)fprintf('等分数 n=')disp(n) %输出等分数fprintf('已知值与计算值的误差 R=')disp(R)输出结果显示:用复化梯形算法计算的结果Tn= 7.3891等分数n=7019已知值与计算值的误差R= 2.8300e-0082. Simpson公式程序:程序1:(求f(x)的n阶导数):syms xf=x*exp(x) %定义函数f(x)n=input('输入所求导数阶数:')f2=diff(f,x,n) %求f(x)的n阶导数结果1输入n=4f2 =4*exp(x) + x*exp(x)程序2:clcclearsyms x%定义自变量xf=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可f2=inline('(4*exp(x) + x*exp(x))','x') %定义f(x)的四阶导数,输入程序1里求出的f2即可f3='-(4*exp(x) + x*exp(x))'%因fminbnd()函数求的是表达式的最小值,且要求表达式带引号,故取负号,一边求最大值e=5*10^(-8) %精度要求值a=1 %积分下限b=2 %积分上限x1=fminbnd(f3,1,2) %求负的四阶导数的最小值点,也就是求四阶导数的最大值点对应的x值for n=2:1000000 %求等分数nRn=-(b-a)/180*((b-a)/(2*n))^4*f2(x1) %计算余项if abs(Rn)<e %用余项进行判断break% 符合要求时结束endendh=(b-a)/n %求hSn1=0Sn2=0for k=0:n-1 %求两组连加和xk=a+k*hxk1=xk+h/2Sn1=Sn1+f(xk1)Sn2=Sn2+f(xk)endSn=h/6*(f(a)+4*Sn1+2*(Sn2-f(a))+f(b)) %因Sn2多加了k=0时的值,故减去f(a)z=exp(2)R=Sn-z %求已知值与计算值的差fprintf('用Simpson公式计算的结果 Sn=')disp(Sn)fprintf('等分数 n=')disp(n)fprintf('已知值与计算值的误差 R=')disp(R)输出结果显示:用Simpson公式计算的结果Sn= 7.3891等分数n=24已知值与计算值的误差R= 2.7284e-008用复化梯形公式计算的结果为:7.3891,与精确解的误差为:2.8300e-008。

数值计算考题五——复合梯形求积公式与复合辛普森求积公式求积分

数值计算考题五——复合梯形求积公式与复合辛普森求积公式求积分

数值计算考题五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. 用高斯求积法求上述积分的近似值。

复合梯形公式与复合辛普森公式对比

复合梯形公式与复合辛普森公式对比

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SHANGHAI JIAO TONG UNIVERSITY
题目名称:复合梯形公式与复合辛普森公式对比学生:
学生学号:
班级:
学院(系):
目录
1.概述 (3)
2.问题提出 (3)
3.算法推导 (3)
4.算法框图 (3)
4.1复合梯形公式算法流程图 (3)
4.2 复合辛普森公式算法流程图 (3)
5.MATLAB源程序 (3)
6.结论与展望 (3)
图表目录
图4-1 复合梯形公式算法流程图 (1)
图4-2 复合辛普森公式算法流程图 (1)
图6-1 MATLAB计算结果 (3)
表2-1函数计算结果表 (3)
1.概述
梯形求积公式和辛普森求积公式分别是牛顿-科斯特公式中n=1和n=2时的情形。

其中梯形求积公式可表示为
由于牛顿-科斯特公式在n≥8时不具有稳定性,故不可能通过提高阶的方法来提高求积精度。

为了提高精度通常可把积分区间分成若干子区间(通常是等分),再在每个子区间上用低阶求积公式。

这种方法称为复合求积法。

本文主要讨论复合梯形公式和复合辛普森公式在同一数学问题中的应用。

首先给出了复合梯形公式和复合辛普森公式的推导过程以及其余项的表达形式,然
后用流程图的形式介绍算法思路,再运用MATLAB编写代码计算结果,最后对结果进行对比讨论。

希望通过两个算法在同一个算例中的应用对比,更好的理解和掌握复合梯形公式和复合辛普森公式的适用围和适用条件。

并且能够熟悉MATLAB编程求解问题的流程,掌握编程化的思想方法。

同时对两种方法的计算结果对比分析,讨论两种求积方法的计算精度。

2.问题提出
对于函数给出的函数表如下,试用复合梯形公式和复合辛普森公
式计算积分。

表2-1函数计算结果表
x f(x)
0 1
1/8 0.997397867081822
1/4 0.989615837018092
3.算法推导3.1复合梯形公式
根据梯形公式,
()(()())2b
a
b a
f x dx f a f b -=
+⎰
将区间划分为n 等份,分点,,,在每个子区

上采用梯形公式,则得:
1
1
100
()()[(()()]()
2n n b
k k n a
k k h I f x dx f x dx f x f x R f --+=====++∑
∑⎰

11
101[()()][()2()()]
22n n n k k k k k h h
T f x f x f a f x f b --+===+=++∑∑
则为复合梯形公式。

另外,复合梯形公式的余项可表示为
2
()()12
n b a R f h f η-''=-
3.2 复合辛普森公式
根据辛普森公式
[()4()()]62b a a b
S f a f f b -+=
++
将区间划分为n 等份,在每个子区间上采用辛普森公
式。

若记
则得
1
1
1
1/210
()()[()4()()]()
6k k
b
n n x k k k n x k k a
h I f x dx f x dx f x f x f x R f +--++=====+++∑∑⎰⎰

11
1/201[()4()2()()]
6n n n k k k k h
S f a f x f x f b --+===+++∑∑
该公式即为复合辛普森公式。

复合辛普森公式的余项可表示为
4(4)
()()()1802
n b a h R f f η-=-
4. 算法框图
4.1复合梯形公式算法流程图
开始
求出步长h ,各节点
及相应的
各节点函数值
求和sum,
k=1,2,..n-1
输入区间断点a,b
及等分数n
4.2 复合辛普森公式算法流程图
结束
输出积分值
开始
输入区间断点a, b
及等分数n
求出步长h,各节点,相邻节点中点及相应的函数值,k=1,2,..n-1
各节点函数值求和sum1,
各相邻节点中心点函数值求和sum2
k=1,2,..n-1
输出积分值
结束
图 4-1 复合梯形公式算法流程图
图 4-2 复合辛普森公式算法流程图
5.MATLAB源程序
%复合梯形公式及复合辛普森积分公式
clear all;
format long;
a=0;
b=1;
n=8;
h=(b-a)/n;%步长
for i=1:n+1
x(i)=a+(i-1)*h;
if isnan(sin(x(i))/x(i))
syms t;
tmp=limit(sin(t)./t,t,x(i));%当被积函数在某点值不存在时,求其极限y(i)=eval(tmp);
else
y(i)=sin(x(i))/x(i);%被积函数求节点的值
end
end
%复合梯形公式及复合辛普森积分公式
s1=0;
for k=2:n
s1=s1+y(k);
end
T8=h/2*(y(1)+2*s1++y(n+1))
%复合辛普森积分公式
s2=0;
s3=0;
for k=2:2:n
s2=s2+y(k);
end
for k=3:2:n-1
s3=s3+y(k);
end
h1=2*h;%注:此时步长是原来的2倍
S4=h1/6*(y(1)+4*s2+2*s3+y(n+1))
fprintf('梯形积分公式:%6.6f\n辛普森公式积分:%6.6f\n',T8,S4)
6. 结论与展望
图 6-1 MATLAB 计算结果
运行MATLAB 程序,得到复合梯形求积公式的积分值为0.945691,复合辛普森求积公式的积分值为0.946083(四舍五入后保留6位小数)。

而实际的积分准确值保留到6位小数的结果为0.946083。

通过上述结果对比可以得出,虽然复合梯形公式将区间分成了8等分而复合辛普森公式将区间分成了4等分,但两种计算方法实际都需要使用9个点上的函数值,计算量基本也相同,然而最终精度差别却很大。

在保留6位小数的前提下,复合辛普森法计算结果与精确解完全一致,而复合梯形公式的计算结果却只有前两位数字与精确解相同,误差相对比较大。

下面利用余项公式来估计两种算法的误差。

首先需要求
的高阶导
数。

由于
10sin ()cos()x f x xt dt x ==⎰, 所以有
1
100()(cos )cos()2k k k k d k f x xt dt t xt dt dx π==+⎰⎰,
于是
1100011max ()cos()21
k k k x k f x xt t dt t dt k π≤≤≤+≤=+⎰⎰. 从而复合梯形公式的误差
223801111()max ()()0.43410121283
x h R f f x -≤≤''≤≤=⨯. 而复合辛普森公式的误差
468111()()0.27110288045
R f -≤=⨯. 从而,对比两者可得,复合辛普森公式在计算该问题时的精度远高于复合梯形公式。

通过以上分析,本文所得结论如下:
1. 复合梯形公式和复合辛普森公式都可以用来作为数值积分估算的替代公式。

2. 在计算量基本相同的前提下,复合辛普森公式计算结果的计算精度要比复合
梯形公式计算精度高的多。

3. 本算例也验证了辛普森公式作为偶数阶牛顿-柯特斯公式的更为精确的代数
精度。

关于如何开展下一步研究,提出以下构想:
1. 对多个算例进行分析,保证计算量基本相同的情况下去比较计算精度,验证
复合辛普森公式具有更高精度的结论。

2. 对多个算例进行MATLAB 编程分析,在要求相同计算精度的前提下去比较计
算量的大小,从而分析复合梯形公式与复合辛普森公式的优劣。

参考文献
[1]穆耶赛尔·艾合买提,阿布都热西提·阿布都外力. 改进复合梯形求积公式[J]. 首都师大学学报(自然科学版),2016,06:1-4.
[2]智颖,王向公,任威龙,龙耀萍. 辛普森公式的推广形式及应用[J]. 理工大学学报(自然科学版),2014,01:29-31.
[3]凤忠. 辛普森公式的统一美[J]. 理工大学学报(综合版),2005,03:59-60+80.
[4]庆扬, 王能超, 易大义. 数值分析.第5版[M]. 清华大学, 2008,12:106-109.。

相关文档
最新文档