Buffon投针-R程序

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

Buffon投针-R程序

程序名:buffon.R

#应用R软件对buffon投针实验进行模拟pi的取值

#先编写“buffon”函数,

buffon <- function(n, l=0.8, a=1){

k<-0

theta <- runif(n, 0, pi); x <- runif(n, 0, 1/2)

for (i in 1:n){

if (x[i]<= l/2*sin(theta[i]))

k <- k+1

}

2*l*n/(k*a)##函数最终输出的值,比如当给定参数n时,输出2*l*n/(k*a)

}

调用已编号的R程序buffon.R进行模拟,取n=100000,

l=0.8,a=1。

>source("buffon.R")

>buffon(100000,l=0.8,a=1)##直接调用刚刚编写好的“buffon”函数,

当然,l和a的取值由于在函数编写中已经给出了,因此这里不必再给出,

可以直接用buffon(100000)。

[1]3.142986

还可以更改n的数值,与l、a的数值(见表4-1)

> buffon(100000,l=0.8,a=1)

[1] 3.119334

> buffon(1000000,l=0.8,a=1) [1] 3.136941

> buffon(10000000,l=0.8,a=1) [1] 3.142697

相关文档
最新文档