搜档网
当前位置:搜档网 › 复化梯形公式

复化梯形公式

复化梯形公式
复化梯形公式

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

实验 目 的 或 要 求1、利用复化梯形公式、复化simpson 公式计算积分 2、比较计算误差与实际误差 实 验 原 理 ( 算 法 流 程 图 或 者 含 注 释 的 源 代 码 ) 取n=2,3,…,10分别利用复化梯形公式、复化simpson 公式计算积分1 20I x dx =?,并与真值进行比较,并画出计算误差与实际误差之间的曲线。 利用复化梯形公式的程序代码如下: 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)

实 验 原 理 ( 算 法 流 程 图 或 者 含 注 释 的 源 代 码)利用复化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,'*')

复化梯形公式及复化辛普森公式的精度比较

实验四、复化梯形公式和复化Simpson公式的精度比较 (2学时) 一、实验目的与要求 1、熟悉复化Simpson公式和复化梯形公式的构造原理; 2、熟悉并掌握二者的余项表达式; 3、分别求出准确值,复化梯形的近似值,复化Simpson的近似值,并比较后两 者的精度; 4、从余项表达式,即误差曲线,来观察二者的精度,看哪个更接近于准确值。 二、实验内容: 对于函数 sin () x f x x =,试利用下表计算积分1 sin x I dx x =?。 表格如下: 注:分别利用复化梯形公式和复化Simpson公式计算,比较哪个精度更好。其中:积分的准确值0.9460831 I=。 三、实验步骤

1、熟悉理论知识,并编写相应的程序; 2、上机操作,从误差图形上观察误差,并与准确值相比较,看哪个精度更好; 3、得出结论,并整理实验报告。 四、实验注意事项 1、复化梯形公式,程序主体部分: for n=2:10 T(n)=0.5*T(n-1) for i=1:2^(n-2) T(n)=T(n)+(sin((2*i-1)/2^(n-1))/((2*i-1)/2^(n-1)))/2^(n-1); end end 2、复化Simpson公式,程序主体部分: for i=1:10 n=2.^i x=0:1/n:1 f=sin(x)./x f(1)=1 s=0 for j=1:n/2

