当前位置:文档之家› 复化辛普森公式及龙贝格方法求解积分

复化辛普森公式及龙贝格方法求解积分

复化辛普森公式及龙贝格方法求解积分
复化辛普森公式及龙贝格方法求解积分

一、实验目的及题目

1. 实验目的:

(1) 学习用复化辛普森公式及龙贝格方法求解积分并掌握这种方法。

(2)了解这些辛普森公式及龙贝格方法的概念,参考课本写出用复化辛普森算法以及龙贝格方法计算目标题目的程序,在matlab 中实现,并用matlab 内置的函数计算出结果,并提出存在的问题。

2. 题目:

利用复化辛普森公式和龙贝格方法计算下列积分: (1)dx e x ?-5

.002

(2)dx x x ?20

2sin )2sin(cos π

二、实验用仪器设备、器材或软件环境 计算机、matlab 软件。

三、实验原理、程序框图、程序代码 1.实验原理:

根据微积分学基本定理,若被积函数f(x)在区间[a,b]上连续,只要能找到f(x)的一个原函数F(x),便可利用牛顿-莱布尼茨公式求得积分值。但会经常遇到如下问题:找不到用初等函数,找到了原函数,但因表达式过于复杂而不便计算等等。此时则不能用牛顿-莱布尼茨公式,因此有必要研究如下公式。 1)复化求积公式及原理

由于高阶插值的不稳定性,为了提高计算积分的精度,可把积分区间分为若干个

小区间,将()I f 写成这些小区间上的积分之和,然后对每一个小区间上的积分应用到辛普森公式,或柯特斯公式,并把每个小区间上的结果累加,所得到的求积公式就称为复化求积公式。

辛普森公式的数值积分公式为:

?

+++-≈

b

a

b f b a f a f a b dx x f )]()2

(

4)([6

)(

它的集合意义为用通过三点))

(,()),2

(

,2

()),(,(b f b b a f b a a f a =+的抛物线围城的曲边形

面积来代替给定函数的积分。

同梯形公式一样,也有复化辛普森公式:

)

()(),()()]

