Romberg积分法,Gauss型积分法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学软件实验任务书
实验1Romberg 积分法
1实验原理
Romberg 方法是实用性很强的一种数值积分方法,其收敛速度是很快的,这里给出Romberg 积分的计算方法。
(1)计算1
(0,0)()[()()]2
R b a f a f b =-+
(2)计算2
211111
(,0)(1,0)(())222
i i i k h R i i f a k h ---==-++-∑ (3)计算114(,1)(1,1)(,)41
j j R m j R m j R m j ------=-
2 实验数据
用 Romberg 积分方法计算:
15
2
4x
S dx x
=+⎰
3实验程序 程序1
function s=rombg(a,b,TOL) n=1; h=b-a; delt=1; x=a; k=0;
R=zeros(4,4);
R(1,1)=h*(rombg_f(a)+rombg_f(b))/2; while delt>TOL k=k+1; h=h/2; s=0; for j=1:n
x=a+h*(2*j-1); s=s+rombg_f(x); end
R(k+1,1)= R(k,1)/2+h*s; n=2*n; for i=1:k
R(k+1,i+1)=((4^i)*R(k+1,i)-R(k,i))/(4^i-1); end
delt=abs(R(k+1,k)-R(k+1,k+1)); end
s=R(k+1,k+1);
程序2
function f=rombg_f(x)
f=x/(4+x^2);
程序3
s=rombg(0,1.5,1.e-6)
%作出图形
x=0:0.02:1.5;
y=x./(4+x.^2);
area(x,y)
grid
4 实验结果
s =
0.2231
实验2高斯-勒让德积分法1实验原理
Gauss-Legendre求积公式为
1
1
1
()()n
k k k f x dx A f x -=≈∑⎰
其中k x 为Legendre 多项式在1,1区间上的零点。n 阶
Legendre 多项式定义为:
21()[(1)]2!n n
n n n
d P t t n dt =- k A 为权系数,
2
2222
2(1)2
[()]
(1)[()]k k n k k n n x A n P x x P x -=='- 对于一般的积分区间为a ,b 问题,可以做变换 22
a b b a
x t +-=
+ 1
()()222n b
k k a
k b a a b b a
f x dx A f x =-+-=+∑⎰
2 实验数据
用 Gauss-Legendre 积分方法计算定积分
220
cos S x xdx π
=⎰
3实验程序
function s=gau_leg(a,b) %5阶Legendre 多项式结点
node=[-0.9061798459,-0.5384693101,0,0.5384693101,0.9061798459];
%结点对应的权
quan=[0.2369268851,0.4786286705,0.5688888889,0.4786286705,0.2369268851];
%t 为(1,5)的行向量,整个区间上的结点 t=(b+a)/2+(b-a)*node/2;
s=((b-a)/2)*sum(quan.*gau_leg_f(t));
function f=gau_leg_f(x) f=(x.^2).*cos(x);
disp('计算结果为:') s=gau_leg(0,pi/2) %画出图形
x=0:0.01:pi/2; y=(x.^2).*cos(x); bar(x,y) grid
4 实验结果 计算结果为: s =
0.4674
实验 3高斯-拉盖尔积分法
1实验原理
n 个结点Gauss-Laguerre 求积公为:
1()n
k k k S A f x =≈∑
其中k x 为零点,k A 为权系数
212
[()](1)
k
k n k x A L x n +=
+ Laguerre 多项式为
()(),0n x
n x
n n
d L x
e x e x dx
-=≤≤∞ 2 实验数据 计算反常积分
0x S xe dx ∞
-=⎰
3实验程序
function s=gau_lag() %多项式结点
node=[0.26355990,1.41340290,3.59624600,7.08580990,12.640800]; %权重向量
quan=[0.6790941054,1.638487956,2.769426772,4.31594400,7.10489623]; %求和
s=sum(quan.*gau_lag_f(node)) %%%%%%%%%%%
%以下为画出积分示意图 clear
x=0:0.1:20; y=x.*exp(-x); area(x,y) grid
function f=gau_lag_f(x) f=x.*exp(-x);
4 实验结果 s =
1.0000