概率论实验报告.docx
《概率论实验报告.docx》由会员分享,可在线阅读,更多相关《概率论实验报告.docx(10页珍藏版)》请在冰豆网上搜索。
概率论实验报告
概率论数学实验报告
.实验目的
1.初步了解蒙特卡洛算法及其用途
2.利用蒙特卡洛算法计算积分值并与其真实之进行比较
.实验原理:
MonteCarlo步骤:
1.依据概率分布ψ(x)不断生成随机数x,并计算f(x)
由于随机数性质,每次生成的x的值都是不确定的,为区分起见,我们可以给生成的x赋予下标。
如xi表示生成的第i个x。
生成了多少个x,就可以计算出多少个f(x)的值
2.误差分析
MonteCarlo方法得到的结果是随机变量,因此,在给出点估计后,还需要给出此估计值的波动程度及区间估计。
严格的误差分析首先要从证明收敛性出发,再计算理论方差,最后用样本方差来替代理论方差。
.实验内容
1.估计以下积分值,并与真值比较
(1)
MATLAB语言如下:
>>x=rand(1000,1)+2;
y=x.^2;
i=ones(1,1000);
z=i*y./1000
z=
6.3921
其真值为19/3≈6.3333,相对百分误差为0.92%
求的图像;
随机数截图;
X随机数
Y随机数
>>
I
(2)
>>x=rand(1000,1).*3.1415/2;
y=x.*sin(x);
i=3.14/2*ones(1,1000);
z=i*y./1000
z=
0.9976
真值为1,求的相对百分误差为0.19%
>>
X随机数
Y随机数
(3)
,
所以满足正态分布,期望为0,方差为0.5,概率密度为f(x)=
clear;clf;
ans=0;
j=0;
form=1:
1000
i=randn(1,1);
j=sqrt(pi/2)*exp(-i*i/2);
ans=ans+j;
holdon
plot(i,j,'r+')
fprintf('j=%.4f\n',j)
end
fprintf('ans=%.4f\n',ans/1000);
ans=0.9280
>>
截图如下
真值为
/2≈0.886,误差为4.1%
2.估计以下积分值,并对误差进行估计
(1)
clear;clf;
x=0;
y=0;
j=0;
k=1;
a=1:
1000
d=0;
form=1:
1000
i=randn(1,1);
if(i<=1&i>=-1)
j=sqrt(pi/2)*exp(i*i*3/2);
a(k)=j;
k=k+1;
y=x+j;
end
holdon
plot(i,j,'r+')
fprintf('j=%.8f\n',j)
end
k=k-1;
key=y/10000;
fprintf('y=%.4f\n',key);
form=1:
k
y=y+(a(k)-key)*(a(k)-key);
end
d=y/(k-1);
fprintf('d=%.4f\n',d);
ans=0.1442
d=1.4112
>>
截图如下
求的真值为1.4627,所以误差为3.6%;
方差为0.1442;
(2)
x=0;
y=0;
j=0;
k=1;
a=1:
1000
d=0;
form=1:
1000
i=2*rand(1,1);
j=2/sqrt(1+i*i);
a(k)=j;
k=k+1;
x=x+j;
holdon
plot(i,j,'r+')
fprintf('j=%.8f\n',j)
end
k=k-1;
key=x/1000;
fprintf('ans=%.4f\n',key);
form=1:
k
y=y+(a(k)-key)*(a(k)-key);
end
d=y/(k-1);
fprintf('d=%.4f\n',d);
>>
ans=1.4387
d=0.1244
截图为:
求的真值为1.44,所以误差为0.71%;
方差为0.1244;
.实验总结:
在对实验中问题的求解中,我们发现计算机每次的运行结果都是不一样的,但是结果往往与理论值偏差不大。
这也是计算机产生随机数的一个特点:
每次都在一定范围内波动,每次都不完全一样