选用复合梯形公式复合Simpson公式计算

合集下载

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

复合梯形公式与复合辛普森公式对比
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

复合梯形公式、复合⾟普森公式matlab 1. ⽤1阶⾄4阶Newton-Cotes公式计算积分程序:function I = NewtonCotes(f,a,b,type)%syms t;t=findsym(sym(f));I=0;switch typecase 1,I=((b-a)/2)*(subs(sym(f),t,a)+subs(sym(f),t,b));case 2,I=((b-a)/6)*(subs(sym(f),t,a)+4*subs(sym(f),t,(a+b)/2)+...subs(sym(f),t,b));case 3,I=((b-a)/8)*(subs(sym(f),t,a)+3*subs(sym(f),t,(2*a+b)/3)+...3*subs(sym(f),t,(a+2*b)/3)+subs(sym(f),t,b));case 4,I=((b-a)/90)*(7*subs(sym(f),t,a)+...32*subs(sym(f),t,(3*a+b)/4)+...12*subs(sym(f),t,(a+b)/2)+...32*subs(sym(f),t,(a+3*b)/4)+7*subs(sym(f),t,b));case 5,I=((b-a)/288)*(19*subs(sym(f),t,a)+...75*subs(sym(f),t,(4*a+b)/5)+...50*subs(sym(f),t,(3*a+2*b)/5)+...50*subs(sym(f),t,(2*a+3*b)/5)+...75*subs(sym(f),t,(a+4*b)/5)+19*subs(sym(f),t,b));case 6,I=((b-a)/840)*(41*subs(sym(f),t,a)+...216*subs(sym(f),t,(5*a+b)/6)+...27*subs(sym(f),t,(2*a+b)/3)+...272*subs(sym(f),t,(a+b)/2)+...27*subs(sym(f),t,(a+2*b)/3)+...216*subs(sym(f),t,(a+5*b)/6)+...41*subs(sym(f),t,b));case 7,I=((b-a)/17280)*(751*subs(sym(f),t,a)+...3577*subs(sym(f),t,(6*a+b)/7)+...1323*subs(sym(f),t,(5*a+2*b)/7)+...2989*subs(sym(f),t,(3*a+4*b)/7)+...1323*subs(sym(f),t,(2*a+5*b)/7)+...3577*subs(sym(f),t,(a+6*b)/7)+751*subs(sym(f),t,b));endsyms xf=exp(-x).*sin(x);a=0;b=2*pi;I = NewtonCotes(f,a,b,1)N=1:I =N=2:I =N=3:I =(pi*((3*3^(1/2)*exp(-(2*pi)/3))/2 - (3*3^(1/2)*exp(-(4*pi)/3))/2))/4N=4:I =(pi*(32*exp(-pi/2) - 32*exp(-(3*pi)/2)))/452. 已知,因此可以通过数值积分计算的近似值。

数值分析复化梯形公式,复化Simpson公式MATLAB程序

数值分析复化梯形公式,复化Simpson公式MATLAB程序

分别用复化梯形公式、复化Simpson 公式计算定积分dx e x ⎰+201,取n=2,4,8,16分别验证结果(精确值I=4.006994)。

复化梯形公式求定积分:
function I=tquad(x,y)
%复化梯形求积公式,其中,
%x 为向量,被积函数自变量的等距结点; %y 为向量,被积函数在结点处的函数值; n=length(x);
m=length(y);
%积分自变量的结点数应与它的函数值的个数相同 h=(x(n)-x(1))/(n-1);
a=[1 2*ones(1,n-2) 1];
I=h/2*sum(a.*y);
复化Simpson 公式求定积分:
function I=squad(x,y)
%复化Simpson 求积公式,其中,
%x 为向量,被积函数自变量的等距结点; %y 为向量,被积函数在结点处的函数值; n=length(x);
m=length(y);
%积分自变量的结点数应与它的函数值的个数相同 if rem(n-1,2)~=0
I=tquad(x,y);
return;
end
N=(n-1)/2;
h=(x(n)-x(1))/N;
a=zeros(1,n);
for k=1:N
a(2*k-1)=a(2*k-1)+1;
a(2*k)=a(2*k)+4;
a(2*k+1)=a(2*k+1)+1;
end
I=h/6*sum(a.*y);。

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

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