()(4)([6

)(01

12

1b f x f a f x f x f x

x f h

dx x f n n k k k k

b

a

==++≈

∑?

-=++

其中 n

a b h x x x

k k k -=

+=

++

,2

1

2

1。

2、龙贝格求积公式及原理

龙贝格积分的算法如下,其中)(i m T 是一系列逼近原定积分的龙贝格积分值。 (1)计算

)]()([2

)

0(1

b f a f a b T +-=

(2)对,...,3,2,1=k 计算下列各步:

]

)2

)

)(12((2

[2

11

21

1

)

1(1

)

(1

-=----+

-+

=

k j k

k K k a b j a f a b T T

对k m ,...,3,2,1=和,...,2,1,--=k k k i 计算:

1

441

1

1--=

--+m

i m

i m m i m T T T

2. 程序代码:

(1)复化辛普森求积分程序

function [I,step] = IntSimpson(f,a,b,eps)

%辛普森系列公式求函数f 在区间[a,b]上的定积分,f 为函数名

%积分下限:a , 积分上线:b %eps 积分精度 , I 为积分值 %step 是积分划分的子区间个数 I=0; n=2;

h=(b-a)/2;

I1=0;

I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h;

while abs(I2-I1)>eps

n=n+1;

h=(b-a)/n;

I1=I2;

I2=0;

for i=0:n-1

x=a+h*i;

x1=x+h;

I2=I2+(h/6)*(subs(sym(f),findsym(sym(f)),x)+...

4*subs(sym(f),findsym(sym(f)),(x+x1)/2)+...

subs(sym(f),findsym(sym(f)),x1));

end

end

I=I2;

step=n;

(2)龙贝格求积分程序

function [I,step]=Roberg(f,a,b,eps)

%龙贝格积分法求解函数f在区间[a,b]上的定积分

%函数名:f , 积分下限:a ,积分上限:b ,积分精度:eps

%积分值:I

%积分划分的子区间次数:step

if(nargin==3)

eps=1.0e-4;

end;

M=1;

tol=10;

k=0;

T=zeros(1,1);

h=b-a;

T(1,1)=(h/2)*(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym

(f)),b));

%初值

while tol>eps

k=k+1;

h=h/2;

Q=0;

for i=1:M

x=a+h*(2*i-1);

Q=Q+subs(sym(f),findsym(sym(f)),x);

end

T(k+1,1)=T(k,1)/2+h*Q;

M=2*M;

for j=1:k

T(k+1,j+1)=T(k+1,j)+(T(k+1,j)-T(k,j))/(4^j-1);

end

tol=abs(T(k+1,j+1)-T(k,j));

end

I=T(k+1,k+1);

step=k;

四、实验过程中需要记录的实验数据表格

辛普森公式实验结果:

第一小题:

>> [q,s]=IntSimpson('exp(-x*x)',0,0.5,1)

q =

0.4613

s =

4

第二小题:

>> [q,s]=IntSimpson('sin(cos(2*x))*sin(x)*sin(x)',0,pi/2,500)

q =

-1.0714

s =

2

龙贝格方法的实验结果

第一小题:

>> [q,s]=Roberg('exp(-x*x)',0,0.5,10)

q =

0.4447

s =

第二小题:

>> [q,s]=IntSimpson('sin(cos(x*x))*sin(x)*sin(x)',0,pi/2,50)

q =

-0.8965

s =

2

五、实验中存在的问题及解决方案

1、开始不能很好的熟悉复化求积公式以及复化柯斯特公式,使得编写的程序问题很多?

解决:跟同学交流最终解决问题。

2、在运行程序时,发现运行的结果有错,并检查不出程序那里出现错误?

解决:将程序删除掉后,重新编写,并注意中文逗号和英文逗号的区别。

六、心得体会

通过这次实验课程,加强了我思考和解决问题的能力,更好的了解运用matlab计算积分问题以及加深对复化辛普森公式和龙贝格方法的理解与运用。通过实验巩固加深了对数值计算方法以及matlab的理解,提高综合运用本课程所学知识的能力,培养了我们独立思考、深入研究、分析问题、解决问题的能力。通过实际编译系统的分析设计、编程调试,掌握应用

软件的分析方法和设计方法。通过这次试验,培养了我们严肃认真的学习态度,同时也是对课本知识的巩固和加强,平时看课本,有些问题不是很能理解,做完实验编程,有些问题就迎刃而解了。而且还能加深记忆。

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

实验四、复化梯形公式和复化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 公式计算积分

实验 目 的 或 要 求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,'*')

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);

三种复化求积分算法的精度分析

