赵军 杨琳(湖北医药学院,湖北十堰442000)
R软件在大学数学教学中的应用探讨*
赵军杨琳*
(湖北医药学院,湖北十堰442000)
摘要:大学数学课程是高等院校绝大多数专业的基础性必修课程,对学生思维素质的培养和后继课程的学习起着重要的作用。R软件是一种开源的数学计算环境,拥有强大的功能和丰富的附属包。文章分析了大学数学教学中的现实问题,结合R软件在数学教学中的具体应用实例,探讨应用R软件辅助大学数学教学的可行性和优越性,为高等院校的数学课程教学改革提供一些参考。
关键词:大学数学;教学改革;R软件
Abstract:College mathematics is a basic compulsory course for majority of majors in most universities,which plays an important role in cultivation of students' thinking quality and subsequent courses' learning. The software R is an open source mathematical computing environment,which has powerful functions and plenty of packages. After analyzing the practical problems in college mathematics teaching,this paper exploresthe feasibility and superiority of the application of R software assisting college mathematics teaching by combining with the R software in mathematics teaching in specific application examples. This can provide some references in the teaching reform of college mathematics curriculum.
Key words:college mathematics;reform in education;R software
数学类课程是我国高等院校绝大多数专业的基础性必修课程,对学生思维素质的培养和后继课程的学习起着重要的作用。但是,对于非数学类专业来说,大学数学的内容抽象、计算复杂,不仅给学生的学习带来了困难,也在课时有限的条件下给教师的教学带来了诸多不便[1]。随着现代教学手段的日益丰富和多媒体的广泛应用,越来越多的工具可以运用到学生学习以及教师教学中来。其中之一就是使用软件来辅助教学,展现数学的思想和方法,提高教学的效率。
在大学数学辅助教学中,应用最广泛的工具无疑是MATLAB、SPSS等商业软件。然而在我国日益重视知识产权的环境下,教学单位若想将其应用于日常教学,必须有足够的经费支持。而对于学生自主学习来说,商业软件日常的下载安装和使用也会遇到阻碍。自由软件R是一门统计语言,主要用于数学建模、统计计算、数据处理、可视化等几个方向[2]。国外众多大学统计课程都将R作为教学工具软件,国内将R软件运用于教学的案例还非常少。
R软件在科研领域尤其是在数据统计分析中应用非常广泛。其功能包括数据存储、系统处理、数组运算等,其向量、矩阵运算方面功能尤其强大。R软件是免费、开源的。与商业软件动辄上万的购置费及昂贵的维护升级费用相比,免费的R软件数据分析和建模能力毫不逊色,而且比封装、集成的商业软件更具有灵活性。仅R软件主站目前就已经提供了超过七千个程序包,涵盖基础统计学、社会学、经济管理、金融、生态、生物信息等多个方面。各种包都是可编辑和重新编译的,使用者可根据自身需求,量身定做独特的程序包。R还提供了各种数学计算的函数,使用者能灵活机动的进行数值计算和模拟,甚至创造出符合需要的新的计算方法。所以与其说R是一种统计软件,不如说R是一种数学计算的环境[3]。简单易学的解释性语言R作为非计算机专业的学生也能够轻松上手。
大学数学主要课程有微积分、线性代数、概率统计,这三门课程是大多数专业的必修基础课,也是大学数学教师最关注的三门课程。下面针对这三门课程的内容分别选择具有一定代表性的实例进行探讨。
(一)微积分
实例1.绘制函数的图像
图1
微积分中很多重要的概念都需要借助直观的几何图形来帮助理解,如函数的单调性、极值、凹凸性以及确定积分限等。R语言强大的作图功能很好地适应了这方面的教学需要。仅仅一两条命令,R就能完成各种函数图像的绘制。下面的代码分别绘制正弦函数、自定义参数的Logistic生长曲线的图形(图1)。
>curve(sin,-3,3,main="正弦函数")
>f<- function(x)k/(1+a*exp(-b*x))#定义函数
>a<- 10;b<- 8;k<- 2#给参数赋值
>curve(f,main="Logistic生长曲线")#画函数图像
函数的导数和积分计算既是微积分教学的重点也是难点,在R基本包中有很方便的计算导数或积分的函数。
实例2.求函数的导数或偏导数
(1)求函数y=x2-sinx在点x=2处的导数。
>f1<- expression(x^2- sin(x))#定义函数表达式
>dx<- deriv(f1,"x")#生成导数公式
>x<- 2#给自变量赋值
>eval(dx)#计算导数值
运行上面的代码,输出结果为4.416147,即所给函数在点x=2处的导数值。
(2)求函数z=x2+2xy-y3在点(1,2)处的偏导数。
>f2<- expression(x^2 +2*x*y-y^3)#定义函数
>Dx<- D(f2,"x");Dx
#生成函数关于自变量x的偏导函数
>Dy<- D(f2,"y");Dy
#生成函数关于自变量y的偏导函数
>x<- 1;y<- 2#给自变量赋值
>eval(Dx);eval(Dy)#计算偏导数值
运行上面代码,输出结果为6,-10,即为所给二元函数在点(1,2)处的分别关于自变量x和y的偏导数值。
实例3.求定积分或广义积分
(1)求函数y=x2在[0,1]上的定积分。
>f3<- function(x)x^2#定义函数
>integrate(f3,lower = 0,upper = 1)#计算积分
输出结果:0.3333333 with absolute error<3.7e-15.
(2)求函数y=1/(1+x2)在区间[-∞,+∞]上的广义积分。
>f4<- function(x)1/(1+x^2)#定义函数
>integrate(f4,lower = -Inf,upper = Inf)#计算积分
输出结果:3.141593 with absolute error<5.2e-10.
(二)线性代数
线性代数包括行列式、矩阵、线性方程组、矩阵的特征值等内容。R可以用来处理矩阵运算,求解线性方程组、求矩阵的特征值和特征向量等。
实例1.矩阵运算
>A<- matrix(1:4,nrow=2);A #定义一个二阶矩阵
>det(A)#计算方阵A的行列式
>t(A)#求矩阵A的转置
>B<- diag(2)#定义二阶单位矩阵
>A + B#矩阵加法
>A%*%B#矩阵乘法
>solve(A)#求逆矩阵
实例2.求矩阵的特征值和特征向量
>sm<- crossprod(A,A)#定义对称矩阵sm
>eigen(sm)#计算特征值与特征向量
$values
[1]29.8660687 0.1339313
$vectors
[,1][,2]
[1,]0.4045536 -0.9145143
[2,]0.9145143 0.4045536
(三)概率论
概率统计是研究随机现象统计规律的一门课程,包括概率论和数理统计两部分内容,前者更偏重理论,内容更抽象难懂。有文献已经探讨过R软件在统计教学中的应用[4],但将R软件运用于概率论教学的案例还非常少。下面的实例将给概率论课程的教学带来新的启发。
实例1.(随机试验模拟)掷一枚10次,观察正面出现的次数
>sample(c("正","反"),10,replace = T)
输出结果:"正" "正" "反" "正" "反" "正" "反" "反" " 正" "反"。试验可重复多次,让学生了解随机事件的不确定性和统计规律性。
>x<- seq(-5,5,length=100)
>plot(x,dnorm(x,0,1),xlim =c(-5,5),ylim =c (0,0.9),type="l",ylab="density",main="正态分布")
>lines(x,dnorm(x,0,0.5),lty=2,col=2)
>lines(x,dnorm(x,0,2),lty=3,col=3)
>lines(x,dnorm(x,-2,1),lty=4,col=4)
>legend("topright",legend= paste("mu=",c(0,0,0,-2),"sd=",c(1,0.5,2,1)),lty=1:4,col=1:4)
图2
中心极限定理是判断随机变量序列部分和的分布是否渐近于正态分布的一类定理。定理本身较为抽象,而定理的证明又超出大纲范畴,学生很难短时间内理解和应用该定理。下面的实例运用动画展示中心极限定理的实际意义,可以作为该部分内容教学设计的一部分。
实例2.中心极限定理的动画模拟(从指数分布到正态分布)
>library(animation)#加载animation包
>ani.options(interval=0.2)
>par(mar=c(4,4,2,1))
>clt.ani()#动画模拟,数据默认来自指数分布
此试验可通过更改clt.ani()函数的参数,设定数据的数量和分布。通过观察模拟动画,学生可以更容易理解中心极限定理的意义。
图3
大学数学教学目前存在教学课时少、理论抽象、学生处理数学问题能力有限的情况,将R软件引入到大学数学教学是一种新的尝试。现代教学手段辅助教学不仅可以加深学生对数学知识的理解,还可以使学生摆脱繁琐的计算,进而激发学生学习的兴趣,增添学习的动力,从而为更好的应用专业知识处理实际问题奠定基础。文章结合实例,介绍了R软件在大学数学教学中的具体应用,从这些实例可以看出,R软件能高效地解决很多数学教与学的问题,可以成为辅助大学数学教学的一个有力工具。在大学数学教学中采用R软件作为教学辅助工具,值得推广。但基于R语言的大学数学教学探讨可以说才刚刚起步,进一步的发展还需各位高校数学教师的共同努力。希望R语言能持续展现潜力和活力,有效地将传统数学教学方法的优势和现代数学教学方法的特色结合起来,形成既有利于教师教,也有利于学生学的好局面。文章的所有源代码都在R.3.2.3上调试通过。
参考文献
[1]何兰,滕辉,宋运娜,等.医学院校高等数学课程教学改革探索与实践[J].西北医学教育,2015,23.
[2]R:A language and environment for statistical computing. R Foundation for Statistical Computing,Vienna,Austria.URL http://www.R-project.org/.
[3]薛毅,陈立萍.统计建模与R软件[M].北京:清华大学出版社,2007.
[4]程新,魏赛金,江莉,等.统计软件R及其在《生物统计学》实验教学中的应用[J].统计教育,2008,4.
[5]刘东海,彭丹.基于R的概率统计实验教学模式探讨[J].当代教育理论与实践,2014,7.
中图分类号:G642
文献标志码:A
文章编号:2096-000X(2016)07-0093-03
*基金项目:湖北省教育科学“十二五”规划课题(2012B240)
作者简介:赵军(1878-),男,湖北十堰人,讲师,博士在读,研究方向:大学数学课程改革、应用统计学。
*通讯作者:杨琳。