s=s+f(2*j) end t=0 for j=1:(n/2-1) t=t+f(2*j-1) end S(i)=1/3/n*(f(1)+4*s+2*t+f(n+1)) end 五.实验内容 复化梯形公式和复化辛普森公式的引入 复化梯形公式: 1 10[(()]2 n n k k k h T f x f x -+==+∑; 复化辛普森公式: 1 1102 [(4()()]6n n k k k k h S f x f x f x -++ ==++∑; 根据题意和复化梯形公式、复化辛普森公式的原理编辑程序求解代码如下: Matlab 代码 clc s=quad('sin(x)./x',0,1) p1=zeros(10,1);

复化积分法(复化梯形求积,复化Simpson公式,变步长求积法)MATLAB编程实验报告

复化积分法(复化梯形求积,复化Simpson 公式,变步长求积法) MATLAB 编程实验报告 一、 问题描述: 编写函数实现复化积分法。 二、 实验步骤(过程): (一)复化求积法 (1)复化梯形求积:用复化梯形求积公式求解 dx x x ?10sin function [f]=Tn(a,b,n,y) syms t; h=(b-a)/n; f=0; for k=1:n+1 x(k)=a+(k-1)*h z(k)=subs(y,t,x(k)); end for i=2:n f=f+z(i); end q=subs(y,t,a); if y=='sin(t)/t'&&a==0 q=1; end p=subs(y,t,b); T=h/2*(q+p+2*f); T=vpa(T,7) clc,clear; syms t; a=0;b=1; y=sin(t)/t; n=8; Tn(a,b,n,y); (2)复化Simpson 公式:用复化Simpson 公式求解?211dx e x function [f]=simpson(a,b,n,y)

syms t; h=(b-a)/n; f=0;l=0; for k=1:n+1 x(k)=a+(k-1)*h w(k)=0.5*h+x(k) z(k)=subs(y,t,x(k)); end for i=2:n f=f+z(i); end for i=1:n l=l+w(i); end q=subs(y,t,a); if y=='sin(t)/t'&&a==0 q=1; end p=subs(y,t,b); T=h/2*(q+p+2*f); T=vpa(T,7) clc,clear; syms t; a=1;b=2; y=exp(1/t); n=5; simpson(a,b,n,y); (3)变步长求积法:以书本例4.5为例function [f]=TN(a,b,y,R0) syms t; T=[]; f=0; q=subs(y,t,a); if y=='sin(t)/t'&&a==0 q=1; end p=subs(y,t,b); T(1)=(b-a)/2*(q+p); i=2; n=i-1; h=(b-a)/n; z1=a+h/2; z2=subs(y,t,z1);

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

(一) 实验目的 熟悉并掌握数值积分的方法,重要训练复化梯形公式,复化simpson 公式以及romberg 积分。 (二) 问题描述 问题三数值积分椭圆周长的计算。考虑椭圆22221x y a b +=,为计算其周长,只要计算其第一象限的长度即可. 用参数方程可以表示为cos (0/2)sin x a t t y b t π=?≤≤?=? , 计算公式为/0π? 为计算方便,我们可以令1a =,即计算下面的积分 / 0π?/0π=? (/0π?/0a π=?可以归结为上面的形式) 采用复化梯形公式,复化Simpson 公式以及Romberg 积分的方法计算积分 / 0()I b π=? 给出通用程序,该通用程序可以计算任何一个函数在任意一个区间在给定的精度下的数值积分。程序输出为计算出的数值积分值以及计算函数值的次数。 (三) 算法介绍 首先利用给出的各迭代公式,设计程序。在matlab 对话框中输入要计算的函数,给出区间和精度。

复化梯形的迭代公式为: ; 复化simpson迭代公式为: ; Romberg迭代公式为: 。 (四)程序 对于复化梯形公式和复化simpson公式,我们放在中。 (%标记后的程序可用来把b看为变量时的算法实现) %复化梯形公式 function y=jifenn(f,n,a,b) (说明:f表示任一函数,n精度,a,b为区间)fi=f(a)+f(b); h=(b-a)/n; d=1; %function f=jifen(n,a,b,c) %syms t %y=sqrt(1+(c^2-1)*cos(t)^2); %ya=subs(y,t,a); %yb=subs(y,t,b); %fi=ya+yb; for i=1:n-1 x=a+i*h; fi=fi+2*f(x); d=d+1; %yx=subs(y,t,x); %fi=fi+2*yx; end f4=h/2*fi,d %复化simposon公式 f1=0; f2=0; dd=1;

复合梯形积分和复合Simpson积分计算数值积分

实验五 一、实验名称 复合梯形积分和复合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 四、实验题目: 五、问题的解: 编写程序(程序见后面附录),输出结果如下:

数值分析复化Simpson积分公式和复化梯形积分公式计算积分的通用程序

数值分析第五次程序作业 PB09001057 孙琪 【问题】 分别编写用复化Simpson积分公式和复化梯形积分公式计算积分的通用程序;用如上程序计算积分: 取节点并分析误差; 简单分析你得到的数据。 【复化Simpson积分公式】 Simpson法则: 使用偶数个子区间上的复合Simpson法则: 设n是偶数, 则有 将Simpson法则应用于每一个区间,得到复合Simpson法则:

公式的误差项为: 其中δ 【复化梯形积分公式】 梯形法则:对两个节点相应的积分法则称为梯形法则: 如果划分区间[a,b]为: 那么在每个区间上可应用梯形法则,此时节点未必是等距的,由此得到复合梯形法则: 对等间距h=(b-a)/n及节点,复合梯形法则具有形式: 误差项为:

【算法分析】 复合Simpson法则和复合梯形法则的算法上述描述中都已介绍了,在此不多做叙述。 【实验】 通过Mathematica编写程序得到如下结果: 利用复化Simpson积分公式得:

可以看出,当节点数选取越来越多时,误差项越来越小,这从复合的Simpson公式很好看出来,因为在每一段小区间内,都是用Simpson法则去逼近,而每一段的误差都是由函数在该区间内4阶导数值和区间长度的4次方乘积决定的,当每一段小区间越来越小时,相应的每一段小区间内的逼近就会越来越好,从而整体的逼近效果就会越来越好。 利用复化梯形积分公式得:

可以看出,当节点数选取越来越多时,误差项越来越小,这从复合的梯形公式很好看出来,因为在每一段小区间内,都是用梯形法则去逼近,而每一段的误差都是由函数在该区间内2阶导数值和区间长度的2次方乘积决定的,当每一段小区间越来越小时,相应的每一段小区间内的逼近就会越来越好,从而整体的逼近效果就会越来越好。 【分析】 通过对上述两种法则的效果来看,复合Simpson法则的误差要比复合梯形法则收敛到0更快,说明复合Simpson法则逼近到原来的解更快,这主要是因为在每一段小区间内,复合Simpson法则利用得是Simpson法则,复合梯形法则利用得是梯形法则,前者的误差项要比后者的误差项小很多,因此造成了逼近速度的不一样。

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

数值分析实验 三 班级:10信计2班 学号:59 姓名:王志桃 分数 一·问题提出: 选用复合梯形公式,复合Simpson 公式,计算 (1) I =dx x ?-4 10 2sin 4 ()5343916.1≈I (2) I = dx x x ?1 sin ()9460831.0,1)0(≈=I f (3) I = dx x e x ?+1 024 (4) I = () dx x x ?++1 021 1ln 二·实验要求: 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 #include using namespace std; #define n 20//此为步长 double f1(double x)

复化梯形公式和复化Simson公式

数值计算方法上机题目3 一、计算定积分的近似值: 要求: (1)若用复化梯形公式和复化Simpson 公式计算,要求误差限7102 1-?=ε,分别利用他们的余项估计对每种算法做出步长的事前估计; (2)分别利用复化梯形公式和复化Simpson 公式计算定积分; (3)将计算结果与精确解比较,并比较两种算法的计算量。 1.复化梯形公式 程序: 程序1(求f (x )的n 阶导数: syms x f=x*exp(x) %定义函数f (x ) n=input('输入所求导数阶数:') f2=diff(f,x,n) %求f(x)的n 阶导数 结果1 输入n=2

f2 = 2*exp(x) + x*exp(x) 程序2: clc clear syms x%定义自变量x f=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 %求等分数n

Rn=-(b-a)/12*((b-a)/n)^2*f2(x1) %计算余项 if abs(Rn)

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

复化梯形算法求解数值积分 摘要 求某函数的定积分时,在多数情况下,被积函数的原函数很难用初等函数表达出来,因此能够借助微积分学的牛顿-莱布尼兹公式计算定积分的机会是不多的。另外,许多实际问题中的被积函数往往是列表函数或其他形式的非连续函数,对这类函数的定积分,也不能用不定积分方法求解。由于以上原因,数值积分的理论与方法一直是计算数学研究的基本课题。 构造数值积分公式最通常的方法是用积分区间上的n 次插值多项式代替被积函数,由此导出的求积公式称为插值型求积公式。特别在节点分布等距的情形称为牛顿-柯茨公式,例如梯形公式与抛物线公式就是最基本的近似公式。但是它们的精度较差。而且高阶Newton-Cotes求积公式是不稳定的。因此,通常不用高阶求积公式得到比较精确的积分值,而是将整个积分区间分段,在每一小段上用低阶求积公式。这种方法称为复化求积方法。 本文从三个积分实例出发,主要讨论复化梯形公式以及精确程度分析。 关键词:数值积分;复化求积公式;复化梯形算法;MATLAB

THE REHABILITATION OF TRAPEZOID FORMULA TO SOLVE THE NUMERICAL INTEGRATION ABSTRACT Find the definite integral of a function, in most cases, the original integrand function is difficult toexpress the elementary functions, it can use calculus of Newton - Leibniz formula to calculate thedefinite integral of the few opportunities . In addition, many practical problems in the integrand is often a list of functions or other forms of non-continuous function, the definite integral of suchfunctions, indefinite integral method can not solve. For these reasons, the numerical integration oftheory and method has been the subject of calculation of the basic mathematical research. Structural formula for numerical integration method is used most often on the n-th integration interval polynomial interpolation instead of the integrand, thus derived is called interpolation-typequadrature formula quadrature formula. Especially in the case of equidistant distribution of nodesis called Newton - Keci formula, such as trapezoidal formula and the formula is the most basicparabolic approximation formula. But their accuracy is poor. And high-level Newton-Cotesquadrature formula is unstable. So it is usually not higher-order quadrature formula to be moreprecise integral values, but the whole range of sub-points, with each short on low-level quadrature formula. This method is called complex method of quadrature. This example from three points of departure, the main complex of the trapezoid formula anddiscuss the accuracy of the analysis. Key words: Numerical integration;Rehabilitation of numerical integration;Rehabilitation of trapezoid formula;MA TLAB

复化Simpson公式以及复化梯形公式

数值分析程序: Simpson公式,梯形,以及复合Simspon,复合梯形公式:clc clear %fuhuaTX syms x; a=input('a='); b=input('b='); n1=input('分割n1='); h=(b-a)/n1; sum=0; fori=1:n1-1 sum=sum+f(a+i*h); end %f0=0; %sum=2*sum+f0+f(b); sum=2*sum+f(a)+f(b); TX=sum*h/2 %代数精度 m=200;n=0; for j=1:m D=int(g(j,x),x,a,b); h1=(b-a)/2; s1=g(j,a)+g(j,b); T=h1*s1; if(T==D) n=n+1; else n=n; end end disp('梯形公式的代数精度为') disp(n) n=0;sum=0; for j=1:m D=int(g(j,x),x,a,b); h1=h/2; fori=1:n-1 sum=sum+g(i,a+i*h); end s1=2*sum+g(j,a)+g(j,b); T=h1*s1; if(T==D) n=n+1;

n=n; end end disp('复合梯形公式的代数精度为') disp(n) %fuhuaSimps syms x; format short n=n1/2; n1=2*n; h=(b-a)/n; sum1=0;sum2=0; fori=1:n-1 sum1=sum1+2*f(a+i*h);%中间偶数点2倍求和end fori=0:n-1 sum2=sum2+4*f((i+(i+1))/n1); %中间奇数点 end %f0=0; %sum=sum1+sum2+f0+f(b); sum=sum1+sum2+f(a)+f(b); Simpson=sum*h/6 %代数精度 m=200;n2=0;N=zeros(1,m); for j=1:m D=int(g(j,x),x,a,b); sum1=0;sum2=0; fori=1:n-1 sum1=sum1+2*g(j,a+i*h);%中间偶数点2倍求和end fori=0:n-1 sum2=sum2+4*g(j,(i+(i+1))/n1); %中间奇数点end sum=sum1+sum2+g(j,a)+g(j,b); T=sum*h/6; M=abs(D-T); N(1,j)=M; end for j=1:m if N(1,j)<0.0001 n2=n2+1; else n2=n2;

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

数值计算方法上机题目3 一、计算定积分得近似值: 要求: (1)若用复化梯形公式与复化Simpson公式计算,要求误差限,分别利用她们得余项估计对每种算法做出步长得事前估计; (2)分别利用复化梯形公式与复化Simpson公式计算定积分;(3)将计算结果与精确解比较,并比较两种算法得计算量. 1、复化梯形公式 程序: 程序1(求f(x)得n阶导数: syms x f=x*exp(x) %定义函数f(x) n=input('输入所求导数阶数:’) f2=diff(f,x,n)%求f(x)得n阶导数 结果1 输入n=2 f2= 2*exp(x) + x*exp(x) 程序2: clc clear syms x%定义自变量x f=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%求等分数n Rn=—(b—a)/12*((b-a)/n)^2*f2(x1) %计算余项 if abs(Rn)

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

数值计算方法上机题目3 计算定积分的近似值: 2 21x e xe dx =? 要求: (1)若用复化梯形公式和复化Simpson 公式计算,要求误差限7102 1 -?=ε,分别利用他们的余项估计对每种算法做出步长的事前估计; (2)分别利用复化梯形公式和复化Simpson 公式计算定积分; (3)将计算结果与精确解比较,并比较两种算法的计算量。 1.复化梯形公式 程序: 程序1(求f (x )的n 阶导数: syms x f=x*exp(x) %定义函数f (x ) n=input('输入所求导数阶数:') f2=diff(f,x,n) %求f(x)的n 阶导数 结果1 输入n=2 f2 = 2*exp(x) + x*exp(x) 程序2: clc clear

syms x%定义自变量x f=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 %求等分数n Rn=-(b-a)/12*((b-a)/n)^2*f2(x1) %计算余项 if abs(Rn)