【摘要】分别利用复化梯形公式、复化simpson公式和复化gauss-legendre i型公式对定积分进行运算,得到近似数值解,并对各算法的精度和计算复杂度进行了比较与分析。数值举例结果表明,三种复化求积分算法的运算结果均在绝对误差限ε=5e-8内,并且在相同的精度下,复化gauss-legendre i型公式的步长和计算量最小。 【关键词】复化梯形公式;复化simpson公式;gauss-legendre公式 1 引言 数值积分是计算数学的基本内容,在工程技术和科学计算中起着十分重要的作用,当积分的精确值不能不能求出时,数值积分就变得越来越重要。通常数值积分的计算常利用机械积分来实现,其基本思想为: (1) 2 理论模型 复化梯形求积公式 将区间[a,b]划分成n等分,分点xk=a+kh(,k=1,2,3…n),在每个子区间[xk,xk+1] (k=1,2,3 …n-1)上采用梯形式,则得到 (2) 记 (3) 上式(3)为复化梯形公式,其余项可由式 ,(a≤η≤b)(4) 得 ,ηk∈[xk,xk+1] (5) 由于 f(x)∈c2[a,b] 且 ,(0≤k≤n-1)(6) 所以∈(a,b),使 (7) 于是复化梯形公式余项为 (8) 复化simpson求积公式 将区间[a,b]划分为n等分,在每个子区间[xk,xk+1]上采用simpson式,若记,则得 (9) 记 (10) 上式(10)为复化simpson求积公式,其余项可由式 ,(a≤η≤b)(11) 得 ,ηk∈[xk,xk+1] (12) 于是当f(x)∈c4[a,b]时,与复化梯形公式相似有 ,η∈[a,b] (13) 复化gauss-legendre i型求积公式 gauss型求积公式是具有最高代数精度的插值求积公式。通过适当选取求积公式(1)的节点ε=5e-8和求积系数ak≥0和xk∈[a,b] (k=1,2,3…n),可使其代数精度达到最高的2n+1次。利用特殊区间[-1,1]上n+1次legendre正交多项式的根作为节点,我们可以建立gauss-legendre型求积公式。将区间[a,b]划分成n等分,分点xk=a+kh(,

复化梯形公式和复化Simpson公式word.doc

数值计算方法上机题目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)

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);

辛普森求积公式

摘要 在工程实验及研究中,实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系.可以说,曲线拟合模型与我们的生活生产密切相关. 本课题着重介绍曲线拟合模型及其应用,其中包括它的基本思想、模型的建立、以及具体应用.为了更好的了解曲线拟合模型,可以将它分为线性与非线性模型,在模型建立的基础上我们可以用最小二乘法来解决一些我们日常所应用的问题. 关键词曲线拟合;线性与非线性模型;最小二乘发

目录 引言 (1) 第一章曲线拟合 (2) §1.1 基本思想及基本概念 (2) §1.1.1 方法思想 (2) §1.1.2几个基本概念 (2) §1.2辛普森算法基本定义及其应用 (4) §1.2.1辛普森求积公式的定义 (4) §1.2.2辛普森求积公式的几何意义 (5) §1.2.3辛普森求积公式的代数精度及其余项 (5) §1.2.4辛普森公式的应用 (6) 第二章辛普森求积公式的拓展及其应用 (7) §2.1 复化辛普森求积公式 (7) §2.1.1问题的提出 (7) §2.1.2复化辛普森公式及其分析 (7) §2.1.3复化辛普森公式计算流程图 (8) §2.1.4复化辛普森公式的应用 (9) §2.2 变步长辛普森求积公式 (10) §2.2.1变步长辛普森求积公式的导出过程 (10) §2.2.2变步长辛普森求积公式的加速过程 (12) §2.2.3变步长辛普森求积公式的算法流程图 (13) §2.2.4变步长辛普森公式算法程序代码 (14) §2.2.5变步长辛普森求积公式的应用 (14) §2.2.6小结 (14) §2.2.7数值求积公式在实际工程中的应用 (14) 参考文献 (16) 附录A (17)

复合梯形积分和复合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)公式在线路坐标计算中的应用

关于复化辛普森(simpson)公式在线路坐标计算中的应用 天津西站项目部刘思传 摘要:本文里利用辛普森公式导证了线路坐标计算的公式,并在卡西欧FX-4800P计算器中编写了中边线坐标计算的源程序。 关键词:复化辛普森公式,线路坐标计算,曲率。 一.引言 随着我国道路建设等级和质量水平的飞速发展,公路、铁路建设的机械化和日产量日益提高,促使施工中在满足设计精度的前提下,尽可能快速、准确地进行测量放样和检查工作,本文线路曲率变化的特点,利用复化辛普森公式导证了线路坐标计算的通用公式,并利用卡西欧FX-4800P计算器编写了计算线路中边线坐标的源程序。 二.复化辛普森公式数学模型 把积分区间分成偶数等分,记,其中是节点总数,是积分子区间的总数。 记,,在每个区间上用辛普森数值积分公式计算,则得到复化辛普森公式,记为。 复化辛普森积分计算公式 而,称

