如何用r语言实现布丰投针问题?

Python014

如何用r语言实现布丰投针问题?,第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      angle

1  4.45796267 0.312440618  1.3718465

2  3.43869230 0.462824677  2.9738367

3  2.55561523 0.596722445 -2.9638285

4  3.68098572 0.670877506 -0.6860502

5  0.03690118 0.202724803 -0.3315141

6  4.64979938 0.180091416 -0.3293093

7  4.92459238 0.172328845 -0.5221133

8  3.50660347 0.752147374  2.9100221

9  2.03787919 0.167897415 -0.3213833

10 0.38647133 0.539615776 -0.1188982

11 3.28149935 0.102886770 -1.6318256

12 3.68811892 0.765077533  1.2459037

13 1.52004894 0.682455494 -0.4219802

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

最受欢迎的见解

1.R语言动态图可视化:如何、创建具有精美动画的图

2.R语言生存分析可视化分析

3.Python数据可视化-seaborn Iris鸢尾花数据

4.r语言对布丰投针(蒲丰投针)实验进行模拟和动态

5.R语言生存分析数据分析可视化案例

6.r语言数据可视化分析案例:探索brfss数据数据分析

7.R语言动态可视化:制作历史全球平均温度的累积动态折线图动画gif视频图

8.R语言高维数据的主成分pca、 t-SNE算法降维与可视化分析案例报告

9.python主题LDA建模和t-SNE可视化

信息技术是当今世界发展最快的高新技术, 它正推动着

全球经济朝着以计算机及信息网络为基础的信息化方向发

展。农业信息化已成为现代农业的重要标志。我国农业开始

从传统农业向现代农业转变, 信息技术目前被广泛应用在农

业各个领域,

一、信息技术

信息技术是应用信息科学的原理和方法, 同信息打交道,

以扩展人类信息器官的功能的技术。它集通信( C om m unication)

、计算机( C om puter) 和控制( C ontrol) 技术于一体, 国

外又称之为“3C ”技术, 其内容包括信息接受技术、信息传递

技术、信息处理技术及信息控制技术。信息技术的四大内容

中, 信息传递技术和信息处理技术是整个信息技术的核心,

而信息接受技术、信息控制技术是核心与外部世界的接口,

四者构成一个完整的功能体系, 并与人的信息器官及其功能

系统相对应。其内容互相综合, 已形成多项应用开发技术, 如

数据库技术、人工智能、专家系统、遥感技术、地理信息系统、

全球定位系统、计算机辅助决策系统、自动控制技术、多媒体

技术、计算机网络技术等, 它们渗透到农业的各个方面, 充分

展示了信息技术强大的生命力和广阔的应用前景。

二、信息技术在农业中的主要应用

(一)对农情的监测。农情监测的主要任务是监测耕地的

变化、粮棉作物的面积、长势、灾害与产量。由于信息技术的

发展,“3S”技术( 遥感技术, 地理信息系统, 全球定位系统) 已

应用于国家和全球尺度的农情监测。

1、自然灾害监测。在G IS 技术支持下, 可实现对遥感获取

的灾情信息与地面现实信息的有机结合, 进行干旱、洪涝、森

林灾情、雪灾、水土侵蚀、病虫害等方面的动态监测。由于遥

感与地理信息技术能及时准确地获取有关信息, 已广泛应用

于信息采集和信息处理, 实现灾前预警、灾情监控、灾后评

估。目前我国主要用于洪灾、作物病虫灾害、旱灾、土地荒芜

沙化监测、森林火灾等。

2、农业估产及生长动态监测。信息技术在农业生产中的

应用主要在四个方面, 即作物生长模拟模型、农业专家系统、

农业生产实时控制系统及作物遥感估产。作物生长模拟是利

用专业知识和数学模型, 通过计算机分析模拟作物生长过

程, 协助解决多样化和不确定问题, 作物估产(含生长势监测)

历来就是人们十分关注的农业情报。美国于1975- 1979 年完

成了大面积作物清查试验(LA C I 计划), 并在国内推行以

Landsat的T M 资料为基础的面积框图抽样遥感估产取得成

功。我国于1983- 1985 年就应用Landsat资料进行了小麦遥

感综合测产研究。专家系统是以知识为基础, 在特定问题领

域内能像人类专家那样解决复杂现实问题的计算机系统。我

国自80 年代开始, 已研制出近40 种专家系统, 如砂礓黑土小