复合梯形公式和复合辛普森公式例题复合梯形公式和复合辛普森公式例题数值计算是现代科学技术中重要的研究领域之一,而数值积分是数值计算中的一个重要分支。

数值积分是指在一定区间上用数值方法来逼近求解定积分的过程。

综合考虑精度和效率,梯形公式和辛普森公式是数值积分中比较常用的方法,而复合梯形公式和复合辛普森公式则是对前两种方法的改进和完善。

一、复合梯形公式(一)基本原理梯形公式是数值积分中运用最广泛的一种方法,其基本思想是将被积函数在区间[a,b]上的曲线用若干条梯形逼近,然后计算梯形的面积之和,得到函数曲线下的面积。

若将区间[a,b]分为n个小区间,梯形公式还可以推广为复合梯形公式。

复合梯形公式的基本原理是将整个区间[a,b]等分为n 个小区间,每个小区间的长度为h=(b-a)/n,然后对于每个小区间求出梯形的面积,并将所有梯形面积加起来得到函数曲线下的面积,并作为积分的近似值。

具体地说,复合梯形公式的表达式为:$$\int_a^b f(x)dx \approx \frac{h}{2}[f(a)+2\sum_{i=1}^{n-1} f(x_{i})+f(b)]$$其中,$x_1=a+h,x_2=a+2h,...,x_{i+1}=x_i+h,...,x_{n}=b-h$,h是小区间长度。

(二)例题现在考虑如下的积分:$$I=\int_0^1 e^{x^2} dx$$将整个区间[0,1]等分为4个小区间,得到$h=0.25$,对于每个小区间,可以分别求出梯形的面积,得到:$$\frac{h}{2}[f(0)+2f(0.25)+2f(0.5)+2f(0.75)+f(1)]$$代入函数$f(x)=e^{x^2}$,得到近似积分值为$1.4627$。

使用Matlab代码进行计算,得到具体结果为:>> f=@(x) exp(x.^2); h=0.25; x=0:h:1;I=h/2*(f(x(1))+2*sum(f(x(2:end-1)))+f(x(end))) sprintf('%.5f',I)ans =1.46270可以发现,与精确值$1.46265$相比,误差很小,说明复合梯形公式是一种很有效的近似积分方法。

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

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

复合梯形公式和复合辛普森公式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:将所有小区间上的定积分近似值相加,得到最终的近似值。

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

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

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

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

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

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

选用复合梯形公式-复合Simpson公式-计算

选用复合梯形公式-复合Simpson公式-计算