(1) 式(1)即为辛普森复化公式。 三.线路坐标计算 2. 回旋曲线上点位坐标方位角的计算 如图1,设回旋曲线起点A 的曲率为A ρ,其里程为DK A ;回旋曲线终点B 的曲率为B ρ,其里程为DK B ,Ax ’'y 为以A 为坐标原点,以A 点切线为'x 轴的局部坐标系;Axy 为线路坐标系。 由此回旋曲线上各点曲率半径为R i 和该点离曲线起点的距离?i 成反比,故此任意点的曲率为 c l R i i i /1==ρ(=为常数). (2) y ' Y B 图1 由式(2)可知,回旋曲线任意点的曲率按线性变化,由此回旋曲线上里程为DK i 点的曲率为

)(A i A B A B A i DK DK DK DK ---+=ρρρρ (3) 当曲线右偏时,取正;当曲线左偏时取负。在图1中有 ???????=== ?I A DK DK i i i dl dl dl R d ρβρβ1 (4) 将式(3)代入式(4)得 πρρβ180 *)(2A i A i i DK DK -+= (5) 若已知回旋曲线起点A 在线路坐标系下切线坐标方位角αA ,则里程为Dk i 点切线坐标方位角为 i A i βαα+= π180 (6) 将式(5)代入式(6)得 *)(2A i A i A i DK DK -++=ρραα π180 (7) 对于式(7) ,当,时,,则a i =a A ,式(7)变成计算直线段上任意点切线坐标方位角计算公式;当,时,, ,则式(7)代表圆曲线上任意点切线坐标方位角 计算公式。 可见,若已知曲线段起点和终点的曲率及起点的切线坐标方位角,式(7)便能计算任意线型点位切线坐标方位角。 3、回旋曲线点位坐标计算 由图1可得回旋曲线上点位在坐标系下坐标计算公式:

数值分析复化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算法及其推广形式 摘要:本文研究了辛普森公式的数值积分的计算方法问题,并且更进一步研究了变步长复化的辛普森公式和二重积分的辛普森公式的问题。首先是对 一维辛普森公式和变步长复化辛普森公式以及二维辛普森公式的推导及 其算法,进行误差分析,并且列举了实例。然后,对辛普森公式进行改 进,这里的改进最主要是对辛普森公式的代数精度进行提高,从而使辛 普森公式对积分的计算更加精确。另外,还研究了辛普森公式的推广形 式。最后,在结论的当中列举了一个例子。 关键词:辛普森公式算法改进推广形式二重积分的辛普森公式

Abstract:This paper first studies the calculation methods of the numerical integration in simpson formula, and then study of the long-simpson formula and the double integral simpson formula problem. First, study the algorithm and derived of one-dimensional simpson formula and step-change in simpson formula, as well as two-dimensional simpson formula, and then analysis the error. Finally , list the example. In this , improve the simpson formula. This improved the most important is to incre ase the simpson formula’s accuracy of algebra. Besides, we study the simpson formula’s promotion of forms. At the last, we list a example in the conclusion. Key word:The simpson formula, Algorithm, Improve, Promotion of forms, The simpson formula of the two-dimensional integral.

选用复合梯形公式复合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)

复化抛物线积分公式

摘要 求函数在给定区间上的定积分,在微积分学中已给出了许多计算方法,但是,在实际问题计算中,往往仅给出函数在一些离散点的值,它的解析表达式没有明显的给出,或者,虽然给出解析表达式,但却很难求得其原函数。这时我们可以通过数值方法求出函数积分的近似值。 在用近似值代替真实值时,遇到的问题就是近似值的代数精度是否足够。当代数精度不足够时,很显然提高插值函数的次数是一种方法,但是考虑到数值计算的稳定性,当次数过高时,会出现龙格现象,用增大n的方法来提高数值积代数精度是不可取的。因此,提出类似于分段插值,为了减少数值积分的误差,可以把积分区间分成若干个小区间,在每个小区间上采用低阶数值积分公式,然后把这些小区间上的数值积分结果加起来作为函数在整个区间上的近似值,这个就是复化数值积分的思想。 本实验针对在每个小区间上利用抛物线积分公式,即阶数为2,进行实验。 关键词:龙格现象复化数值积分代数精度复化抛物线积分公式

