控制系统数字仿真与CAD 第3版 教学课件 作者 张晓华 主编 投针实验详解.docVIP

控制系统数字仿真与CAD 第3版 教学课件 作者 张晓华 主编 投针实验详解.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
问题的提出 在人类数学文化史中,对圆周率精确值的追求吸引了许多学者的研究兴趣。在众多的圆周率计算方法中,最为奇妙的是法国物理学家布丰(Boffon)在1777年提出的“投针实验”。与传统的“割圆术”等几何计算方法不同的是,“投针实验”是利用概率统计的方法计算圆周率的值,进而为圆周率计算开辟了新的研究途径,也使其成为概率论中很有影响力的一个实验。 本节我们将借助于MATLAB仿真软件,对“投针实验”进行系统仿真,以此来研究类比的系统建模方法和离散事件系统仿真。 系统建模 “投针实验”的具体做法是:在一个水平面上画上一些平行线,使它们相邻两条直线之间的距离都为a;然后把一枚长为l(0la)的均匀钢针随意抛到这一平面上。投针的结果将会有两种,一种是针与这组平行线中的一条直线相交,一种是不相交。设n为投针总次数,k为相交次数,如果投针次数足够多,就会发现公式计算出来的值就是圆周率。当然计算精度与投针次数有关,一般情况下投针次数要到成千上万次,才能有较好的计算精度。有兴趣的读者可以耐心地做一下这个实验。 为了能够快速的得到实验结果,我们可以通过编写计算机程序来模拟这个实验,即进行系统仿真。所谓的系统仿真是指以计算机为工具,对具有不确定性因素的、可模型化的系统的一种研究方法。建立能够反映实验情况的数学模型是系统仿真的基础。系统建模中需解决两个问题,一个是如何模拟钢针的投掷结果,另一个是如何判断钢针与平行线的位置关系。这里,设O为钢针中点,y为O点与最近平行线之间的距离,为钢针与平行线之间的夹角()。 首先,由于人的投掷动作是随机的,钢针落下后的具体位置也是随机的,因此可用按照均匀分布的两个随机变量y和来模拟钢针投掷结果。 其次,人工实验时可以用眼睛直接判断出钢针是否与平行线相交,而计算机仿真实验则需要用数学的方法来判别。如下图所示,如果y、l和满足关系式,那么钢针就与平行线相交,否则反之,进而可以判断钢针与平行线的位置关系。 基于MATLAB/SIMULNIK的仿真实验 在系统模型基础上,我们可以绘制出程序的流程图如下所示。 根据流程图,在MATLAB环境下可编写程序完成计算机系统仿真实验,在这里我们设定平行线之间的距离为,钢针长为,计算精度,这些参数可以根据实际情况做以修改,下面是仿真程序: %投针实验:计算机模拟投针实验,计算圆周率% clear format long a=40,L=30;n=0;k=0;pii=0; %主要参数值 while(abs(pii-pi)0.00001) %设置计算精度 n=n+1; y=1/2*a*rand(1); %生成[0,a)区间的随机数 q=pi*rand(1); %生成[0,180)区间的随机数 if(y1/2*L*sin(q)) %判断钢针与平行线是否相交 k=k+1; pii=2*L*n/(a*k); %计算圆周率 end disp(此次实验情况:) disp(投掷次数:) disp(n) %显示投掷次数 disp(相交次数:) disp(k) %显示钢针与平行线相交次数 disp(实验结果:pi=) disp(pii) %显示计算出的圆周率值 end 通过程序中的注释可以很好的理解程序内容。程序运行时,将显示出每次的“投针实验”情况,即显示当前总投掷次数、钢针与平行线相交次数以及由此计算出来的圆周率值。当满足所设置的精度要求后,程序停止运行,此时显示出当钢针投掷 276427次后,所计算出来的圆周率值满足精度要求,此时钢针与平行线相交131984次,圆周率计算结果为3.14159670869196。当然,由于“投掷动作”具有随机性,因此每次“投针实验”的仿真结果不一定相同。为使计算结果更趋近于,可以减小误差的取值来提高计算精度,当然仿真时间也会随之变长。 这里对投针实验的基本原理做一简单解释。首先,将一根钢丝弯成一个圆圈,使其直径恰好等于平行线间的距离a。可以想象得出,对于这样的圆圈来说,投掷结果不外乎有两种:一种是与一条平行线相交,一种是与相邻两根平行线相切,这两种情况都将导致圆圈和平行线有两个交点。因此,如果圆圈扔下的次数为n,那么相交的交点数必为2n。 然后,将圆圈拉直变成一条长为的钢针。显然,这样的钢针扔下时与

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档