数值分析实验 三班级:10信计2班 学号:59 姓名:王志桃 分数一·问题提出:选用复合梯形公式,复合Simpson 公式,计算(1) I =dx x ⎰-4102sin 4 ()5343916.1≈I(2) I = dx x x⎰1sin ()9460831.0,1)0(≈=I f(3) I = dx xe x⎰+1024(4) I = ()dx x x ⎰++10211ln二·实验要求:1.编制数值积分算法的程序2.分别用两种算法计算同一个积分,并比较计算结果3.分别取不同步长()/ a b h -=n ,试比较计算结果(如n = 10, 20等)4.给定精度要求ε,试用变步长算法,确定最佳步长三·实验流程图:复化梯形公式:输入 端点 a , b 正整数 n直接计算TN=h/2*[f(a)+2∑f(x k )+f(b)] k=1,2…,n-1输出 定积分近似值TN复化Simpson 公式输入 端点 a , b 正整数 n输出 定积分近似值SN(1) 置h=(b-a)/(2n)(2) F0=f(a)+f(b) , F1=0 , F2=0(3) 对j=1,2,…,2n-1循环执行步4到步5(4) 置x=a+jh(5) 如果j 是偶数,则F2=F2+f(x),否则F1=F1+f(x)(6) 置SN=h(F0+4F1+2F2)/3(7) 输出SN,停机四·源程序:#include<iostream>#include<math.h>using namespace std;#define n 20//此为步长double f1(double x){double y;y=sqrt(4-sin(x)*sin(x));return y;}double f2(double x){if(x==0)return 1;double y;y=sin(x)/x;return y;}double f3(double x){double y;y=exp(x)/(4+x*x);return y;}double f4(double x){double y;y=log(1+x)/(1+x*x);return y;}int main(){int j;double e=0.000001,h,F0,F1,F2,a,b,x,S;cout<<"利用复化Simpson公式求积分"<<endl;//1a=0;b=0.25*3.141592;h=(b-a)/(2*n);F0=f1(a)+f1(b);F1=F2=0;for(j=1;j<2*n;j++){x=a+j*h;if(j%2==0)F2=F2+f1(x);elseF1=F1+f1(x);}S=((F0+F1*4+F2*2)*h)/3;cout<<"第一个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//2a=0;b=1;h=(b-a)/(2*n);F0=f2(a)+f2(b);F1=F2=0;for(j=1;j<2*n;j++){x=a+j*h;if(j%2==0)F2=F2+f2(x);elseF1=F1+f2(x);}S=(F0+F1*4+F2*2)*h/3;cout<<"第二个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//3a=0;b=1;h=(b-a)/(2*n);F0=f3(a)+f3(b);F1=F2=0;for(j=1;j<2*n;j++){x=a+j*h;if(j%2==0)F2=F2+f3(x);elseF1=F1+f3(x);}S=(F0+F1*4+F2*2)*h/3;cout<<"第三个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//4a=0;b=1;h=(b-a)/(2*n);F0=f4(a)+f4(b);F1=F2=0;for(j=1;j<2*n;j++){x=a+j*h;if(j%2==0)F2=F2+f4(x);elseF1=F1+f4(x);}S=(F0+F1*4+F2*2)*h/3;cout<<"第四个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl<<endl;cout<<"利用复化梯形公式求积分"<<endl;//1a=0;b=0.25*3.141592;h=(b-a)/n;F0=f1(a)+f1(b);F1=0;for(j=1;j<n;j++){x=a+j*h;F1=F1+f1(x);}S=((F0+F1*2)*h)/2;cout<<"第一个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//2a=0;b=1;h=(b-a)/n;F0=f2(a)+f2(b);F1=0;for(j=1;j<n;j++){x=a+j*h;F1=F1+f2(x);}S=((F0+F1*2)*h)/2;cout<<"第二个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//3a=0;b=1;h=(b-a)/n;F0=f3(a)+f3(b);F1=0;for(j=1;j<n;j++){x=a+j*h;F1=F1+f3(x);}S=((F0+F1*2)*h)/2;cout<<"第三个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//4a=0;b=1;h=(b-a)/n;F0=f4(a)+f4(b);F1=0;for(j=1;j<n;j++){x=a+j*h;F1=F1+f4(x);}S=((F0+F1*2)*h)/2;cout<<"第四个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;return 0;}五.实验结果六.实验心得:通过本次实验,我掌握了求数值积分的各种方法。

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

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

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 时的情况。

此中梯形求积公式可表示为其公式左端是以 [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。

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

数值分析实验 三班级:10信计2班 学号:59 姓名:王志桃 分数一·问题提出:选用复合梯形公式,复合Simpson 公式,计算(1) I =dx x ⎰-4102sin 4 ()5343916.1≈I(2) I = dx x x⎰1sin ()9460831.0,1)0(≈=I f(3) I = dx xe x⎰+1024(4) I = ()dx x x ⎰++10211ln二·实验要求:1.编制数值积分算法的程序2.分别用两种算法计算同一个积分,并比较计算结果3.分别取不同步长()/ a b h -=n ,试比较计算结果(如n = 10, 20等)4.给定精度要求ε,试用变步长算法,确定最佳步长三·实验流程图:复化梯形公式:输入 端点 a , b 正整数 n直接计算TN=h/2*[f(a)+2∑f(x k )+f(b)] k=1,2…,n-1输出 定积分近似值TN复化Simpson 公式输入 端点 a , b 正整数 n输出 定积分近似值SN(1) 置h=(b-a)/(2n)(2) F0=f(a)+f(b) , F1=0 , F2=0(3) 对j=1,2,…,2n-1循环执行步4到步5(4) 置x=a+jh(5) 如果j 是偶数,则F2=F2+f(x),否则F1=F1+f(x)(6) 置SN=h(F0+4F1+2F2)/3(7) 输出SN,停机四·源程序:#include<iostream>#include<math.h>using namespace std;#define n 20//此为步长double f1(double x){double y;y=sqrt(4-sin(x)*sin(x));return y;}double f2(double x){if(x==0)return 1;double y;y=sin(x)/x;return y;}double f3(double x){double y;y=exp(x)/(4+x*x);return y;}double f4(double x){double y;y=log(1+x)/(1+x*x);return y;}int main(){int j;double e=0.000001,h,F0,F1,F2,a,b,x,S;cout<<"利用复化Simpson公式求积分"<<endl;//1a=0;b=0.25*3.141592;h=(b-a)/(2*n);F0=f1(a)+f1(b);F1=F2=0;for(j=1;j<2*n;j++){x=a+j*h;if(j%2==0)F2=F2+f1(x);elseF1=F1+f1(x);}S=((F0+F1*4+F2*2)*h)/3;cout<<"第一个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//2a=0;b=1;h=(b-a)/(2*n);F0=f2(a)+f2(b);F1=F2=0;for(j=1;j<2*n;j++){x=a+j*h;if(j%2==0)F2=F2+f2(x);elseF1=F1+f2(x);}S=(F0+F1*4+F2*2)*h/3;cout<<"第二个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//3a=0;b=1;h=(b-a)/(2*n);F0=f3(a)+f3(b);F1=F2=0;for(j=1;j<2*n;j++){x=a+j*h;if(j%2==0)F2=F2+f3(x);elseF1=F1+f3(x);}S=(F0+F1*4+F2*2)*h/3;cout<<"第三个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//4a=0;b=1;h=(b-a)/(2*n);F0=f4(a)+f4(b);F1=F2=0;for(j=1;j<2*n;j++){x=a+j*h;if(j%2==0)F2=F2+f4(x);elseF1=F1+f4(x);}S=(F0+F1*4+F2*2)*h/3;cout<<"第四个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl<<endl;cout<<"利用复化梯形公式求积分"<<endl;//1a=0;b=0.25*3.141592;h=(b-a)/n;F0=f1(a)+f1(b);F1=0;for(j=1;j<n;j++){x=a+j*h;F1=F1+f1(x);}S=((F0+F1*2)*h)/2;cout<<"第一个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//2a=0;b=1;h=(b-a)/n;F0=f2(a)+f2(b);F1=0;for(j=1;j<n;j++){x=a+j*h;F1=F1+f2(x);}S=((F0+F1*2)*h)/2;cout<<"第二个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//3a=0;b=1;h=(b-a)/n;F0=f3(a)+f3(b);F1=0;for(j=1;j<n;j++){x=a+j*h;F1=F1+f3(x);}S=((F0+F1*2)*h)/2;cout<<"第三个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//4a=0;b=1;h=(b-a)/n;F0=f4(a)+f4(b);F1=0;for(j=1;j<n;j++){x=a+j*h;F1=F1+f4(x);}S=((F0+F1*2)*h)/2;cout<<"第四个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;return 0;}五.实验结果六.实验心得:通过本次实验,我掌握了求数值积分的各种方法。

了解了数值积分精度与步长的关系,体验了各种数值积分方法的精度和计算量,也让我了解了三种积分公式的精度及其区别。

虽然复化梯形公式,运算简单,但是其结果不够精确。

复化Simpson 公式,比较复杂一点,但是其效果却比复化梯形公式的结果好的多。

Romberg 公式给我们求最佳步长的方法,通过其可以算出十分精确的值。

相关文档
最新文档