1、实验目的 1)通过本次实验体会并学习复化抛物线积分公式的优点。 2)通过对复化抛物线积分公式进行编程实现,提高自己的编程能力。 3)用实验报告的形式展现,提高自己在写论文方面的能力。 2、算法流程 已知定积分的抛物线积分公式及其误差为 根据数学知识,我们知道积分区间可划分,且不改变积分值,即如下所示:针对上式,在每一个小区间上利用抛物线积分公式有 得到 其中,令

当作为积分的近似值时,其误差为 若,则由介值定理推得 设,得到误差限 由上式可以进行计算精度控制。这样就给出了n+1点复化抛物线积分公式及其误差 3、算法实例 用复化抛物线积分公式计算积分 解:具体程序如下:

复化梯形公式,辛普森公式的matlab程序

复化梯形公式与辛普森公式的matlab程序【程序代码】 cclc; disp('1.复化梯形公式求解'); disp('2.simpson公式求解'); disp('请进行选择:'); c=input(' '); if c==1 clc; disp('复化梯形公式'); disp('请输入积分下限'); a=input('a='); disp('请输入积分上限'); b=input('b='); disp('请输入等分的数目'); n=input('n='); h=(b-a)/n; s1=0; for i=1:n-1 s1=s1+fun1(i*h); end disp('复化梯形公式的结果:'); T=h/2*(fun1(a)+2*s1+fun1(b)) else if c==2 clc; disp('simpson公式'); disp('请输入积分下限'); a=input('a='); disp('请输入积分上限'); b=input('b='); disp('请输入等分的数目'); n=input('n='); h=(b-a)/n; s2=0; for i=0:n-1 s2=s2+fun1((i+0.5)*h); end disp('辛普森公式的结果:'); S=h/6*(fun1(a)+4*s2+2*s1+fun1(b)) end end disp('菜单选项'); disp('1.继续运算'); disp('2.退出程序!'); p=input(' '); if p==1 (fuhua); else if p==2 disp('正在退出,请稍候。。。');

复化Simpson公式

2012-2013(1)专业课程实践论文 复化Simpson公式 肖云龙,0818180214,R数学08-2班

