投针实验详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、问题的提出
在人类数学文化史中,对圆周率π精确值的追求吸引了许多学者的研究兴趣。

在众多的圆周率计算方法中,最为奇妙的是法国物理学家布丰(Boffon)在1777年提出的“投针实验”。

与传统的“割圆术”等几何计算方法不同的是,“投针实验”是利用概率统计的方法计算圆周率的值,进而为圆周率计算开辟了新的研究途径,也使其成为概率论中很有影响力的一个实验。

本节我们将借助于MATLAB仿真软件,对“投针实验”进行系统仿真,以此来研究类比的系统建模方法和离散事件系统仿真。

二、系统建模
“投针实验”的具体做法是:在一个水平面上画上一些平行线,使它们相邻两条直线之间的距离都为a;然后把一枚长为l(0<l<a)的均匀钢针随意抛到这一平面上。

投针的结果将会有两种,一种是针与这组平行线中的一条直线相交,一种是不相交。

设n为投针总次数,k为相交次数,如果投针次数足够多,就会发
现公式2ln
ak
计算出来的值就是圆周率π。

当然计算精度与投针次数有关,一般情
况下投针次数要到成千上万次,才能有较好的计算精度。

有兴趣的读者可以耐心地做一下这个实验。

90
)
相交
为了能够快速的得到实验结果,我们可以通过编写计算机程序来模拟这个实验,即进行系统仿真。

所谓的系统仿真是指以计算机为工具,对具有不确定性因素的、可模型化的系统的一种研究方法。

建立能够反映实验情况的数学模型是系统仿真的基础。

系统建模中需解决两个问题,一个是如何模拟钢针的投掷结果,
另一个是如何判断钢针与平行线的位置关系。

这里,设O 为钢针中点,y 为O 点与最近平行线之间的距离,θ为钢针与平行线之间的夹角(0180θ≤<)。

首先,由于人的投掷动作是随机的,钢针落下后的具体位置也是随机的,因此可用按照均匀分布的两个随机变量y 和θ来模拟钢针投掷结果。

其次,人工实验时可以用眼睛直接判断出钢针是否与平行线相交,而计算机仿真实验则需要用数学的方法来判别。

如下图所示,如果y 、l 和θ满足关系式
1sin 2
y l θ≤,那么钢针就与平行线相交,否则反之,进而可以判断钢针与平行线的位置关系。

三、 基于MATLAB/SIMULNIK 的仿真实验
在系统模型基础上,我们可以绘制出程序的流程图如下所示。

根据流程图,在MATLAB 环境下可编写程序完成计算机系统仿真实验,在这
里我们设定平行线之间的距离为40cm a =,钢针长为30cm L =,计算精度0.00001pi επ=-=,这些参数可以根据实际情况做以修改,下面是仿真程序:
%投针实验:计算机模拟投针实验,计算圆周率%
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次,圆周率计算结果为。

当然,由于“投掷动作”具有随机性,因此每次“投针实验”的仿真结果不一定相同。

为使计算结果更趋近于π,可以减小误差ε的取值来提高计算精度,当然仿真时间也会随之变长。

这里对投针实验的基本原理做一简单解释。

首先,将一根钢丝弯成一个圆圈,使其直径恰好等于平行线间的距离a 。

可以想象得出,对于这样的圆圈来说,投掷结果不外乎有两种:一种是与一条平行线相交,一种是与相邻两根平行线相切,这两种情况都将导致圆圈和平行线有两个交点。

因此,如果圆圈扔下的次数为n ,那么相交的交点数必为2n 。

然后,将圆圈拉直变成一条长为a π的钢针。

显然,这样的钢针扔下时与平行线相交的情形要比圆圈复杂得多,可能没有交点,有1个交点,2个交点,3个交点,4个交点。

由于圆圈和拉直后的钢针的长度相同,根据机会均等的原理,当它们投掷次数足够多时,两者与平行线组交点的总数将是一样的。

换句话说,当长度为a π的钢针扔下无穷多次后,与平行线相交的交点总数也为2n 。

最后,讨论钢针长为l 的情形。

由于钢针与平行线相交的交点总数k 与钢针长度l 成正比,则存在下列比例关系式:2:k l n a π=,进而可求得2ln ak
π=。

四、结论
从本质上看,上述投针实验具有朴素的离散事件系统仿真思想。

如果按照布丰的做法,进行成千上万次的投针实验和手工计算,势必要消耗大量的人力、物力和财力。

而通过类比的方法,对实验进行系统建模,在此基础上使用计算机进行系统仿真,以此来解决“投针问题”将变得非常简单。

从中我们可得出以下结论:
首先,有意识地运用类比方法将有助于掌握复杂事物的内在规律,显著提升数学建模能力。

数学建模的过程蕴含着许多重要的数学思想和方法,其中类比方法是最重要也是最有效的一种。

类比建模的过程可表述为,根据已掌握的对客观事物的经验与认识,通过抽象分析运用数学语言、数学符号、数学公式等数学概念来表达这些量,从多种复杂因素中抽取主要因素,忽略次要因素,抓住事物的
本质特征,运用一系列等式或不等式来表达各个量之间的关系,建立起研究对象的数学模型。

其次,在建好的数学模型基础上,通过计算机进行系统仿真可对研究对象进行快速有效的模拟。

20世纪40年代以后,随着电子计算机的出现和发展,人们可以选择适当的软件和编程方法,使用计算机来模拟仿真一些实验和计算。

计算机具有计算速度快和存储容量大的优点,采用系统仿真技术可以代替许多实际上非常庞大而复杂的实验,并将实验结果快速的进行运算处理和结果分析,上述“投针实验”已经证明了这一点。

相关文档
最新文档