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

合集下载

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

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

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

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

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

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

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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  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.。

相关文档
最新文档