- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验课程名称 统计计算
实验项目名称 随机模拟方法求圆周率及计算定积分
年
级
2009 级
专
业
应用数学 计算科学
学生
姓名
理学院
实验时间: 2012年5月9日
姓 名
学 号
实验组
五
学生所在学院:理学院
专业:应用数学
班级:091
z
PAGE
PAGE #
实验时间
2012.5.9 指导教师 成绩
实验项目名称
Buffon随机模拟 随机模拟求定积分
实验目的及要求:
掌握Buffon随机模拟的原理及算法
掌握随机投点法、平均值法、重要抽样法、分层抽样法等方法计算定积分
实验(或算法)原理:
理论依据:客观世界的某些现象之间存在着某种相似性,因而可以从一种现象岀发研究另一种现象。比 如在分析一个系统时,可先构造一个与该系统相似的模型,通过在模型上进行实验来研究原模型,这就是 模拟。随机系统可以用概率模型来描述并进行实验,称为随机模拟方法 。
步骤分为(1 )建立恰当模型 (2)设计实验方法 (3)从一个或者多个概率分布中重复生成随机数
(4)分析模拟结果
实验硬件及软件平台:
计算机 MATLAB VC网络
实验步骤:
复习第四章有关知识,熟悉 Buffon投针试验的原理及各种求定积分的方法
运用MATLAB编写相关程序,输入代码
观察实验结果,进行讨论
撰写实验报告
实验内容(包括实验具体内容、算法分析、源代码等等) :
Buffon投针试验求圆周率:
function y=Buffon(a,l,N) //a 为平行线间的距离;1为针长;N为投针次数
M=0;
i=0;
while i=N
xi=rand()*a/2;
yi=ra nd()*pi;
if xi=l/2*sin(yi)
M=M+1;
end
i=i+1;
end
phi=2*l*N/(a*M);
y=phi;
end
随机模拟计算定积分1
1
exdx
1
随机投点法:
function y=R(N)
n=0;
m=0;
while n=N
kesi=rand();
eta=rand();
if eta=(exp(-1+2*kesi)-exp(-1))/(exp(1)-exp(-1))
m=m+1;
end
n=n+1;
end
y=2*(exp(1)-exp(-1))*m/N+2*exp(-1)
end
平均值估计法:
function y=avge(N)
i=0;
s=0;
while i=N
r=rand();
f=(exp(-1+2*r)-exp(-1))/(exp(1)-exp(-1));
s=s+f;
i=i+1;
end
zeta=1/N*s;
y=2*(exp(1)-exp(-1))*zeta+2*exp(-1);
End
重要抽样法:
function y=zhongyao(N) // 第一步
i=0;
s=0;
while i=N
r=rand();
x=sqrt(3* 叶1)-1;
1exdx积分值0
1exdx积分值
0
i=i+1;
end
zeta=3/(2*N)*s;
y=zeta;
end
第二步
function y=zhongyao1(N) i=0;
s=0;
s=0;
while i=N
r=rand(); x=sqrt(3* 叶1)-1;
s=s+exp(-x)/(1+x);
1
//重要抽样法计算[0,1]区间上| e xdx积分值,即计算
0
i=i+1; //[-1,0]
上I 0exdx积分值
1
end
zeta=3/(2*N)*s;
y=zeta;
End
第三步:
function y=zhongyao2(N)
1
y=zhongyao(N)+zhongyao1(N); //将两部分积分值相加得到题目要求的几份值 I exdx
y=zhongyao(N)+zhongyao1(N); //
End分层抽样法:
End
分层抽样法:
第一步:
f-jnttior y=f*nc^r£l N1
~F
function y=fenzenE2(M:
阳=2/临;
Ni=2/5=iN;
N2=3/5*N:
N2=3B*B:
sL-0 .
sJ=O:
32=0:
r
for i=0;Nl
E
for i=U:Nt
r=rand C1 ;
if r-3. 5
if r=0.5
sl=sl+ejcjz ⑴:
sl=31-t^xp (-r);
else
r l=rxQ*5;
rl=r*0. 5
Sl.-=sl+eitf (rl):
sl-sl+^xp(-r1),
erjd
end
pnd
Mid
E
fir j=Q:N2
E
fo£ j-O:Nl
r=randC :
it 5
if r=0,5
炽和:
□?«32+^kp(-r);
lsi
«ls*
rl=r»0,5+0.5:
il=r
原创力文档


文档评论(0)