Romberg积分法,Gauss型积分法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档