Matlab模拟Buffon投针实验的程序

Matlab模拟Buffon投针实验的程序,第1张

rand(0.5)

这个是错的。

你如果想产生一个0-0.5的随机数是

0.5*rand(1)

上面括号中的1是指产生一行一列(就是一个),0到1之间的随机数。

==================================

你逗敬的括号有问题

你输的唯卜是中文全角的(,而不是英文的(。全角的比较大啊。

我把两个放在一起,你就知道了指指穗

((

你好好看一下。

改成

if 0.5*rand(1)<=1/2*sin(pi*rand(1))

原文链接:http://tecdat.cn/?p=13033

介绍

布丰投针是几何概率领域中最古老的问题之一。它最早是在1777年提出的。它将针头掷到有平行线的纸上,并确定针和其中一条平行线相交的可能性。令人惊讶的结果是概率与pi的值直接相关。

R程序将根据上段所述的情况估算pi的值并使用gganimate进行动态可视化。

第1部分

对于A部分,我们创建一个数据帧,该数据帧将在3个不同的区间上生成随机值,这些区间将代表x,y的范围以及每个落针点的角度。这是一个易于实现的随机数情况,需要使用runif函数。此功能要求输入数量,后跟一个间隔。生成数字后,我们会将值保存到数据判脊框中。

rneedle <- function(n) {x = runif(n, 0, 5)y = runif(n,0, 1)angle = runif(n,-pi, pi) #从-180到180的角度values<-data.frame(cbind(x, y, angle))return(values)}values<-rneedle(50)#检查是否生成50×3矩阵values#我们的数据帧已经成功生成。

x           y      angle1  4.45796267 0.312440618  1.37184652  3.43869230 0.462824677  2.97383673  2.55561523 0.596722445 -2.96382854  3.68098572 0.670877506 -0.68605025  0.03690118 0.202724803 -0.33151416  4.64979938 0.180091416 -0.32930937  4.92459238 0.172328845 -0.52211338  3.50660347 0.752147374  2.91002219  2.03787919 0.167897415 -0.321383310 0.38647133 0.539615776 -0.118898211 3.28149935 0.102886770 -1.631825612 3.68811892 0.765077533  1.245903713 1.52004894 0.682455494 -0.421980214 3.76151379 0.508555610  0.1082087...

第2部分

我们绘制第一部分中的针。重要的是不要在这个问题上出现超过2条水平线。它使我们可以进行检查以了解此处描绘的几何特性的一般概念。话虽如此,让我们注意我们决定在每个方向上将图形扩展1个单位。原因是想象一个针尾从y = 1开始,其角度为pi / 2。我们需要假设该方向的范围最大为2。

plotneedle(values)

第3部分

在下面,将基于阅读布冯针和基本几何原理的知识,查看pi的估算值。

buffon(values)

第4部分

运行代码后,我们收到以下答案。

>buffon(X)

[1] 3.846154

set.seed(10312013)X <- rneedle(50)plotneedle(X)buffon(X)

>buffon(X)[1] 3.846154

第5部分

如前几节所述,当我们投掷更多的针头时,我们期望以最小的不确定性获得更准确的答案。从Approxpi函数运行代码后,我们收到了平均值= 3.172314和方差0.04751391的值。对于这样一个简单的实验,它对pi进行了很高的估计。

Approxpi(500)mean(Approxpi(500))var(Approxpi(500))

>mean(Approxpi(500))[1] 3.172314>var(Approxpi(500))[1] 0.04751391

接下来对模拟次数从500~600的预测进行动态可视化,红色表示针投放到了直线上:

参考资料

Schroeder,L.(1974年)。布冯针问题:旦帆许多数学概念的激动掘迟渗人心的应用。

18世纪,法国数学家布丰和勒可莱尔提出的“投针问题”,记载于布丰1777年出版的著作中:“在平面上画有一组间距为d的平行线,将一根长度为l(l<d)的针任意掷在这个平面上,球此针与平行线中任一条相交的频率。”布丰本人证明了,这个概率是

p=2l/(πd) π为圆周率

利用这个公式可以用概率的方法得到圆周率的近似值。下面是一些资料

实验者 年代 投掷次数 相交次数 圆周率估计值

沃尔夫 1850 5000 25313.1596

史密斯 1855 3204 12193.1554

德摩根 1680 600 3833.137

福克斯 1884 1030 4893.1595

拉泽里尼 1901 3408 18083.1415929

赖纳 1925 2520 8593.1795

布丰投针实验是第灶皮一个用几何形式表达概率问题渗塌的例子,他首次使用随机实验处理确定性数学问题,为概率论的发展起到一定的推动作用。

像投针实验一样,用隐喊差通过概率实验所求的概率来估计我们感兴趣的一个量,这样的方法称为蒙特卡罗方法(Monte Carlo method)。蒙特卡罗方法是在第二次世界大战期间随着计算机的诞生而兴起和发展起来的。这种方法在应用物理、原子能、固体物理、化学、生态学、社会学以及经济行为等领域中得到广泛利用。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/12394455.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存