麦施肥专家系统, 水稻主要病虫害诊治专家系统, 小麦、玉

米、桑蚕品种选育专家系统, 农业气象专家系统等。农业生产

实时控制系统主要用于灌溉, 耕耘作业, 果实收获, 畜牧生产

过程自动控制, 农产品加工自动化控制及农业生产工厂化。

我国还利用遥感与地理信息系统技术, 研制出耕地变化监测

系统, 棉花种植面积遥感调查系统, 作物产量气候分析预报

系统, 作物短、中、长期预报模型, 小麦、水稻遥感估产信息系

统等。这些成果的实用化将极大地推动我国农业生产管理的

现代化、信息化。

3、农业环境监测。随着人口的增长, 人类对资源的掠夺式

的开发, 造成了严重的环境问题, 影响了农业生产。信息技术

快速查清各类农业资源及其分布, 了解和掌握环境状况对

有限的农业资源及环境变化进行有效监测预测各种措施对

农业资源及环境带来的可能影响, 实现资源合理开发利用,

保护生态环境。

(二)农产品质量检测。我国加入W T O 后, 农产品面临着

国际化竞争, 农产品能否进入国际市场, 取决于产品品质的

好坏, 因此, 农产品品质的检测就显得非常重要。1995 年美国

成功研制出M erling 高速高频计算机视觉水果分级系统, 用

于苹果、梨、桃等的水果的分等定级和品质监测。我国农业工

作者为了提高农产品质量, 应用现代信息技术致力于产品品

质检测系统的研究, 这些系统的研究与应用能够及时地检测

产品品质质量指标, 分析模拟品质好坏。生产者根据这些信

息及时地控制或调整化学肥料和农药的施用, 避免化肥和农

药的不必要施用而造成在产品中的残留, 影响产品品质。

(三)农地分等和土壤养分管理。农用地分等定级是对决

定土壤生产力的内在属性和影响土壤生产力的外部环境条

件进行综合评价, 用量化指标确定土地质量等级, 为制定有

关农业政策、综合治理中、低土壤, 建立高产稳产田、促进农

业持续、稳定和协调发展提供依据。G IS 强大的空间数据分析

处理能力和制图功能为完成农用地分等提供了技术支持。

(四)在管理和经营决策中的应用。我国正在抓紧建设国

家公用数字通信网, 国家公用经济信息基干通信网等国家信

息国道的建设, 全面实施" 金" 字工程。国家农业信息网络已

具规模, 信息扶贫致富工程正在实施, 农业部自1994 年开始,

在中国农业信息网的基础上, 逐步开发农产品产销信息系统

网络, 这些网络的建成将改变我国农业信息服务体系的环

境, 有利于各级政府部门对农业发展的宏观决策指导, 提高

办公自动化水平, 快速准确向农村、农户提供全方位的信息

服务。农户只要有一台微机终端, 通过网络就能够及时获得

农业法规、农业政策、市场行情、产品销售等信息, 合理地进

行农资购置与产品销售, 促进农村市场繁荣和经济增长。

(五)在农业研究及技术推广中的应用。我国已建成农业

科研项目计算机管理系统( A R IC M S) , 中国农业文献数据库,

中国农业科技成果库, 中国农业研究项目数据库, 农业实用

技术数据库等, 同时还引进了世界上几个最主要的农业数据

库, 目前, 全世界建立了4 个大型的农业信息数据库, 即联合

国粮农组织的农业数据库(A G R IS)、国际食物信息数据库(IFIS)

、美国农业部农业联机存取数据库(A G R IC O LA )、国际农

业与生物科学中心数据库(C A B I)。我国除引进以上世界大型

数据库外, 自己建立了数十个农林数据库。这些数据库的运

行和服务都取得了社会效益和经济效益, 为农业生产提供了

大量农业信息资源和科学技术, 推动了生产的发展。

三、我国信息技术在农业应用中存在的问题

(一)农民文化素质低,高层农业信息技术开发人才缺乏,

信息化意识和利用信息的能力不强。信息技术是一项高科

技, 其开发应用需要高科技人才。由于农民的文化素质较低,

农民对信息的利用能力差, 成为信息农业实施的一大障碍。

(二)信息农业成本过高,信息农业普及难度大。信息农业

以信息技术为支撑, 信息农业技术装备如监测仪、计算机、

G IS 软件、G PS 装置等设备价格昂贵。全国农民人均纯收入仅

