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年)。布冯针问题:旦帆许多数学概念的激动掘迟渗人心的应用。


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

原文地址: http://outofmemory.cn/yw/12335950.html

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

发表评论

登录后才能评论

评论列表(0条)

保存