Buffon投针-R程序
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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