2210.34 元, 农民无力购买昂贵的技术装备, 使信息农业难以

推广。

(三)农业信息化基础工作水平低,信息化、网络化程度

低。我国已建成一批农业信息资源库, 但其数量和质量均远

不足以形成信息产业。农业信息技术总体水平不高,信息化、

网络化程度低.主要表现在两个方面: 一是我国虽然已全面

起动" 金" 字工程, 加快各种信息网及高速信息公路的建设,

但不同地区发展很不平衡, 我国局域网连接的PC 数目平均

水平很低, 只有12 个, 而美国、日本、澳大利亚、韩国分别达

68、26、64、35 个二是数据库的开发、各种应用软件的网络化

水平低, 严重制约信息技术的推广应用。

(四)信息农业体系整体服务水平不高。高层农业信息技

术开发人才缺乏, 利用信息技术能力低。到目前为止, 我国还

没有建立起一支专业化的农业信息服务队伍, 现有的信息技

术人才不足, 服务人员素质不高, 影响了信息服务质量。

四、促进农业信息技术革命,加速农业信息化发

展的对策

(一)建立和完善农业信息产业和农业信息化体系。政府

应承担起农业信息化的引导责任, 同时积极发挥社会组织、

广大农民及社会其它力量的作用进行农业信息开发。应普及

计算机及计算机知识, 培育农业信息市场和信息产业, 促进

和完善农业信息体系, 为信息技术在农业上的应用及推广提供

良好环境。

(二)加强信息市场管理。应加强对农业信息资源开发和

利用的统一规划和指导, 逐步建立并完善各级信息资源, 建

立标准和数据更新体系, 加强数据更新技术的研究与应用。

同时加强信息市场的管理和立法, 避免信息数据库的重复建

设, 提高数据库的网络化水平, 增强数据的共享性, 开发和利

用各省、市、县等地区的农业数据库, 促进地方农业信息化建

设进程。

(三)大力加强国家信息网络建设。农业信息化和信息技

术的应用要依托全国信息主干网, 加快“农”工程建设。在发

挥国家投资主渠道作用下, 各地及有关农业部门应加大投

入, 建立区域网、局部网, 并与国内主干网、互联网接轨, 实现

农业技术人员、管理人员、农户入网。加强高层农业信息技术

人才培养, 增强全民信息意识。加强农业应用软件网络化、多

媒体化及可视化研究, 使农业信息技术可实行远程推广, 远

程教育。

(四)建设农业信息技术基地,加强信息技术的示范推广。

选择民众信息意识强、信息基础设施较好的地区, 建立农业

信息技术示范基地, 组织农学家、信息专家、经济学家参与规

划建设和实施。并加快成熟信息技术成果的推广, 边试验边

应用, 根据试验情况总结经验, 成熟后向其它地区大力推广,

使农业信息技术走向实际应用的“试验———推广”的道路。

一、 安装RODBC库

1、进入R语言的GUI界面(RGUI.EXE),在菜单栏选择“程序包/安装程序包

2、在弹出的窗口里往下拉,选择RODBC如图,点击确定

3、在ODBC数据源管理器里将需要的数据库添加进去,这里笔者使用的是SQL Server2008,驱动程序选择Native Client10.0

3、在R语言窗口输入连接语句

>library(RODBC)

**这里是载入RODBC库

>channel<-odbcConnect("MyTest",uid="ripley",case="tolower")

**连接刚才添加进数据源的“MyTest”数据库

**ch <- odbcConnect("some dsn ", uid = "user ", pwd = "**** ")

**表示用户名为user,密码是****,如果没有设置,可以直接忽略

>data(USArrests)

**将“USArrests”表写进数据库里(这个表是R自带的)

>sqlSave(channel,USArrests,rownames = "state",addPK = TRUE)

**将数据流保存,这时候打开SQL Server就可以看到新建的USArrests表了

>rm(USArrests)

>sqlTables(channel)

**给出数据库中的表

>sqlFetch(channel,"USArrests",rownames = "state")

**输出USArrests表中的内容

>sqlQuery(channel,"select * from USArrests")

**调用SELECT查询语句并返回结果(如图)

>sqlDrop(channel,"USArrests")

**删除表

>odbcClose(channel)

**最后要记得关闭连接

当然,通过这个办法也可以读取Excel、Access表中的内容,具体方法类似,这里不再重复