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

合集下载

复化梯形公式,复化辛普森公式,复化柯特斯公式

复化梯形公式,复化辛普森公式,复化柯特斯公式

复化梯形公式,复化辛普森公式,复化柯特斯公式
复化梯形公式、复化辛普森公式和复化柯特斯公式都是用来计算定积分的近似值的方法。

1. 复化梯形公式:将积分区间分成若干个小区间,在每个小区间上用梯形面积近似代替该小区间的曲边梯形面积,然后将这些梯形面积相加,得到积分的近似值。

2. 复化辛普森公式:将积分区间分成若干个等分小区间,在每个小区间上用矩形面积近似代替该小区间的曲边梯形面积,然后将这些矩形面积相加,得到积分的近似值。

3. 复化柯特斯公式:将积分区间分成若干个等分小区间,在每个小区间上用切线段长度近似代替该小区间的曲边梯形面积,然后将这些切线段长度相加,得到积分的近似值。

这三种方法都是通过将积分区间分成若干个小区间,然后在每个小区间上用近似方法计算该小区间的曲边梯形面积,最后将这些近似值相加得到积分的近似值。

它们的精度和误差都与分区间的大小有关。

数值分析(18)复化求积法

数值分析(18)复化求积法

1 2
h2
b
4
a
,
直到 T2n Tn 为止,将T2n作为积分的近似值。
数值分析
数值分析
下面推导由n到2n的复化梯形公式
给出误差限,将[a,b]n等分,步长hn
b
a n
,
用复化梯形公式:
在[xk , xk1 ]上,T1k
hn 2
(
f
( xk )
f ( xk1 ))
在[a, b]上,
T (hn ) Tn
理查逊外推算法流程 1,0
1,1 2,0
1,2 2,1 3,0
M
M
MO
1,n 2,n1 3,n2 L n1,0
数值分析
数值分析
二、龙贝格(Romberg)方法
龙贝格(Romberg)算法是将理查逊(Richardson)外推法应 用于数值积分,由低精度求积公式推出高精度求积公式的算法。
h
ba 2k
数值分析
数值分析
变步长复化梯形公式的递推公式: (由n到2n)
T2n
1 2 Tn
Hn 2
其中Tn
hn 2
(
f (a)
n1
f (b)) hn
k 1
f ( xk )
n1
H n
hn
k0
f
(
x
k
1
)
2
实际计算中的递推公式为
ba
T1
[ f (a) f (b)] 2
1
b a n1
ba
T2n 2 Tn
复 化 梯 形 公 式 的 截 断 误差 有 展 开 式
b a
f ( x)dx Tn
C2h2

复化梯形算法求解数值积分

复化梯形算法求解数值积分

复化梯形算法求解数值积分
下面详细介绍复化梯形算法的原理和步骤:
1.原理:
2.步骤:
(1)将区间[a,b]等分成N个小区间,每个小区间的长度为h=(b-a)/N。

(2) 定义x0 = a 和 xn = b,即第一个小区间的左端点和最后一个
小区间的右端点。

(3) 对于每个小区间[i, i+1],计算f(xi)和f(xi+1),然后计算小
区间[i, i+1]上的积分值Ti = h * (f(xi) + f(xi+1)) / 2
(4)将所有小区间上的积分值相加,得到近似的定积分值
I≈T=T1+T2+...+TN。

3.误差分析:
误差E=-(b-a)^3/12N^2*f''(ξ)
其中f''(ξ)是函数f(x)在区间[a,b]上的二阶导数的最大值。

4.示例:
考虑要求解函数f(x)=x^2在区间[0,1]上的定积分,可以使用复化梯
形算法进行计算。

首先将区间[0,1]等分成N个小区间,假设N=4、则每个小区间的长
度为h=(1-0)/4=0.25
然后计算每个小区间上的积分值:
最后将所有小区间上的积分值相加,得到近似的定积分值:
因此,函数f(x)=x^2在区间[0,1]上的定积分的近似值为0.75
以上就是复化梯形算法求解数值积分的原理和步骤,该算法可以通过增加小区间的数量以提高计算的精度。