Simpson 公式是一个数值积分公式,在计算一些多项式函数(三次或三次一下)的定积分时会得出精确值。但容易验证它对于)(x f =4x 通常是不准确的,因此,Simpson 公式实际上具有三次代数精度。提高阶的途径并不总能取得满意的效果。为了改善求积的精度,通常采用复化求积法。 Simpson 公式 )]()2 (4)([6b f b a f a f a b S +++-= 将定积分?=b a dx x f I )(的积分区间],[b a 分隔为n 等分,各节点为 n j jh a x j ,,1,0, =+= n a b h -= 复化梯形公式的形式 ])()(2)([21 1 ∑-=++=n j j n b f x f a f h T 记子区间[1,+j j x x ] 的中点为2 1+ j x 则复化Simpson 公式: n S ])(4)(2)()((61 02 111∑∑-=+-=+++=n j j n j j x f x f b f a f h

#include #include double function(double x) { double s; s=x/(4+x*x); return s; } double ReiterationOfSimpson(double a,double b,double n,double f(double x)) { double h,fa,fb,xk,xj; h=(b-a)/n; fa=f(a); fb=f(b); double s1=0.0; double s2=0.0; for(int k=1;k>a; cout<<"请输入积分上限:"<>b; cout<<"请输入分割区间数n:"<>n; cout<<"复化Simpson公式计算结果:"; Result=ReiterationOfSimpson(a,b,n,function); cout<

验证数值积分求积公式及复合梯形公式程序设计

《复合梯形公式》实验报告 实验名称:验证数值积分求积公式及复合梯形公式程序设计成绩:___________ 专业班级:数学与应用数学1202班姓名:王晓阳学号:2012254010228 实验日期:2014 年10月20日 实验报告日期:2014年11月3日 一.实验目的 1掌握定积分的数值求解方法,验证数值积分求积公式. 2.掌握数值积分的基本思想. 3.掌握matlab实现数值积分函数的调用格式. 4.编写复合梯形公式matlab程序及学会调用. 5.学会用复合梯形公式求函数近似解. 二、实验内容 1.数值积分的实现 (1)被积函数是一个解析式 Matlab提供了quad函数和quadl函数来求定积分.它们的调用格式为: Quad(filename,a,b,tol,trace) Quadl(filename,a,b,tol,trace)

其中filename 是被积函数名。a 和b 分别是定积分的下限和上限。Tol 用来控制积分精度,默认时取610tol -=。Trace 控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,默认时取trace=0。 例6.20 用两种不同的方法求2 10x I e dx -=?. (2)被积函数由一个表格定义 在matlab 中,对由表格形式定义的函数关系的求定积分问题用trapz(X,Y)函数。其中向量X 、Y 定义函数关系Y=f(X).X 、Y 是两个等长的向量; ()12,,n X x x x =,()12,,n Y y y y =,并且12n x x x <<<,积分区间是[]1,n x x 。 例6.21用trapz 函数计算210 x I e dx -=?. (3)二重积分数值求解 Matlab 提供的dblquad 函数可以直接求出二重定积分的数值解。该函数的调用格式为:I=dblquad(f,a,b,c,d,tol,trace) 该函数求f(x,y)在[a,b]*[c,d]区域上的二重定积分。 例6.22 计算二重定积分()2 122212sin x e x y dxdy ---+? ? 2.复合梯形公式 由于牛顿-柯特斯公式在8n ≥时不具有稳定性,故不可能通过提高阶的方法来提高求积精度.为了提高精度通常可把积分区间分成若干子区间(通常是等分),再在每个子区间上用低阶求积公式,这种方法称为复合求积法. 将区间[],a b 划分为n 等份,分点0,0,1, k x x kh k n =+=,0,,n b a a x b x h n -=== ,在每个子区间[]1,k k x x +上采用梯形公式

第四章 数值积分0

第四章 数值积分 姓名 学号 班级 习题主要考察点:代数精度的计算,构造插值型求积公式(梯形,辛甫生公式),复化求积的计算,高斯公式的构造。 1给定求积公式 )()0()()(h cf bf h af dx x f h h ++-≈? -试确定c b a ,,使它的代数精度尽可能 高。(代数精度的应用和计算) 解:分别取2,,1)(x x x f =,使上述数值积分公式准确成立,有; ?? ? ??=+-=+-=++3/2)()(0 )()(2322h h c h a h c h a h c b a 解得:3,34,3h c h b h a == =。 故求积公式为)(3 )0(34)(3)(h f h f h h f h dx x f h h ++ -≈?-。 再取3 )(x x f =,左边=?-=h h dx x 03,右边=0)(3 034)(333=+?+ -h h h h h 再取4 )(x x f =,左边=?-=h h h dx x 5254 ,右边=3 2)(3034)(3544 h h h h h h =+?+- 此求积公式的最高代数精度为3。 2 求积公式 )0()1()0()(0101 f B f A f A dx x f '++≈? ,试确定系数0A ,1A 及0B ,使该求积 公式具有尽可能高的代数精确度,并给出代数精确度的次数。(代数精度的应用和计算) 解:分别取2 ,,1)(x x x f =,使求积公式准确成立,有 ??? ??==+=+3/12/11 1 0110A B A A A 解得:61,31,32010=== B A A 。 求积公式为)0(6 1 )1(31)0(32)(10f f f dx x f '++≈?。 再取3 )(x x f =,左边==?+?+?≠=?06 113103241103dx x 右边 故该求积公式的最高代数精度为2。 3数值积分公式 )]2()1([2 3 )(30 f f dx x f +≈? ,是否为插值型求积公式,为什么?又该公式

变步长复化辛普森公式计算积分

2. 编写用变步长复化辛普森公式计算积分()b a f x dx ? 的程序。 用上面编写的程序计算下列积分并分析计算结果 (1)0cos xdx π ? (2)220cos x x dx (3)?10dx x 程序: function S=bianfuhuasimpson(fx,a,b,eps,M) % 变步长复合simpson 求积公式 % 调用方式: S=fuhuasimpson(@fx,a,b,epsilon) % fx -- 求积函数(函数文件) % a, b -- 求积区间 % eps -- 计算精度 % M--最大允许输出划分数 n=1; h=(b-a)/n; T1=h*(feval(fx,a)-feval(fx,b))/2; Hn=h*feval(fx,(a+b)/2); S1=(T1+2*Hn)/3; n=2*n; % 最好与倒数第三行保持一致(变步长) while n<=M T2=(T1+Hn)/2; Hn=0; h=(b-a)/n; for j=1:n x(j)=a+(j-1/2)*h; y(j)=feval(fx,x(j)); Hn=Hn+y(j); end Hn=h*Hn; S2=(T2+2*Hn)/3; fprintf(' n=%2d S2=%-12.9f S2-S1=%-12.9f\n',n,S2,abs(S2-S1)); if abs(S2-S1)

S=S2; % 达到下列条件之一,则运算终止: % (1).abs(S2-S1)M % 输入1:S=bianfuhuasimpson(inline('sqrt(x)*cos(x)'),0,pi,10e-6,2000) % 输入2:S=bianfuhuasimpson(inline('2*x^2*cos(x^2)'),0,sqrt(pi),10e-6,2000) % 输入3:S=bianfuhuasimpson(inline('sqrt(x)'),0,1,10e-6,2000) 输出结果: (1) S=bianfuhuasimpson(inline('sqrt(x)*cos(x)'),0,pi,10e-6,2000) n= 2 S2=-0.016369112 S2-S1=0.944423778 n= 4 S2=-0.450266122 S2-S1=0.433897010 n= 8 S2=-0.669839370 S2-S1=0.219573248 n=16 S2=-0.781318443 S2-S1=0.111479074 n=32 S2=-0.837710689 S2-S1=0.056392245 n=64 S2=-0.866141900 S2-S1=0.028431211 n=128 S2=-0.880440980 S2-S1=0.014299080 n=256 S2=-0.887620063 S2-S1=0.007179083 n=512 S2=-0.891220052 S2-S1=0.003599989 n=1024 S2=-0.893023740 S2-S1=0.001803689 S = -0.8930 (2) S=bianfuhuasimpson(inline('2*x^2*cos(x^2)'),0,sqrt(pi),10e-6,2000) n= 2 S2=1.076354541 S2-S1=2.092222287 n= 4 S2=0.039359358 S2-S1=1.036995183 n= 8 S2=-0.430456535 S2-S1=0.469815894 n=16 S2=-0.662796649 S2-S1=0.232340113 n=32 S2=-0.778823323 S2-S1=0.116026674 n=64 S2=-0.836827971 S2-S1=0.058004648 n=128 S2=-0.865829756 S2-S1=0.029001785 n=256 S2=-0.880330615 S2-S1=0.014500859 n=512 S2=-0.887581042 S2-S1=0.007250427 n=1024 S2=-0.891206256 S2-S1=0.003625214 S =

相关主题
文本预览
相关文档 最新文档