投针实验详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、 问题的提出
在人类数学文化史中,对圆周率π精确值的追求吸引了许多学者的研究兴趣。在众多的圆周率计算方法中,最为奇妙的是法国物理学家布丰(Boffon )在1777年提出的“投针实验”。与传统的“割圆术”等几何计算方法不同的是,“投针实验”是利用概率统计的方法计算圆周率的值,进而为圆周率计算开辟了新的研究途径,也使其成为概率论中很有影响力的一个实验。
本节我们将借助于MATLAB 仿真软件,对“投针实验”进行系统仿真,以此来研究类比的系统建模方法和离散事件系统仿真。
二、 系统建模
“投针实验”的具体做法是:在一个水平面上画上一些平行线,使它们相邻两条直线之间的距离都为a ;然后把一枚长为l (0 计算出来的值就是圆周率π。当然计算精度与投针次数有关,一般情况下投针次数要到成千上万次,才能有较好的计算精度。有兴趣的读者可以耐心地做一下这个实验。 为了能够快速的得到实验结果,我们可以通过编写计算机程序来模拟这个实验,即进行系统仿真。所谓的系统仿真是指以计算机为工具,对具有不确定性因素的、可模型化的系统的一种研究方法。建立能够反映实验情况的数学模型是系统仿真的基础。系统建模中需解决两个问题,一个是如何模拟钢针的投掷结果,另一个是如何判断钢针与平行线的位置关系。这里,设O 为钢针中点,y 为O 点与最近平行线之间的距离,q 为钢针与平行线之间的夹角(0180q ≤<)。 首先,由于人的投掷动作是随机的,钢针落下后的具体位置也是随机的,因此可用按照均匀分布的两个随机变量y 和q 来模拟钢针投掷结果。 其次,人工实验时可以用眼睛直接判断出钢针是否与平行线相交,而计算机仿真实验则需要用数学的方法来判别。如下图所示,如果y 、l 和q 满足关系式 1sin 2 y l q ≤,那么钢针就与平行线相交,否则反之,进而可以判断钢针与平行线的位置关系。 三、 基于MATLAB/SIMULNIK 的仿真实验 在系统模型基础上,我们可以绘制出程序的流程图如下所示。 根据流程图,在MATLAB 环境下可编写程序完成计算机系统仿真实验,在这里我们设定平行线之间的距离为40cm a =,钢针长为30cm L =,计算精度0.00001pi e π=-=,这些参数可以根据实际情况做以修改,下面是仿真程序: %投针实验:计算机模拟投针实验,计算圆周率% clear format long a=40,L=30;n=0;k=0;pii=0; %主要参数值 while(abs(pii-pi)> %设置计算精度 n=n+1; y=1/2*a*rand(1); %生成[0,a)区间的随机数 q=pi*rand(1); %生成[0,180)区间的随机数 if(y<1/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次,圆周率计算结果为。当然,由于“投掷动作”具有随机性,因此每次“投针实验”的仿真结果不一定相同。为使计算结果更趋近于π,可以减小误差e的取值来提高计算精度,当然仿真时间也会随之变长。 这里对投针实验的基本原理做一简单解释。首先,将一根钢丝弯成一个圆圈,使其直径恰好等于平行线间的距离a。可以想象得出,对于这样的圆圈来说,投掷结果不外乎有两种:一种是与一条平行线相交,一种是与相邻两根平行线相切, 这两种情况都将导致圆圈和平行线有两个交点。因此,如果圆圈扔下的次数为n ,那么相交的交点数必为2n 。 然后,将圆圈拉直变成一条长为a π的钢针。显然,这样的钢针扔下时与平行线相交的情形要比圆圈复杂得多,可能没有交点,有1个交点,2个交点,3个交点,4个交点。由于圆圈和拉直后的钢针的长度相同,根据机会均等的原理,当它们投掷次数足够多时,两者与平行线组交点的总数将是一样的。换句话说,当长度为a π的钢针扔下无穷多次后,与平行线相交的交点总数也为2n 。 最后,讨论钢针长为l 的情形。由于钢针与平行线相交的交点总数k 与钢针长度l 成正比,则存在下列比例关系式:2:k l n a π=,进而可求得2ln ak π= 。 四、结论 从本质上看,上述投针实验具有朴素的离散事件系统仿真思想。如果按照布丰的做法,进行成千上万次的投针实验和手工计算,势必要消耗大量的人力、物力和财力。而通过类比的方法,对实验进行系统建模,在此基础上使用计算机进行系统仿真,以此来解决“投针问题”将变得非常简单。从中我们可得出以下结论: 首先,有意识地运用类比方法将有助于掌握复杂事物的内在规律,显著提升数学建模能力。数学建模的过程蕴含着许多重要的数学思想和方法,其中类比方法是最重要也是最有效的一种。类比建模的过程可表述为,根据已掌握的对客观事物的经验与认识,通过抽象分析运用数学语言、数学符号、数学公式等数学概念来表达这些量,从多种复杂因素中抽取主要因素,忽略次要因素,抓住事物的本质特征,运用一系列等式或不等式来表达各个量之间的关系,建立起研究对象的数学模型。 其次,在建好的数学模型 基础上,通过计算机进行系统仿真可对研究对象进行快速有效的模拟。20世纪40年代以后,随着电子计算机的出现和发展,人们可以选择适当的软件和编程方法,使用计算机来模拟仿真一些实验和计算。计算机具有计算速度快和存储容量大的优点,采用系统仿真技术可以代替许多实际上非常庞大而复杂的实验,并将实验结果快速的进行运算处理和结果分析,上述“投针实验”已经证明了这一点。