同时,利用误差公式可以估计计算的误差,有助于选择适当的参数进行数值积分的计算。

数值积分:梯形规则

数值积分:梯形规则

数值积分:梯形规则数值积分:梯形规则--复合梯形规则--辛普森规则--复合辛普森规则--龙贝格求积公式1.问题描述微积分方法求积有很大的局限性,当碰到被积函数很复杂时,找不到相应的原函数。

积分值在几何上可解释为由 x=a,x=b,y=0和y=f(x) 所围成的曲边梯形的面积。

积分计算之所以有困难,就是因为这个曲边梯形有一条边y=f(x)是曲线。

2.理论与方法依据积分中值定理,底为b-a,而高为f(e)的矩形面积恰等于所求曲边梯形的面积I.f(e)称作区间[a,b]上的平均高度。

这样,只要对平均高度f(e)提供一种算法,便相应地获得一种数值求积的算法。

1.梯形规则(Trapezoidal rule)简单选取区间[a ,b]的中点高度作为平均高度。

取h=b-aa0=⌠(a-b)(x-b)/(a-b)dx=(b-a)/2a1=⌠(a-b)(x-a)/(b-a)dx=(b-a)/2得到:2.辛普森规则(Simpson rule)可视作用a , b与c=(a+b)/2三点高度的加权平均值作为平均高度。

3.复合梯形规则(Composite numerical)设将求积区间[a,b]划分为n等份,步长h=(b-a)/2 ,等分点为xi=a+bi , i=0,1,...,n 所谓复化求积法,就是先用低阶求积公式求得每个子段[xi,xi+1]上的积分值,然后再将它们累加求和,用各段积分之和Ii,i=0,1,n-1作为所求积分的近似值。

复化梯形公式:4.复合辛普森规则(Composite Simpson)记子段[xi,xi+1]的中点为则复化公式为复化Simpson公式:5.龙贝格求积公式(Romberg)龙贝格求积公式也称为逐次分半加速法。

它是在梯形公式、辛普森公式和柯特斯公式之间的关系的基础上,构造出一种加速计算积分的方法。

作为一种外推算法, 它在不增加计算量的前提下提高了误差的精度.在等距基点的情况下,用计算机计算积分值通常都采用把区间逐次分半的方法进行。

复化梯形和复化simposon求积分

复化梯形和复化simposon求积分

课程设计报告课程名称数值逼近专业信息与计算科学班级姓名学号指导教师日期2011-06-27理学院应用数学系一、目的意义 (1) 进一步熟悉掌握复化梯形公式及其算法;(2) 进一步熟悉掌握复化Simpsom 公式及其算法;(3) 了解比较复化梯形公式和复化Simpsom 公式的代数精度。

