用蒙特卡洛方法估计积分方法及matlab编程实现Word文档下载推荐.docx

上传人:b****7 文档编号:22264151 上传时间:2023-02-03 格式:DOCX 页数:23 大小:98.36KB
下载 相关 举报
用蒙特卡洛方法估计积分方法及matlab编程实现Word文档下载推荐.docx_第1页
第1页 / 共23页
用蒙特卡洛方法估计积分方法及matlab编程实现Word文档下载推荐.docx_第2页
第2页 / 共23页
用蒙特卡洛方法估计积分方法及matlab编程实现Word文档下载推荐.docx_第3页
第3页 / 共23页
用蒙特卡洛方法估计积分方法及matlab编程实现Word文档下载推荐.docx_第4页
第4页 / 共23页
用蒙特卡洛方法估计积分方法及matlab编程实现Word文档下载推荐.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

用蒙特卡洛方法估计积分方法及matlab编程实现Word文档下载推荐.docx

《用蒙特卡洛方法估计积分方法及matlab编程实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《用蒙特卡洛方法估计积分方法及matlab编程实现Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。

用蒙特卡洛方法估计积分方法及matlab编程实现Word文档下载推荐.docx

改写成

的形式,(其中为

一随机变量X的概率密度函数,且

的支持域

),

);

令Y=h(X),则积分S=E(Y);

利用matlab软件,编程产生随机变量X的随机数,在由

,得到随机变量Y的随机数,求出样本均值,以此估计积分值。

积分

的求法与上述方法类似,在此不赘述。

概率密度函数的选取:

一重积分,由于要求

,为使方法普遍适用,考虑到标准正态分布概率密度函数

支持域为

,故选用

类似的,二重积分选用

,支持域为

估计评价:

进行重复试验,通过计算样本均值以评价估计的无偏性;

通过计算均方误(针对第1类题,积得出)或样本方差(针对第2类题,积不出)以评价估计结果的精度。

程序设计:

依据问题分四类:

第一类一重积分;

第一类二重积分;

第二类一重积分,第二类二重积分,相应程序设计成四类。

为了使程序具有一般性以及方便以后使用:

一重积分,程序保存为一个.m文本,被积函数,积分区间均采用键盘输入;

二重积分,程序主体保存为一个.m文本,被积函数键盘输入,示性函数用function语句构造,求不同区域二重积分,只需改变function函数内容。

编程完整解决用蒙特卡洛方法估计一重、二重积分值问题。

程序代码及运行结果:

第一类一重积分程序代码:

%%%构造示性函数

functionI=I1(x,a,b)

ifx>

=a&

&

x<

=b

I=1;

else

I=0;

end

%保存为I1.m

%%%%%%%%%%%%%%%%

%%第一类一重积分,程序主体:

%保存为f11.m

functionoutf11=f11()

g1=input('

输入一元被积函数如x.*sin(x):

'

'

s'

)%输入被积函数

g1=inline(g1);

