预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

系统建模与仿真 题目:Buffon实验的仿真 院系:电子工程学院 专业:信息对抗技术 班级:021231 姓名:余颖智 学号:02123021 指导老师:刘洋 完成时间:2015年4月 西安电子科技大学 基于MATLAB的投针实验仿真 摘要 在求证圆周率的过程中经过割圆术后,出现的投针试验以求出圆周率,目前利用MATLAB数学建模的仿真实验,运用到计算机中,简化其随机实验的操作量大,运算慢等特点。不同针距相同实验量运算后得出不同的π,其针距与线间距离相等,所得值接近于π。 目录 TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc416632880"摘要 PAGEREF_Toc416632880\h2 HYPERLINK\l"_Toc416632881"二、 实验内容 PAGEREF_Toc416632881\h4 HYPERLINK\l"_Toc416632882"三、 建模流程图 PAGEREF_Toc416632882\h4 HYPERLINK\l"_Toc416632883"四、程序主要代码 PAGEREF_Toc416632883\h5 HYPERLINK\l"_Toc416632884"五、运行结果 PAGEREF_Toc416632884\h5 HYPERLINK\l"_Toc416632885"六、结论 PAGEREF_Toc416632885\h6  一、实验原理 1777年法国科学家布丰提出的一种计算圆周率的方法——随机投针法,即著名的布丰投针问题。该投针实验主要有如下三个步骤:(一)取一张白纸,在上面画许多条间距为a的平行线;(二)取一根长度为l(l<a)的针,随机地向画有平行直线的纸上掷n次,观察针与直线相交的次数,记为m;(三)计算针与直线相交的概率。而布丰本人证明了这个概率是p=2l/(πa),π为圆周率。 实验内容 运用MATLAB仿真软件进行求圆周率π的模拟。 用GUI设计实验。 设取变量n为实验次数,a为相邻两直线间的距离,l为针长,角Φ为针与直线相交时所呈的夹角,frequency为相交频率,Pi即为所求圆周率。 编写程序代码达到实验目的,求圆周率π。 建模流程图 结束 输出π Pi=2*l/(a*frequency) frequency=counter/n counter=counter+1 判断相交 产生位置随机数x 产生角度随机数Φ 初始化程序 四、程序主要代码 str(handles.edit1,'string');%取得变量,定义变量,变量初始化 n=str2double(str); str=get(handles.edit2,'string'); l=str2double(str); str=get(handles.edit3,'string'); a=str2double(str); counter=0;%变量初始化 phi=0; frequency=0; Pi=0; x=unifrnd(0,a/2,1,n);%产生n个(0,a/2)之间均匀分布的随机数,这里a/2是投针的中点到最近的平行线的距离 phi=unifrnd(0,pi,1,n);%产生n个(0,pi)之间均匀分布的随机数,这里pi是投针与最近平行线的角度 fori=1:n ifx(i)<l*sin(phi(i))/2%只要x小于l*sin(phi(i))/2,则针与平行线相交 counter=counter+1; end end frequency=counter/n;%计算相交的频率,即相交次数比总投针次数 Pi=2*l/(a*frequency)%从相交的频率求Pi 五、运行结果显示 六、结论 由于想要达到实验者自己设置投针次数的目的,故而没有设置精度,即精度由系统决定,导致最终实验结果不是很理想,概率性事件,每次实验都会有一些偏差。没有设置高精度,因此计算速度较为稳定,但是实验次数虽然可以自定,也不能设置得太多,不然电脑也会累的工作不起来,甚至罢工。 每一次实验都是一次提升自己的机会,虽然我不是做的最好的,但是我能保证自己的态度绝对认真。