二、内容要求积分计算问题:分别用复化梯形和复化Simpsom 求积公式计算积分dx e x x x 5.1402)(13-⎰-,并比较计算量(精度为10-8)。

三、问题解决的方法与算法方法:复化梯形和复化Simpsom 积分公式算法:输入:端点a 、b 以及要计算的积分公式f(x);输出:积分f(x)在指定区间上的近似值Step1:编写复化梯形和复化Simpson 积分公式Step2:输入所需的断点个数nSetp3:分别调用复化梯形和复化Simpson 积分公式数值积分及其应用 报告1Setp4:比较代数精度使其达到10-8Setp5:输出复化梯形和复化Simpson积分公式对应的值四、计算程序复化梯形积分公式:#include"stdio.h"#include"math.h"void main()#define n 4{float a,b,d,y;float h[n-2],k[n-2],s[n-1];a=0.0;b=4.0;printf("输出相邻节点间距:\n");d=(b-a)/n;printf("%f\n",d);printf("输出节点函数值:\n");for(int i=0;i<n+1;i++){h[i]=a+i*d;k[i]=13*(h[i]-h[i]*h[i])*exp(-1.5*h[i]);printf("k[%d]=%f\n",i,k[i]);}s[0]=k[0]+k[n];for(i=1;i<n;i++){s[i]=s[i-1]+2*k[i];}y=0.5*d*s[n-1];printf("输出积分值:\n");printf("%f\n",y);}复化抛物线积分公式:#include"stdio.h"#include"math.h"#define n 4void main(){float a,b,h;double x[100],k[100],y[100],g[100],z[100];printf("输入积分上下限:\n");scanf("%f %f",&a,&b);printf("输出积分步长:\n");h=(b-a)/4;printf("%f\n",h);for(int i=1;i<n;i++){x[i]=a+h*i;k[i]=x[i]-0.5*h;}k[n]=b-0.5*h;x[0]=a;x[n]=b;for(i=0;i<n+1;i++){y[i]=13*(x[i]-x[i]*x[i])*exp(-1.5*x[i]);} for(i=1;i<n+1;i++){g[i]=13*(k[i]-k[i]*k[i])*exp(-1.5*k[i]);} z[0]=y[0]+y[n];z[1]=0.0;z[2]=0.0;for(i=1;i<n;i++){z[1]=z[1]+y[i];}for(i=1;i<n+1;i++){z[2]=z[2]+g[i];}z[3]=h*(z[0]+2*z[1]+4*z[2])/6;printf("%f\n",z[3]);}五、计算结果与分析:复化梯形积分公式:复化抛物线积分公式:输出相邻节点间距:1.000000输出节点函数值:k[0]=0.000000k[1]=0.000000k[2]=-1.294464k[3]=-0.866502k[4]=-0.000026输出积分值:-6.482936Press any key to continue输入积分上下限:0 4输出积分步长:1.000000-1.608667Press any key to continue结果分析:通过该算法可以看出复化体形积分和simpson积分比梯形积分和抛物线积分具有更好的精度。

matlab实现复化梯形公式,复化simpson公式以及romberg积分

matlab实现复化梯形公式,复化simpson公式以及romberg积分

(一) 实验目的熟悉并掌握数值积分的方法,重要训练复化梯形公式,复化simps on 公式以及 romberg 积分。

问题三数值积分椭圆周长的计算。

考虑椭圆其周长,只要计算其第一象限的长度即可.用参数方程可以表示为X acost (0 t /2), y bs int计算公式为.a 2 sin 21 b 2 cos 2 tdt0 为计算方便,我们可以令a 1,即计算下面的积分0 Ja 2sin 2t~ t a 0 <si n 2t (b )2cos 2 tdt 可以归结为上面的形式)采用复化梯形公式,复化Simpson 公式以及Romberg 积分的方法 计算积分I (b )「J 1 (b 2 1)cos 2tdt给出通用程序,该通用程序可以计算任何一个函数在任意一个区 间在给定的精度下的数值积分。

程序输出为计算出的数值积分值以及 计算函数值的次数。

(三)算法介绍首先利用给出的各迭代公式,设计程序。

在matlab 对话框中输入要计算的函数,给出区间和精度。

问题描述b 2 1,为计算 sin 21 2 2 b cos tdt复化梯形的迭代公式为:J b f (x) dx 二h/2 f(已)+ 2X°二+ f (b);章L. J * ' 』,复化simps on迭代公式为:J;f (x)dx 二h/3p(a) + 辽負1(x2j) + 4斗g〔fgj - i) + f (b)Romberg迭代公式为:削」- 1 h - 1. j - 1n _ n(四)程序对于复化梯形公式和复化simpson公式,我们放在中(転记后的程序可用来把b看为变量时的算法实现) %复化梯形公式function y=jifenn(f,n,a,b) (说明:f表示任一函数,n精度,a, b为区间)fi=f(a)+f(b);h=(b-a)/n;d=1;%fun cti on f=jife n(n ,a,b,c)%syms t%y=sqrt(1+(c A2-1)*cos(t)A2);%ya=subs(y,t,a);%yb=subs(y,t,b);%fi=ya+yb;for i=1:n-1x=a+i*h;fi=fi+2*f(x);d=d+1;%yx=subs(y,t,x);%fi=fi+2*yx;endf4=h/2*fi,d%复化simposon公式f仁0;f2=0;dd=1;for i=1:n-1dd=dd+1;if rem(i,2)~=0;x1=a+i*h; f1=f1+f(x1);else rem(i,2)==0; x2=a+i*h; f2=f2+f(x2) ;endendf3=(h/3)*(f(a)+4*f1+2*f2+f(b)),dd对于romberg积分,建立文件。