a=input('

输入积分下界a:

%输入积分上下限

b=input('

输入积分上界b:

Real=input('

积分真值:

%输入积分真值

fprintf('

输入样本容量10^V1--10^V2:

\r'

V=zeros(1,2);

V

(1)=input('

V1:

%输入样本容量

V

(2)=input('

V2:

form=V

(1):

V

(2)%样本容量10^m1--10^m2

n=10^m

forj=1:

10

x=randn(1,n);

fori=1:

n

t1(i)=I1(x(i),a,b);

%示性及求和向量

y1=g1(x)*((pi*2)^0.5).*exp(x.^2/2);

Y1(j)=y1*t1'

/n;

%单次实验样本均值

t=ones(1,10);

EY=Y1*t'

/10;

%十次均值

D=abs(EY-Real);

%绝对误差

RD=D/Real;

d=0;

d=d+(Y1(i)-Real)^2;

d=d/(10-1);

EY1(m-V

(1)+1)=EY;

%样本容量为10^m时的样本均值

D1(m-V

(1)+1)=D;

RD1(m-V

(1)+1)=RD;

MSE1(m-V

(1)+1)=d;

%方差

Real,EY1,D1,RD1,MSE1

outf11=[EY1;

D1;

RD1;

MSE1];

%存放样本数字特征

运行结果:

%估计积分

,积分真值为1

m=f11

x.*sin(x)

g1=

pi/2

1

5

n=

10

 

100

1000

10000

100000

Real=

1

EY1=

1.26351.00881.00661.01091.0018

D1=

0.26350.00880.00660.01090.0018

RD1=

MSE1=

0.64390.02050.00280.00060.0001

m=

0.64390.02050.00280.00060.0001

真值为0.8862

M=f11

exp(-x.^2)

+inf

pi^0.5/2%0.8862

4

0.8862

0.93330.90770.88730.8871

0.04700.02150.00100.0009

0.05310.02430.00120.0010

0.19270.01120.00160.0000

M=

第一类二重积分程序代码:

%%%构造示性函数,求不同区域上积分只需更改示性函数

functionI=I2(x,y)

ifx^2+y^2<

=1

%保存为I2.m

%第一类二重积分程序主体

%保存为f12.m

functionoutf12=f12()

g2=input('

输入二元被积函数如exp(x.^2+y.^2):

g2=inline(g2,'

x'

y'

输入样本容量10^V1*10^V1--10^V2*10^V2:

y=randn(1,n);

t2(i)=I2(x(i),y(i));

y2=g2(x,y)*(2*pi).*exp((x.^2+y.^2)/2);

Y2(j)=y2*t2'

EY=Y2*t'

d=d+(Y2(i)-Real)^2;

EY2(m-V

(1)+1)=EY;

D2(m-V

(1)+1)=D;

RD2(m-V

(1)+1)=RD;

MSE2(m-V

(1)+1)=d;

Real,EY2,D2,RD2,MSE2

outf12=[EY2;

D2;

RD2;

MSE2];

,真值为pi*(exp

(1)-1)%5.3981

m=f12

exp(x.^2+y.^2)

g2=

pi*(exp

(1)-1)%5.3981

5.3981

EY2=

4.77025.12505.43175.4041

D2=

0.62790.27320.03350.0060

RD2=

0.11630.05060.00620.0011

MSE2=

3.89650.55640.02470.0017

m=

3.89650.55640.02470.0017

第二类一重积分程序代码:

%第二类一重积分程序主体

%程序保存为f21.m

functionoutf21=f21()

输入一元被积函数如exp(x.^2):

d=d+(Y1(i)-EY)^2;

EY1,MSE1

outf21=[EY1;

%%%%程序保存为f21.m

m=f21

exp(x.^2)

2.07821.65831.50291.4590

0.43150.08890.00570.0008

%用matlab指令求积分

f=inline('

exp(x.^2)'

f=

Inlinefunction:

f(x)=exp(x.^2)

>

S=quadl(f,0,1)

S=

1.4627

第二类二重积分程序代码:

%第二类二重积分函数主体

%,程序保存为f22.m

functionoutf22=f22()

输入二元被积函数如1./(1+x.^4+y.^4).^0.5:

d=d+(Y2(i)-EY)^2;

EY2,MSE2

outf22=[EY2;

%第二类二重积分,程序保存为f22.m

%估计积分

m=f22

1./(1+x.^4+y.^4).^0.5

3.07592.96992.85662.8269

1.32670.09000.00600.0014

1.32670.09000.00600.0014

实验结果整理:

第一类一重积分:

估计积分

积分真值:

1积分估计值:

1.0018

样本容量:

10100100010000100000

样本均值:

1.26351.00881.00661.01091.0018

绝对误差:

0.26350.00880.00660.01090.0018

相对误差:

均方误差:

估计积分

0.8862积分估计值:

0.8871

10100100010000

0.93330.90770.88730.8871

0.04700.02150.00100.0009

0.05310.02430.00120.0010

0.19270.01120.00160.0000

第一类二重积分:

5.3981积分估计值:

5.4041

4.77025.12505.43175.4041

0.11630.05060.00620.0011

第二类一重积分:

积分估计值:

1.4590

2.07821.65831.50291.4590

样本方差:

0.43150.08890.00570.0008

用matlab指令求得积分结果1.4627

第二类二重积分:

2.8269

3.07592.96992.85662.8269

实验结果分析:

从第一类积分看,以估计积分

为例:

随着样本容量的增大,样本均值有接近积分真值的趋势,绝对误差、相对误差、均方误差呈减小趋势;

随着样本容量的增大,样本均值有接近积分真值的趋势,说明估计具有无偏性;

绝对误差、相对误差、均方误差呈减小趋势,说明增大样本容量能提高估计精度;

验证了蒙特卡洛方法估计积分值的可行性,为后续估计第二类积分提供了参考。

从第二类积分看,以估计积分

由于积分真值未知,无法直接比较估计值与积分值值;

但随样本容量增大,样本方差减小,间接反映了估计精度的提高。

蒙特卡洛方法估计值1.4590相比用matlab指令求得的积分结果1.4627,绝对偏差0.0038,相对偏差0.0025。

蒙特卡洛方法估计值与用matlab指令求得的积分结果相互验证。

总结与讨论:

蒙特卡洛方法是基于随机数的一种统计方法。

蒙特卡洛方法估计积分值,总的思想是将积分改写为某个随机变量的数学期望,借助相应的随机数,利用样本均值估计数学期望,从而估计相应的积分值。

为使方法具有一般性,概率密度函数一重积分选择了

,二重积分选用

程序设计方面,本着使程序具有一般性以及方便以后使用的原则,依据问题分四类:

第二类一重积分,第二类二重积分,相应程序设计成四类,并存储为.m文件,用蒙特卡洛方法估计积分值,一重积分只需调用相应程序即可;

二重积分只需依据积分域修改相应示性函数即可调用相应函数求解。

极大方便了同类问题求解。

实验运行结果表明本方案可操作性良好。

遗留问题:

本次实验未设计选用不同概率密度函数,估计精度的比较,留有不同条件下选用何种概率密度函数估计效果最佳?

如何缩短程序运行时间?

如何对程序进行封装?

如何更好评价第二类积分估计值无偏性以及精度?

等问题。

姓名:

王宏辉

班级:

材料43

学号:

2140201060

感谢下载!

欢迎您的下载,资料仅供参考

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1