沈新娣
(上海健康醫(yī)學院,上海201318)
高等數(shù)學、概率論與數(shù)理統(tǒng)計、線性代數(shù)等數(shù)學類課程是對醫(yī)學類院校絕大多數(shù)專業(yè)開設的基礎性必修課程,高等數(shù)學以函數(shù)作為主要研究對象,研究求最優(yōu)值、相對或絕對變化率、平面圖形面積等的方法,可用于解決實際生活、生產(chǎn)問題。線性代數(shù)作為一種解決離散變量線性關系問題的重要計算和分析工具,已在控制與決策、經(jīng)濟管理等領域得到廣泛應用。概率論與數(shù)理統(tǒng)計的理論和方法應用于生物、醫(yī)學、金融以及管理等領域,可解決各種問題,這些課程對學生思維素質的培養(yǎng)和后續(xù)專業(yè)課程的學習起著重要的作用。對于非數(shù)學類專業(yè)來說,大學數(shù)學的課程內容抽象,理論講述枯燥乏味,理論與實踐分離,導致在學生數(shù)學應用能力的提高方面收效甚微。專業(yè)課程學時多,數(shù)學等文化基礎類課程開設門數(shù)和學時少,給教師的教學帶來了諸多不便。另外,數(shù)學教師缺乏對相關專業(yè)技術的了解,教學中缺乏生動的案例,易使學生產(chǎn)生“學數(shù)學課無用”的錯誤認識。
在大數(shù)據(jù)時代的背景下,隨著生命科學大數(shù)據(jù)的迅猛發(fā)展,客觀上要求學生具備一定理性思維與創(chuàng)新意識。大學數(shù)學教學內容也應該嘗試著逐漸從傳統(tǒng)的理論教學向實踐和應用過渡,我們希望學生具備理性的思維,讓數(shù)學成為學生學習和科研的工具,并且能利用這個工具分析和解決一些實際問題,激發(fā)學生不可估量的創(chuàng)新潛力[1]。所以,我們有必要重新審視數(shù)學課程,對其教學內容和知識體系進行優(yōu)化整合,改進教學方法及教學手段,提高學生綜合素質,促進學生終身發(fā)展。
目前計算機的應用已經(jīng)非常普及,Matlab、Mathematica、Maple、SPSS和SAS等逐漸成為大學數(shù)學類課程學習、教學和研究的有效工具。數(shù)學實驗就是在計算機系統(tǒng)的幫助下,利用常用數(shù)學軟件工具解決數(shù)學問題的一種教學手段,引導學生借助軟件理解抽象的數(shù)學理論,自主探索和研究數(shù)學問題,促進學生應用能力的提高,是將數(shù)學科學轉化為數(shù)學技術的主要途徑。它要求從問題出發(fā),強調以學生自己動手、動腦為主,在教師的指導下用學到的數(shù)學知識和數(shù)學的軟件來分析解決一些應用問題。其意義不僅僅在于使學生掌握必要的數(shù)學知識,更重要的在于學生的獨立參與,從而提高學生學習數(shù)學的積極性,培養(yǎng)學生的動手能力、獨立思考問題的能力。事實上,我們的學生通過數(shù)學實驗課的學習,大部分能較為熟練地使用數(shù)學軟件,還有的在大學生數(shù)學建模比賽和全國數(shù)據(jù)挖掘挑戰(zhàn)賽中脫穎而出。
R軟件是套完整的數(shù)據(jù)處理、計算和制圖軟件系統(tǒng),它是一套開源的數(shù)據(jù)分析解決方案,由一個龐大而活躍的全球性社區(qū)維護。其功能包括:數(shù)據(jù)存儲和處理系統(tǒng);數(shù)組運算工具(其向量、矩陣運算方面功能尤其強大);完整連貫的統(tǒng)計分析工具;優(yōu)秀的統(tǒng)計制圖功能;簡便而強大的編程語言,可操縱數(shù)據(jù)的輸入和輸出,可實現(xiàn)分支、循環(huán),用戶可自定義功能。除了R軟件之外,現(xiàn)在很多人使用Matlab、Mathematica、SPSS、SAS,但大都用的是盜版軟件。免費是R軟件流行的一個主要因素。不過R軟件的最大優(yōu)點是出色的可視化圖形、豐富的統(tǒng)計及高效的更新速度[2]。其主要特點如下。
(1)R軟件的使用入門很容易,界面簡潔易懂,有專門的論壇和資料能夠給予幫助,易于使用。R軟件采用命令行的方式,輸入和輸出結果,對計算機編程能力要求不高。在遇到困難的時候,自帶詳細的幫助文檔,網(wǎng)上也有很豐富的資料便于使用者查詢。非常適于作為學生數(shù)學實驗活動的平臺,讓學生在數(shù)學實驗活動中自行發(fā)現(xiàn)問題、解決問題,提升能力。
(2)R軟件幾乎兼容全平臺,占用資源少,對電腦配置要求低。相比動輒3G-4G的商業(yè)軟件,R軟件可謂非常節(jié)省,軟件安裝文件僅三十幾兆,甚至還可以在iPhone等移動設備上安裝R程序,所以適于作為大范圍開展數(shù)學實驗活動的平臺。
(3)R軟件包可以自由下載與加載,作為一個開源軟件,R軟件具備豐富的擴展包,可以自由加載其他開發(fā)者提供的函數(shù)和數(shù)據(jù)包,直接利用可以節(jié)省很多重新編寫算法的精力。而且擴展包的更新也非常快,更新速度以周來計算,涵蓋基礎統(tǒng)計學、社會學、經(jīng)濟管理、金融、生態(tài)、生物信息等多個方面[3],學生可以對一些科學前沿的新方法進行學習和利用。
(4)R軟件具有高效的數(shù)據(jù)處理和保存機制,完整的數(shù)組和矩陣操作運算符以及完整的數(shù)據(jù)分析工具,在數(shù)據(jù)處理和可視化方面的優(yōu)勢非常明顯,適合學生分析處理數(shù)據(jù)與建立模型,對學習和科研的幫助非常大。
案例1:導數(shù)計算,比如要計算在x=1和x=2時的導數(shù)值。用R軟件來實現(xiàn)這個運算,程序如下:
dx<-deriv(y~x^3,"x");dx#生成導數(shù)公式
x<-1:2#給自變量x賦值
eval(dx)#運行求導計算
[1]1 8#原函數(shù)的計算結果
attr(,"gradient")#使用梯度下降法,計算導數(shù)的結果x
[1,]3
[2,]12
學生練習:計算正弦函數(shù)在x=pi和x=4pi時的導數(shù)值(pi=圓周率),程序:
dx<-deriv(y~sin(x),"x",func=TRUE);dx#生成導數(shù)公式dx(c(pi,4*pi))
[1]1.224606e-16-4.898425e-16
attr(,"gradient")
x
[1,]-1
[2,]1#計算結果
課后思考:如何用R軟件實現(xiàn)高階求導、偏導數(shù)等計算?
案例2:定積分的計算,例如計算y=x3在[0,10]上的定積分。用R軟件來實現(xiàn)這個運算,程序如下:
f1<-function(x)x^3#定義函數(shù)
integrate(f1,0,10)#計算積分
2500 with absolute error<2.8e-11#計算結果
案例3:繪制函數(shù)圖像,比如用R繪制函數(shù)y=x3-5x在[-4,4]上的圖像。
方法:可以使用curve()函數(shù)繪制圖像,使用時需要向其傳遞一個關于變量x的表達式(見圖1):
程序:curve(x^3-5*x,from=-4,to=4)
圖1 x3-5x在[-4,4]上的圖像
再如:繪制三維圖形,在R中一般用persp()函數(shù)來繪制,
x<-seq(-10,10,length=30)#x的范圍
y<-x
f<-function(x,y){r<-sqr(tx^2+y^2);10*sin(r)/r}
#二元函數(shù)
z<-oute(rx,y,f)
z[is.na(z)]<-1
oP<-pa(rbg="white")
persp(x,y,z,theta=30,phi=30,expand=0.5,col="lightblue")#參數(shù)設置
案例4:在線性代數(shù)中可以用R進行矩陣的相關運算:
matrix(c(1,2,3,4,5,6,7,8,9),nrow=3)#創(chuàng)建一個3行3列的矩陣
圖2 函數(shù)
[,1][,2][,3]
[1,]147
[2,]258
[3,]369
>x<-matrix(c(1,2,3,4,5,6,7,8,9),nrow=3)#使用+,-可以在矩陣之間進行加法與減法運算
>x+x
[,1][,2][,3]
[1,]2814
[2,]41016
[3,]61218
>x-x
[,1][,2][,3]
[1,]000
[2,]000
[3,]000
>x%*%x#使用%*%運算符可以求矩陣的乘積
[,1][,2][,3]
[1,]3066 102
[2,]3681 126
[3,]4296 150
>t(x)#使用t()函數(shù),求矩陣的轉置矩陣
[,1][,2][,3]
[1,]123
[2,]456
[3,]789
>x<-matrix(c(1,2,3,4),ncol=2)#solve(x)使用solve()函數(shù),可以求矩陣的逆矩陣
>solve(x)
[,1][,2]
[1,]-2 1.5
[2,]1-0.5
案例5:在概率論與數(shù)理統(tǒng)計的教學中,利用R軟件做可視化的輔助教學,學生更容易理解教學內容,提高教學效果。如在給學生講概率分布的時候,本文以二項分布為例,為了讓學生觀察二項概率的分布特征,教師用R軟件畫出n=5,P分別取0.1,0.2,0.3……0.9時候的二項分布Binomial(5,b)的圖。學生很容易可以看出,當P=0.5時,概率分布對稱的;當P=0.1時,概率分布右偏;當P=0.9時,概率分布左偏。
程序(見圖3):
k=seq(.1,.9,.1)
par(mfrow=c(3,3))
for(i in 1:9)
barplot(dbinom(0:5,5,k[i]),xlab="x",ylab="p",ylim=c(0,.6),
main=substitute(B(5,b),list(b=k[i])))
筆者利用R軟件在概率論與數(shù)理統(tǒng)計課程中做可視化的教學嘗試,大大提高了學生的學習積極性,降低了學習的難度,提高了他們利用數(shù)學知識和軟件解決實際問題的能力,這也是大學數(shù)學教學的最終目標。
基于R軟件的實驗教學方法需要不斷探索與實踐,并且在教師的教學過程中要及時與實際問題、醫(yī)學專業(yè)問題、國內或者國際建模大賽、數(shù)據(jù)挖掘比賽等相結合,滲透數(shù)學實驗和數(shù)學文化的思想,讓學生在教師的指導下在計算機上自己動手、動眼、動腦,通過軟件編程實驗,學習解決實際問題常用的數(shù)學方法,并在此基礎上分析,促成數(shù)學教學的良性循環(huán),讓學生看到相關理論知識的應用前景,努力把學生培養(yǎng)成實踐能力強的應用型人才。
圖3 二項分布Binomial(5,b)的圖像
參考文獻:
[1]侯麗英.理實融合教學模式在應用型醫(yī)學本科院校數(shù)學教學中的應用研究[J].衛(wèi)生職業(yè)教育,2017,35(17):51-53.
[2]趙軍,楊琳.R軟件在大學數(shù)學教學中的應用探討[J].高教學刊,2016(7):93-95.
[3]賈俊平.統(tǒng)計學——基于R[M].北京:中國人民大學出版社,2014.■