3.1用复化梯形公式、复化Simpson公式、Romberg方法和复

3.1用复化梯形公式、复化Simpson公式、Romberg方法和复
(1) f ( x) 1 x6 3 x2 ,2 x 2, 16 10
(2) f (x) ex2 cos20x,0 x 2。
1
3.4 设计自适应的Simpson方法求积分0 x xdx( 0.4) 的
近似值,即对不同的子区间分别按精度标准确定各自适当的步长, 计算各子区间上的积分近似值,然后将各个近似值相加,要求近似 值的绝对误差限为0.5107 。

(2) 0 1 x2 dx 4
3.2 用外推方法计算下列积分值,并对计算结果进行比较。 如果所得结果不满意,对算法进行适当修改。
2x
x2ห้องสมุดไป่ตู้
(1)
1
( 1
x2

)dx 0.51324025, 2
(2) sin2 xdx
0
2
第三章 数值积分与数值微分
3.3 用样条函数方法和外推法求下列函数的一阶和二阶导数, 并结合函数的图形说明精度与步长h的关系。
第三章 数值积分与数值微分
数值试验题3
3.1 用复化梯形公式、复化Simpson公式、Romberg方法 和复化Gauss-Legendre公式计算下列积分的近似值,使绝对误 差限为 0.5107 ,并将计算结果与精确解作比较以及比较各种 算法的计算量。
21
(1)1
dx ln 2, x
11

复化梯形算法求解数值积分

复化梯形算法求解数值积分

复化梯形算法求解数值积分梯形公式是一个基本的数值积分方法,它假设被积函数在每个小区间上是线性的。

具体来说,对于一个积分区间[a,b],将其等分成n个小区间,每个小区间的宽度为h=(b-a)/n。

则积分的近似计算可以表示为:∫[a, b]f(x)dx ≈ h/2 * [f(a) + 2f(x1) + 2f(x2) + ... +2f(xn-1) + f(b)]其中,xi是每个小区间的边界点,即xi = a + i*h。

1.将积分区间[a,b]等分成n个小区间,计算小区间宽度h=(b-a)/n。

2.初始化积分值I为0。

3.通过梯形公式计算每个小区间的积分值,并将其累加到I中。

具体步骤如下:- 计算小区间边界点xi = a + i*h,i从1到n-1- 计算每个小区间的函数值f(xi)。

-将小区间首尾函数值f(a)和f(b)分别乘以h的一半(即h/2)加到I中。

- 将中间小区间的函数值f(xi)乘以h加到I中。

4.返回积分值I作为近似结果。

需要注意的是,复化梯形算法对于一些函数可能不太适用。

在积分区间内存在较大的函数值变化或函数不连续的情况下,该算法的精度可能会下降。

此时,可以考虑使用其他更复杂的数值积分方法,如复化 Simpson 算法或高斯-勒让德公式。

综上所述,复化梯形算法是一种简单有效的数值积分方法。

通过将积分区间分成多个小区间,并使用梯形公式进行近似计算,可以得到较高精度的积分结果。

然而,该方法的速度较慢,并在一些情况下可能不太适用。

因此,在实际应用中,需要根据具体问题的特点选择合适的数值积分方法。

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

利用复化梯形公式、
复化simpson 公式
计算积分
精品资料

仅供学习与交流,如有侵权请联系网站删除 谢谢
2
实验目的或要

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

2、比较计算误差与实际误差





















