复合梯形积分和复合Simpson积分计算数值积分
- 格式:doc
- 大小:109.00 KB
- 文档页数:6
几种常用数值积分方法的比较数值积分是一种计算数学中定积分的方法。
常用的数值积分方法有梯形法、辛普森法和复合梯形法。
这些方法在实际计算中具有不同的优点和适用范围。
梯形法是最简单的数值积分方法之一、它基于求取定积分的梯形面积近似值。
梯形法将积分区间等分为若干个小区间,然后计算每个小区间的梯形面积,并将这些梯形面积相加得到最终的近似值。
梯形法的优点是简单易懂,计算速度较快。
然而,它的精度相对较低,特别是在非平滑函数的情况下。
辛普森法是一种更精确的数值积分方法,它基于使用二次多项式逼近函数曲线。
辛普森法将积分区间等分为若干个小区间,然后对每个小区间内的函数曲线进行三次插值,计算出每个小区间的积分值,并将这些积分值相加得到最终的近似值。
辛普森法的优点是比梯形法更精确,对于平滑函数的近似效果较好。
然而,在处理非平滑函数时,辛普森法的效果可能不如预期。
复合梯形法是对梯形法的改进和扩展。
它将积分区间分为若干个小区间,并在每个小区间内使用梯形法进行积分计算。
然后将这些小区间的积分值相加得到最终的近似值。
复合梯形法的优点是可以通过增加小区间的数量来提高精度。
它在实际计算中被广泛使用,特别是对于非平滑函数的积分计算。
在比较这些常用的数值积分方法时,有几个关键的因素需要考虑。
首先是计算精度,即方法的近似值与实际值的误差大小。
其次是计算复杂度,即使用方法计算积分所需的计算量和时间。
另外,还要考虑方法的适用范围,如对于平滑函数和非平滑函数的效果。
此外,与其他数值方法相比,这些方法的优点和局限性也需要考虑。
综合来看,梯形法是最简单且计算速度较快的数值积分方法,但精度相对较低。
辛普森法在平滑函数的近似计算中效果较好,但对非平滑函数的处理可能不理想。
复合梯形法是一种在实际计算中广泛使用的方法,可以通过增加小区间的数量来提高精度。
根据具体的计算要求和函数特性,可以选择适合的数值积分方法。
同时,还可以根据实际需要结合其他数值方法进行计算,以提高精度和效率。
佛山科学技术学院实验报告课程名称_______________ 数值分析________________________实验项目_______________ 数值积分____________________专业班级机械工程姓名余红杰学号2111505010 指导教师陈剑成绩日期月日一、实验目的b1、理解如何在计算机上使用数值方法计算定积分 a f ""X的近似值;2、学会复合梯形、复合Simpson和龙贝格求积分公式的编程与应用。
3、探索二重积分.11 f (x, y)dxdy在矩形区域D = {( x, y) | a _ x _ b, c _ y _ d}的数值D积分方法。
二、实验要求(1)按照题目要求完成实验内容;(2)写出相应的Matlab程序;(3)给出实验结果(可以用表格展示实验结果);(4)分析和讨论实验结果并提出可能的优化实验。
(5)写出实验报告。
三、实验步骤1、用不同数值方法计算积xln xdx =-- 0 9(1)取不同的步长h,分别用复合梯形及复合辛普森求积计算积分,给出误差中关于h的函数,并与积分精确值比较两公式的精度。
(2)用龙贝格求积计算完成问题(1 )。
2、给出一种求矩形区域上二重积分的复化求积方法,然后计算二重积分..e"y dxdy,其中积分区域D二{0乞x岂1,0岂y乞1}。
1.%lnt_t.m复化梯形:function F = Int_t(x1,x2,n)%复化梯形求积公式% x1,x2为积分起点和中点%分为n个区间,没选用步长可以防止区间数为非整数。
%样点矩阵及其函数值:x = lin space(x1,x2 ,n+1);y = f(x);m = len gth(x);%本题中用Matlab计算端点位置函数值为NaN,故化为零: y(1) = 0;y(m) = 0;%算岀区间长度,步长h:h = (x2 -x1)/n;a = [1 2*o nes(1,m-2) 1];%计算估计的积分值:F = h/2*sum(a.*y);%f.mfun cti on y = f(x)y = sqrt(x).*log(x);%run 11.mclc,clear;%分为10个区间,步长0.1的积分值:F = In t_t(0,1,10);F10 = F%分为100个区间F = In t_t(0,1,100);F100 = F%误差计算W10 = abs((-4/9)-F10);W100 = abs((-4/9)-F100);W = [W10 W100]%复化辛普森:%l nt_s.mfun cti on F = In t_s(x1,x2 ,n)%复化梯形求积公式% x1,x2区间,分为n个区间。
数值计算方法上机题目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。
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.问题描述微积分方法求积有很大的局限性,当碰到被积函数很复杂时,找不到相应的原函数。
积分值在几何上可解释为由 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)龙贝格求积公式也称为逐次分半加速法。
它是在梯形公式、辛普森公式和柯特斯公式之间的关系的基础上,构造出一种加速计算积分的方法。
作为一种外推算法, 它在不增加计算量的前提下提高了误差的精度.在等距基点的情况下,用计算机计算积分值通常都采用把区间逐次分半的方法进行。
复合梯形公式、复合⾟普森公式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. 已知,因此可以通过数值积分计算的近似值。
数值计算考题五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]上的曲线用若干条梯形逼近,然后计算梯形的面积之和,得到函数曲线下的面积。
若将区间[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$相比,误差很小,说明复合梯形公式是一种很有效的近似积分方法。
数值分析第五次程序作业PB09001057 孙琪【问题】分别编写用复化Simpson 积分公式和复化梯形积分公式计算积分的通用程序;用如上程序计算积分: I (f )=∫sin (x )dx 40取节点x i , i =0,…,N,N 为2k ,k =0,1,…,12,并分析误差;简单分析你得到的数据。
【复化Simpson 积分公式】Simpson 法则:∫f (x )dx ≈b −a 6[f (a )+4f (a +b 2)+f (b )]b a 使用偶数个子区间上的复合Simpson 法则:设n 是偶数,x i =a +ih , h =b−a n ,(0≤i ≤n) 则有∫f (x )dx =∫f (x )dx +∫f (x )dx +⋯+∫f (x )dx =∑∫f (x )dx x 2i x 2i−2n 2i=1x n x n−2x 4x 2x 2x 0b a 将Simpson 法则应用于每一个区间,得到复合Simpson 法则:∫f (x )dx ≈h 3b a [f (x 0)+2∑f (x 2i−2)n 2i=2+4∑f (x 2i−1)n 2i=1+f (x n )] 公式的误差项为:−1180(b −a )h 4f (4)(δ) 其中δ∈(a,b)【复化梯形积分公式】梯形法则:对两个节点相应的积分法则称为梯形法则:∫f (x )dx ≈b −a 2b a [f (a )+f (b )] 如果划分区间[a,b]为:a =x 0<x 1<⋯<x n =b那么在每个区间上可应用梯形法则,此时节点未必是等距的,由此得到复合梯形法则:∫f (x )dx =∑∫f (x )dx x i x i−1n i=1b a ≈12∑(x i −x i−1)[f (x i−1)+f (x i )]ni=1 对等间距h=(b-a)/n 及节点x i =a +ih ,复合梯形法则具有形式:∫f (x )dx ≈h 2[f (a )+2∑f (a +ih )n−1i=1+f (b )]b a 误差项为:−112(b −a )h 2f ′′(δ)【算法分析】复合Simpson 法则和复合梯形法则的算法上述描述中都已介绍了,在此不多做叙述。
复合梯形公式和复合辛普森公式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:将所有小区间上的定积分近似值相加,得到最终的近似值。
复合辛普森公式的误差主要取决于小区间的数量和函数在每个小区间上的变化情况。
与复合梯形公式相比,复合辛普森公式的精度更高,但计算复杂度也更高。
综上所述,复合梯形公式和复合辛普森公式是数值积分中常用的近似计算方法。
它们通过将积分区间划分成小区间,并在每个小区间上应用相应的公式来逼近定积分的值。
这两种方法都可以通过增加小区间的数量来提高近似的精度,但相应地也会增加计算的复杂度。
根据实际情况,我们可以选择合适的方法来计算需要求解的定积分。
数值积分法数值积分法是数学中一种重要的积分技术,它用于解决一类复杂的积分方程。
简而言之,数值积分法使用数学技巧计算复杂的定积分。
它利用数值计算技术,如复合梯形法、改进梯形法、改进Simpsons 法、Romberg积分法等,将一个复杂的函数转换成一系列简单的函数,以便计算它们之间的积分值。
数值积分法包括高斯-勒让德复合梯形法、勒贝格复合梯形法、改进梯形法、改进Simpson法、Romberg积分法等。
由于各种方法的不同,它们在不同条件下的性能也不同。
为了得到最佳的数值积分法,需要仔细分析办法的优劣、特点,以便根据不同的积分问题,选择最合适的方法来求解。
首先,复合梯形法包括高斯-勒让德法和勒贝格法。
这两种方法的共同点是都使用普通梯形法来代替复杂的函数,把它分段细分成很多小段,使其变得更容易计算。
高斯-勒让德法在每个子区间中都使用两个点来定义一个梯形,而勒贝格法在每个子区间中都使用三个点,一般来说,使用三个点比两个点计算精度更高。
其次是改进梯形法和改进Simpson法。
改进梯形法是在复合梯形法的基础上加以改进,它试图使复杂函数在小区间内更准确。
它对每个子区间进行多次拆分,以一定精度来拟合函数。
改进Simpson法也是根据复合梯形法改进而来,它把一个较大的区间拆分成以三点为基础的梯形,使拟合准确性更高。
最后是Romberg积分法。
它是一种改进的复合梯形法,它使用了一种类似复合梯形法的方法,但用一种特殊的矩阵来求解梯形的积分。
它可以把拆分的子区间数值用矩阵的乘方来表示,从而实现自动化求解,用较少的计算量就能准确求解函数积分。
总结而言,数值积分法是一类复杂的积分技术,它们具有计算准确、复杂度低、计算量少等优点,是解决复杂积分问题的不可缺少的工具。
因此,正确选择数值积分法,对于求解复杂积分方程具有重要的意义,值得大力研究和推广。
复合梯形公式和复合辛普森公式误差在我们学习数学的过程中,常常会遇到各种各样的公式,而复合梯形公式和复合辛普森公式就是其中比较重要的两个。
这两个公式在数值计算中发挥着重要的作用,可别小瞧它们,这里面的学问可大着呢!先来说说复合梯形公式。
它就像是一个勤劳的小工人,虽然简单直接,但也有自己的小脾气。
复合梯形公式的基本思想就是把区间分成很多小段,然后在每个小段上用梯形的面积来近似函数的积分值。
这就好像我们要计算一段山坡的面积,把山坡分成一段一段的,每一段都看成一个梯形,然后把这些梯形的面积加起来,就得到了山坡的近似面积。
我记得有一次在课堂上,老师给我们出了一道用复合梯形公式计算积分的题目。
那道题可把大家难住了,大家都在草稿纸上不停地写写画画。
我也不例外,一开始我总是算错,不是区间分错了,就是梯形面积计算有误。
但是我没有放弃,一遍又一遍地检查,终于发现了问题所在。
原来我在计算梯形面积的时候,忘记乘以二分之一了。
经过这次小小的挫折,我对复合梯形公式的理解更加深刻了,也明白了做数学题一定要细心,不能马虎。
再聊聊复合辛普森公式。
它可比复合梯形公式要“聪明”一些,精度也更高。
复合辛普森公式就像是一个精明的小管家,能够更准确地估计函数的积分值。
它把区间分成偶数段,然后用抛物线来近似函数,计算出的结果更接近真实值。
有一次我在做一个数学实验,要用复合辛普森公式计算一个复杂函数的积分。
我按照公式一步一步地计算,心里还挺紧张,生怕出错。
当我算出结果,和标准答案一对比,发现竟然相差无几,那一刻我心里别提多高兴了,就像是在黑暗中找到了光明一样。
那么,复合梯形公式和复合辛普森公式到底有什么误差呢?其实啊,复合梯形公式的误差与区间长度的平方成正比,而复合辛普森公式的误差与区间长度的四次方成正比。
这就意味着,在相同的区间长度下,复合辛普森公式的误差要比复合梯形公式小得多。
比如说,我们要计算一个函数在[0, 1]区间上的积分,如果用复合梯形公式,把区间分成 10 段,可能会有比较大的误差;但如果用复合辛普森公式,同样分成 10 段,误差就会小很多。
实验五一、实验名称复合梯形积分和复合Simpson 积分计算数值积分二、实验目的与要求:实验目的: 掌握复合梯形积分和复合Simpson 积分算法。
实验要求:1.给出复合梯形积分和复合Simpson 积分算法思路,2.用C 语言实现算法,运行环境为Microsoft VisualC++。
三、算法思路:我们把整个积分区间[a,b]分成n 个子区间[xi,xi+1],i=0,1,2,…,n,其中x0=a ,xn+1=b 。
这样求定积分问题就分解为求和问题:⎰∑⎰=-==b a n i x x i i dx x f dx x f S 11)()(当这n+1个结点为等距结点时,即n a b h ih a x i /)(-=+=,其中,i=0,1,2,…,n ,复化梯形公式的形式是∑=-+=ni i i n x f x f h S 11)]()([2 算法:input n0.0←Sfor i=1 to n do ))()((21i i x f x f h S S ++←- end dooutput S如果n 还是一个偶数,则复合Simpson 积分的形式是∑=--++=2/121222)]()(4)([3n i i i i n x f x f x f h S 算法:input n0.0←Sfor i=1 to n/2 do ))()(4)((321222i i i x f x f x f h S S +++←-- end dooutput S四、实验题目:五、问题的解:编写程序(程序见后面附录),输出结果如下:为了便于看清数值积分结果与原函数积分实际结果的差异。
我在运行程序时故意计算了一下原函数积分的实际结果。
分析并比较得到的数据可以看出,当k 越来越大时,数值积分的结果越来越靠近原函数积分实际结果,并且复合Simpson 积分的结果更迅速地靠近原函数积分实际结果,这是有原因的,从两种方法的误差项即可看出。
实验题目:复合梯形及复合辛普森求积公式学生姓名:专业:学号:完成日期:实验题目: 数值分析之复合梯形及复合辛普森求积公式 学生姓名: 学号: 完成日期: 2011.11.20 1 实验目的利用不同数值方法计算积分⎰-=194ln xdx x 。
2 实验步骤2.1 算法原理复合梯形原理:将区间],[b a 划分为n 等分,分点,,...,1,0,,n k n ab h kh a x k =-=+=在每个子区间[]()1,...,1,0,1-=+n k x x k k 上采用梯形公式[])()(2)(b f a f ab dx x f ba+-≈⎰,则得 []⎰∑⎰∑-=-=++++===ban k x x n k n k k k kf R x f x f h dx x f dx x f I 1111)()()(2)()(记])()(2)([2)]()([211101∑∑-=-=+++=+=n k k n k k k n b f x f a f hx f x f h T ,称为复合梯形公式,其余项可得),(,)(''12)(1103+-=∈⎥⎦⎤⎢⎣⎡-=-=∑k k k n k k n n x x f h T I f R ηη由于,且],[)(2b a C x f ∈,)(''max )(''1)(''min 11010∑-=-≤≤-≤≤≤≤n k k n k k k n k f f n f ηηη所以),(b a ∈∃η使∑-==1)(''1)(''n k k f n f ηη于是复合梯形公式的余项为).(''12)(2ηf h a b f R n --= 可以看出误差是2h 阶,且当dx x f T b a C x f bzn n ⎰=∈∞→)(lim ],,[)(2则即复合梯形公式是收敛的。
实验五
一、实验名称
复合梯形积分和复合Simpson 积分计算数值积分
二、实验目的与要求:
实验目的: 掌握复合梯形积分和复合Simpson 积分算法。
实验要求:1.给出复合梯形积分和复合Simpson 积分算法思路,
2.用C 语言实现算法,运行环境为Microsoft Visual
C++。
三、算法思路:
我们把整个积分区间[a,b]分成n 个子区间[xi,xi+1],i=0,1,2,…,n,其中x0=a ,xn+1=b 。
这样求定积分问题就分解为求和问题:
⎰∑⎰=-==b a n i x x i i dx x f dx x f S 11)()(
当这n+1个结点为等距结点时,即n a b h ih a x i /)(-=+=,其中,i=0,1,2,…,n ,复化梯形公式的形式是
∑=-+=n
i i i n x f x f h S 1
1)]()([2 算法:
input n
0.0←S
for i=1 to n do ))()((2
1i i x f x f h S S ++
←- end do
output S
如果n 还是一个偶数,则复合Simpson 积分的形式是
∑=--++=2
/1
21222)]()(4)([3n i i i i n x f x f x f h S 算法:
input n
0.0←S
for i=1 to n/2 do ))()(4)((3
21222i i i x f x f x f h S S +++
←-- end do
output S
四、实验题目:
五、问题的解:
编写程序(程序见后面附录),输出结果如下:
为了便于看清数值积分结果与原函数积分实际结果的差异。
我在运行程序时故意计算了一下原函数积分的实际结果。
分析并比较得到的数据可以看出,当k 越来越大时,数值积分的结果越来越靠近原函数积分实际结果,并且复合Simpson 积分的结果更迅速地靠近原函数积分实际结果,这是有原因的,从两种方法的误差项即可看出。
复合梯形积分的误差项是)()(121''2ξf h a b --
,Simpson 积分的误差项是)()(1801)4(4ξf h a b --,),(b a ∈ξ,当h 趋于零时,显然Simpson 积分的误差项更快地趋于零,实验结果复符合这一结论。
六、附录:
实验编程,运行环境为Microsoft Visual C++
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
double f(double x) //定义函数f(x)//
{
double y;
y=sin(x);
return(y);
}
double S1(int N,double a,double b) //建立复合梯形积分// {
double s,h;
int i;
h=(b-a)/N; s=0.0;
for(i=1;i<=N;i++)
{
s=s+h*(f(a+(i-1)*h)+f(a+i*h))/2.0;
}
return(s);
}
double S2(int N,double a,double b) //建立符合Simpson积分//
{
double s,h;
int i;
h=(b-a)/N; s=0.0;
for(i=1;i<=N/2;i++)
{
s=s+h*(f(a+(2*i-2)*h)+4*f(a+(2*i-1)*h)+f(a+2*i*h))/3.0;
}
return(s);
}
void main() //main函数进行最终运算并输出结果//
{
int k;
printf("s1代表复合梯形积分结果,s2代表Simpson积分结果\n");
for(k=0;k<=12;k++)
{
printf("k=%d时,s1=%.12f , s2=%.12f \n",
k,S1(pow(2,k),0.0,4.0),S2(pow(2,k),0.0,4.0));
}
printf("积分精确结果是:%.12f\n",1-cos(4.0)); }。