取n=2,3,…,10分别利用复化梯形公式、复化simpson 公式计算积分
1
2

0
Ixdx

,并与真值进行比较,并画出计算误差与实际误差之间的曲

线。

利用复化梯形公式的程序代码如下:
function f=fx(x)
f=x.^2; %首先建立被积函数,以便于计算真实值。

a=0; %积分下线
b=1; %积分上线
T=[]; %用来装不同n值所计算出的结果
for n=2:10;
h=(b-a)/n; %步长
x=zeros(1,n+1); %给节点定初值
for i=1:n+1
x(i)=a+(i-1)*h; %给节点赋值
end
y=x.^2; %给相应节点处的函数值赋值
t=0;
for i=1:n
t=t+h/2*(y(i)+y(i+1)); %利用复化梯形公式求值
end
T=[T,t]; %把不同n值所计算出的结果装入 T中
end
R=ones(1,9)*(-(b-a)/12*h.^ 2*2); %积分余项(计算误差)
true=quad(@fx,0,1); %积分的真实值
A=T-true; %计算的值与真实值之差(实际误差)
x=linspace(0,1,9);
plot(x,A,'r',x,R,'*') %将计算误差与实际误差用图像画出来

注:由于被积函数是x.^2,它的二阶倒数为2,所以积分余项为:(-(b-
a)/12*h.^ 2*2)
精品资料

仅供学习与交流,如有侵权请联系网站删除 谢谢
3



















利用复化simpson 公式的程序代码如下:
同样首先建立被积函数的函数文件:
function f=fx1(x)
f=x.^4;

a=0; %积分下线
b=1; %积分上线
T=[]; %用来装不同n值所计算出的结果
for n=2:10
h=(b-a)/(2*n); %步长
x=zeros(1,2*n+1); %给节点定初值
for i=1:2*n+1
x(i)=a+(i-1)*h; %给节点赋值
end
y=x.^4; %给相应节点处的函数值赋值
t=0;
for i=1:n
t=t+h/3*(y(2*i-1)+4*y(2*i)+y(2*i+1)); %利用复化simpson公式求值
end
T=[T,t] ; %把不同n值所计算出的结果装入 T中
end
R=ones(1,9)*(-(b-a)/180*((b-a)/2).^4*24) ; %积分余项(计算误差)
true=quad(@fx1,0,1); %积分的真实值
A=T-true; %计算的值与真实值之差(实际误差)
x=linspace(0,1,9);
plot(x,A,'r',x,R,'*')
精品资料

仅供学习与交流,如有侵权请联系网站删除 谢谢
4
法二:
a=0;
b=1;
T=[];
for n=2:10
h=(b-a)/(2*n);
x=zeros(1,2*n+1);
for i=1:2*n+1
x(i)=a+(i-1)*h;
end
y=x.^4;
t=y(1)+y(2*n+1);
for i=1:n
t=t+4*y(2*i)+2*y(2*i-1);
end
T=[T,h/3*t];
end
true=quad(@fx1,0,1);
A=T-true;
x=linspace(0,1,9);
plot(x,A)
此法与第一种一样,只是所用的表达式不同。

注:由于被积函数是x.^4,它的四阶倒数是24,所以它的积分余项是:
(-(b-a)/180*((b-a)/2).^4*24)
精品资料

仅供学习与交流,如有侵权请联系网站删除 谢谢
5










上图是利用复化梯形公式所画出的误差。其中:红线是计算误差,‘*’
号是实际误差。-0.0017是计算误差。0.0417、0.0185、0.0104、0.0067
0.0046、0.0034、0.0026、0.0021、0.0017是n值分别为2到10的实际
误差。

上图是利用复化simpson公式所画出的误差。其中:红线是计算误
差,‘*’号是实际误差。
注:纵轴是0.0001。
0.5208、0.1029、0.0326、0.0133、0.0064、0.0035、0.0020、0.0013、
0.0008是n值分别为2到10的实际误差,-0.0083是计算误差。





教师签名:

年 月 日

相关文档
最新文档