劉加菊
(湖南電氣職業(yè)技術(shù)學(xué)院)
在信息技術(shù)被運(yùn)用到教育領(lǐng)域后,“教與學(xué)”的形式均有所改變。線上教學(xué)不斷普及下,學(xué)生對(duì)于課程選擇與知識(shí)記憶方面有明顯的需求。常規(guī)課堂教學(xué)也不再局限在板書上,為滿足學(xué)生高效吸收知識(shí)的需要,教師應(yīng)當(dāng)通過各種方法優(yōu)化授課效率。而Python可提供繪圖功能,將各類定理、幾何意義以動(dòng)態(tài)圖像的形式呈現(xiàn)出來,便于學(xué)生提煉知識(shí),加強(qiáng)理解。
Python在1991年誕生,時(shí)至今日已經(jīng)成為一種主流編程語言,被用到爬蟲與數(shù)據(jù)處理等方面。Python屬于面向目標(biāo)的解釋性語言,便于維護(hù)、拓展、讀取,并具有較強(qiáng)的可移植性。其分成2.x與3.x版本,直至2020年,前者已經(jīng)不再維護(hù),所以在教學(xué)實(shí)踐中都要選擇3.x版本。Python應(yīng)用優(yōu)勢具體表現(xiàn)在標(biāo)準(zhǔn)庫,覆蓋范圍廣,而且支持跨平臺(tái)運(yùn)行。該標(biāo)準(zhǔn)庫能夠進(jìn)行不同功能模塊與函數(shù)運(yùn)行,新內(nèi)容也被保存在標(biāo)準(zhǔn)庫中,讓Python實(shí)際功能愈發(fā)強(qiáng)大。同時(shí),Python是通過縮進(jìn)方式將程序塊結(jié)構(gòu)進(jìn)行分層處理,編寫代碼規(guī)格標(biāo)準(zhǔn),便于讀取使用[1]。
Matplotlib為Python中 的二維繪圖庫,工具相對(duì)齊全,包含等高線圖、散點(diǎn)圖、線圖與柱狀圖等許多繪圖函數(shù),而且能生成圖形動(dòng)畫等更加高端的繪制內(nèi)容。另外,該繪圖庫也具備交互功能,支持動(dòng)態(tài)調(diào)整繪圖參數(shù),這便于在教學(xué)過程中使用。而且此繪圖庫中還設(shè)有坐標(biāo)軸與圖例等多個(gè)子模塊,可以給教師提供多種繪圖樣式。在面對(duì)三維繪圖需要中,Python中在此繪圖庫的基礎(chǔ)上,搭配mpl_tookits工具包,在不用設(shè)置大量代碼的前提下,就能繪制出所需的三維圖像。同時(shí),此繪圖庫還設(shè)有Python圖像用戶界面的接口,能夠與pyqt單元整合運(yùn)用。選擇Matplotlib生成圖像,隨后利用pyqt完成前端展示,這是Python實(shí)現(xiàn)可視化的主要方式。
首先,內(nèi)置函數(shù)。Python中的內(nèi)置函數(shù),很多是為支持某個(gè)系統(tǒng)功能,實(shí)施邏輯判斷以及類型轉(zhuǎn)換。其在Python啟動(dòng)過程中一同加載,教師能直接應(yīng)用。其次,math模塊。例如三角函數(shù)、指數(shù)函數(shù)等眾多符號(hào)運(yùn)算、數(shù)值計(jì)算的函數(shù),均未被歸納到內(nèi)置函數(shù)范圍內(nèi),直接保存在math庫里。調(diào)取math庫的函數(shù)中,教師能提前利用下達(dá)系統(tǒng)命令完成加載,隨后以“math.函數(shù)名”實(shí)現(xiàn)調(diào)用。另外,也能直接提出“from math import *”的指令,完成math庫的加載,之后便可編輯函數(shù)名稱實(shí)現(xiàn)調(diào)用。而在實(shí)際應(yīng)用中,如果進(jìn)行同時(shí)加載,會(huì)令運(yùn)行中的第三方庫數(shù)量偏多,容易面臨函數(shù)重名的情況,不利于精確使用。最后,sympy(數(shù)學(xué)符號(hào)函數(shù)庫)。在利用Python開展符號(hào)運(yùn)算教學(xué)中,應(yīng)當(dāng)要加載sympy函數(shù)庫,其可以讓Python轉(zhuǎn)化成代數(shù)系統(tǒng)。值得注意的是,微積分符號(hào)運(yùn)算教學(xué)中,要提前定義會(huì)遇到的全部代數(shù)字母。此環(huán)節(jié)能借助“symbols()”輔助定義數(shù)個(gè)字母,過程中要關(guān)注字母大小寫的問題。
1.任意指定性質(zhì)函數(shù)
(1)隨機(jī)函數(shù)。隨機(jī)屬于概率學(xué)領(lǐng)域的概念之一,隨機(jī)也是數(shù)學(xué)討論的主要方向,同時(shí)在密碼學(xué)中也有涉及。隨機(jī)數(shù)能分成真與偽兩類,前者一般是通過物理過程,如量子效應(yīng);后者按照特定數(shù)學(xué)算法形成,自身存在一定規(guī)律性,只不過由于循環(huán)周期過長,將其視為隨機(jī),相關(guān)算法有很多,如RAND、線性與非線性同余法[2]。此處利用Python把隨機(jī)數(shù)形成過程以可視化的方式呈現(xiàn)出來,實(shí)質(zhì)上是偽隨機(jī)數(shù),但在微積分教學(xué)下,足夠讓學(xué)生了解隨機(jī)數(shù)。把隨機(jī)數(shù)與函數(shù)整合起來,確認(rèn)x定義域和待生成點(diǎn)的數(shù)量(n),設(shè)置映射值域,借助Python中random函數(shù)便能得到n個(gè)通過隨機(jī)算法形成的yi。定義域選擇在[-5,5],而值域是[-2,2],按照點(diǎn)對(duì)(xi,yi),便能生成相應(yīng)的散點(diǎn)圖以及折線圖。該過程完全是隨機(jī)的,所有(xi,yi)函數(shù)值均為隨機(jī)賦予,這會(huì)令生成圖像比較雜亂。在微積分教學(xué)中,利用Python可視化生成任意隨機(jī)函數(shù)相應(yīng)的操作程序?yàn)椋鹤越▌?dòng)圖、新函數(shù)、新增隨機(jī)函數(shù)、任意函數(shù),隨后選擇定義域與值域,“確定”后返回操作主頁面開始“運(yùn)行”,直接能得出函數(shù)圖像結(jié)果。
(2)連續(xù)函數(shù)。繪制任意連續(xù)函數(shù)(y=f(x))圖像中,僅需在任意隨機(jī)函數(shù)的基礎(chǔ)上,調(diào)整y的取值方式即可。按照連續(xù)表達(dá)如下:
所以隨機(jī)形成第一個(gè)點(diǎn),之后的函數(shù)點(diǎn)便可按照以上方法形成點(diǎn)對(duì)。借助Python中的對(duì)應(yīng)函數(shù),能夠按照指定區(qū)間,形成滿足均勻分布的點(diǎn),繼而產(chǎn)生y。微積分教學(xué)中,因?yàn)橛?jì)算機(jī)既有限制以及Python按點(diǎn)繪線的特征,應(yīng)當(dāng)提前設(shè)置與,而二者能直接選取較小值,這樣能提高繪制曲線的平滑度。
(3)可導(dǎo)函數(shù)。針對(duì)該類函數(shù)的繪制,考慮到Python僅能以離散點(diǎn)作為目標(biāo)進(jìn)行繪圖,因而實(shí)際教學(xué)中可運(yùn)用的繪圖程序?yàn)椋旱谝徊?,設(shè)置與,兩者能對(duì)y與x數(shù)值間隔進(jìn)行調(diào)整,同時(shí)還可以設(shè)置定義域。第二步,基于定義域左端,隨機(jī)選出函數(shù)第一個(gè)點(diǎn),即(x1,y1)。第三步,形成第二個(gè)點(diǎn),其橫坐標(biāo)是x2,令x2-x1=,符合領(lǐng)域標(biāo)準(zhǔn)。根據(jù)連續(xù)性要求,形成f(x2),讓前兩個(gè)點(diǎn)符合連續(xù)性。第四步,形成第三個(gè)點(diǎn)x3坐標(biāo),令x3-x2=,根據(jù)可導(dǎo)要求得到f(x3)。第五步,重復(fù)上一步操作,借助前兩個(gè)點(diǎn)得出后面的可導(dǎo)點(diǎn),直至達(dá)到定義域的右端點(diǎn)。通過把微積分內(nèi)容利用Python進(jìn)行可視化處理,讓學(xué)生直接看到可導(dǎo)函數(shù)圖像,并且在不設(shè)置限制條件的情況下,可導(dǎo)函數(shù)能形成“趨勢”,結(jié)果和該函數(shù)基本特征一致。
2.微積分重要定義
(1)導(dǎo)數(shù)定義。在微積分學(xué)科中,導(dǎo)數(shù)是極為關(guān)鍵的概念,學(xué)生如若要快速使用導(dǎo)數(shù)解出問題,應(yīng)當(dāng)先明確導(dǎo)數(shù)概念與幾何意義[3]。為可以動(dòng)態(tài)化顯示出其定義,用幾何形式呈現(xiàn),先要在曲線上確認(rèn)點(diǎn)x0,以此為基礎(chǔ)畫出切線。在x0周邊選出x1點(diǎn),畫出二者對(duì)應(yīng)割線,而后調(diào)整x1取值,讓其不斷靠近x0,將該過程中的割線情況進(jìn)行動(dòng)態(tài)呈現(xiàn)。這樣能夠使學(xué)生以比較直觀的狀態(tài),體會(huì)從割線變?yōu)榍芯€的幾何規(guī)律,繼而形成對(duì)導(dǎo)數(shù)定義的認(rèn)識(shí)。實(shí)踐教學(xué)演示期間,為便于課上演示操作,教師應(yīng)當(dāng)把導(dǎo)數(shù)定義直接當(dāng)成案例保存在資料庫內(nèi),按照“自建動(dòng)圖”“趣味案例”“導(dǎo)數(shù)的幾何意義”完成參數(shù)設(shè)置。隨后教師能直接選擇現(xiàn)有的函數(shù)形式圖像與默認(rèn)第一個(gè)點(diǎn)x0,或是自定義函數(shù),在相應(yīng)定義域中選擇x0,“確定”后便能立即獲得相應(yīng)的幾何動(dòng)態(tài)演示。
(2)極限定義。在講解“極限”部分的知識(shí)中,為讓學(xué)生可以清楚地認(rèn)識(shí)道“極限”概念,大多數(shù)教師傾向于用“割圓術(shù)”為例子展開講解。相關(guān)數(shù)學(xué)原理為:算出圓形正n邊形的面積,視為圓形面積近似值,在n的取值持續(xù)加大中,正n邊形實(shí)際面積也就更接近圓形面積,但不可能相等,這就能體現(xiàn)出“極限”概念。在運(yùn)用Python進(jìn)行動(dòng)態(tài)化教學(xué)中,也能直接繪制“割圓術(shù)”,當(dāng)作一個(gè)趣味案例保存下來。在微積分領(lǐng)域中,“極限”一般是研究函數(shù)與數(shù)列,考慮到數(shù)列理解難度較低,此處選擇數(shù)列作為分析對(duì)象。以下述數(shù)列為例,n是橫坐標(biāo),而數(shù)列值是縱坐標(biāo),借助基于Python構(gòu)成的可視化程序,動(dòng)態(tài)呈現(xiàn)數(shù)列數(shù)值持續(xù)接近極限的過程,呈現(xiàn)出“極限”表述內(nèi)容。
在n持續(xù)提高中,函數(shù)值始終處于“O”周圍,而且持續(xù)接近“O”。通過散點(diǎn)圖呈現(xiàn)出x軸上點(diǎn)列,并且為了更清楚地反映出“逼近”的情況,把n當(dāng)成動(dòng)態(tài)變化要素,持續(xù)性提高其取值,這樣就能呈現(xiàn)出數(shù)列“延伸”的狀態(tài)。
(3)微分定義。對(duì)于一元微積分來說,“可微”相當(dāng)于“可導(dǎo)”,即:
f(x)函數(shù)上,隨意選擇一點(diǎn)L(x0,y0)和其周圍一點(diǎn)L'(x0+△x,y0+△y),穿過二者作一條和x軸平行的虛線,基于L點(diǎn)作此切線,并過(x0,0)與(x0+△x,0)分別與x軸虛線及切線相交,用△y表示。因?yàn)閒’(x)為切線與x軸夾角對(duì)應(yīng)正切值,加之一元微積分特點(diǎn),所以,函數(shù)f(x)在點(diǎn)L的微分,能夠用其切線縱坐標(biāo)的增量代表。運(yùn)用Python可視化處理工具繪制出函數(shù)圖像。微分和導(dǎo)數(shù)的幾何意義圖像比較接近,教師也可以直接將其保存在相應(yīng)案例資料庫中,相關(guān)操作流程也可參考導(dǎo)數(shù)定義的方法。
3.自定義表達(dá)式函數(shù)
(1)直角坐標(biāo)函數(shù)。在直角坐標(biāo)函數(shù)中,比較多見的形式是y=f(x)。繪制該基礎(chǔ)函數(shù)圖像中,教師僅用確認(rèn)函數(shù)的定義域,假設(shè)需要繪制出動(dòng)態(tài)的圖像,就應(yīng)額外設(shè)置變化參數(shù)[4]。比如,在講解y=sin(x)中,教師直接選擇在基于Python的可視化系統(tǒng)上,進(jìn)入到“自建動(dòng)圖”模塊,點(diǎn)擊“新函數(shù)”,便能輸入所需的函數(shù)參數(shù),確認(rèn)新增與輸入表達(dá)式函數(shù),設(shè)置區(qū)域是[-5,5],不設(shè)定可變參數(shù)。完成上述操作并“確定”后,啟動(dòng)運(yùn)行就能得到完整的直角坐標(biāo)函數(shù)。
(2)極坐標(biāo)函數(shù)。極坐標(biāo)方程的基本形式是p=f(θ),鑒于在實(shí)際教學(xué)中錄入“θ”存在一些不便之處,因而改用“r”作為自變量。比如,在繪制從0至2π區(qū)間內(nèi)的阿基米德螺線,此時(shí)極坐標(biāo)方程能用p=r/6代表。教師操作系統(tǒng)中,同樣通過“自建動(dòng)圖”模塊中的“新函數(shù)”,完成相關(guān)的參數(shù)錄入操作。
(3)參數(shù)方程。微積分教學(xué)中,為便于操作應(yīng)用,方程參數(shù)直接選定“t”,比如在“參數(shù)方程畫圓”講解中,參數(shù)方程是:
參數(shù)t的取值范圍為[0,2π]。按照上述操作流程,新建函數(shù)即可,通過動(dòng)態(tài)圖像觀察到的結(jié)論,和參數(shù)方程基本規(guī)律、性質(zhì)相同。
1.連續(xù)與極限
(1)介值定理。對(duì)于閉區(qū)間的連續(xù)函數(shù),該定理是其主要性質(zhì),其被運(yùn)用在迭代法求根等類似的“逼近”算法上。為了讓學(xué)生以比較直接的形式感受介值定理,可視化處理應(yīng)當(dāng)是最有效的方法。教學(xué)實(shí)踐中,基于任意閉區(qū)間,繪制出連續(xù)函數(shù)f在其中的圖像,同時(shí)要確認(rèn)函數(shù)端點(diǎn)數(shù)值。在閉區(qū)間[f(a),f(b)]內(nèi),由ξ動(dòng)態(tài)取遍全部值,但因?yàn)槔L圖形式約束,取值存在間隔,能根據(jù)連續(xù)定義確認(rèn)間隔。各個(gè)ξ在函數(shù)上均有與之相等的點(diǎn)。
(2)零點(diǎn)定理。和上一個(gè)定理比較接近,需要先確定合適的“a”與“b”,在[a,b]區(qū)間內(nèi)繪制出f函數(shù)圖像,讓f(a)與f(b)是異號(hào)狀態(tài)。下一步則是使ξ=a,并繪制出此處切線。讓后使ξ取遍此閉區(qū)間內(nèi)的全部值,觀察該過程中ξ對(duì)應(yīng)切線斜率等于零的情況下,ξ的對(duì)應(yīng)點(diǎn)。
(3)數(shù)列極限性質(zhì)。一方面,有界性,即假設(shè){xn}數(shù)列是收斂的,則意味著其一定有界。微積分教學(xué)期間,教師可以利用圖像呈現(xiàn)出收斂數(shù)列性質(zhì)。以下述震蕩數(shù)列為例:
該序列極限是3,n是橫坐標(biāo),而縱坐標(biāo)是數(shù)列值,動(dòng)態(tài)表現(xiàn)出該數(shù)列在n數(shù)值提高中的變化狀態(tài)。通過Python繪制,得到的證明結(jié)果和收斂序列性質(zhì)相同。另一方面,單調(diào)有界必有極限。針對(duì)該準(zhǔn)則,此處主要從幾何意義角度討論加以證明。在單調(diào)數(shù)列({xn})中,數(shù)列值僅能基于數(shù)軸進(jìn)行正方向與負(fù)方向上的運(yùn)動(dòng),并且只能向一側(cè)移動(dòng)。假設(shè)數(shù)列值朝著負(fù)方向移動(dòng),此時(shí)單調(diào)數(shù)列取值只會(huì)出現(xiàn)兩種現(xiàn)象,分別是:數(shù)列趨于“-∞”;趨于某個(gè)固定值。如果單調(diào)數(shù)列有界,則前者不成立,也就是數(shù)列有極限。經(jīng)過動(dòng)態(tài)圖像講解的方法,發(fā)現(xiàn)單調(diào)遞減數(shù)列的數(shù)值是無限逼近某個(gè)固定值,這意味著此數(shù)列的極限就是該值。
2.導(dǎo)數(shù)定理
在微積分課程中,關(guān)于極限的單元,具體討論數(shù)列與函數(shù)極限具備有界性、子列收斂、唯一性、保號(hào)性,并包含“夾逼準(zhǔn)則”與“單調(diào)有界必有極限”[5]。因?yàn)槎ɡ砗托再|(zhì)本身存在明顯的特殊性,所以教學(xué)講解證明大多是理論推導(dǎo),很少會(huì)用到圖像。但如果在課上教師能夠靈活運(yùn)用Python,實(shí)現(xiàn)直觀化教學(xué),更容易讓學(xué)生理解。
(1)羅爾中值定理。其在微積分課程中占據(jù)重要定位,通過對(duì)其進(jìn)行動(dòng)態(tài)化處理,可以直接在(a,b)中鎖定ξ點(diǎn),對(duì)此應(yīng)當(dāng)建立符合相應(yīng)要求的函數(shù)曲線。在連續(xù)可導(dǎo)函數(shù)(f(x))中,選擇[a,b]區(qū)間,讓f(a)與f(b)相等。在繪制圖像中應(yīng)標(biāo)記出圖像端點(diǎn),并通過虛線連接。使ξ由a至b移動(dòng),顯示出ξ對(duì)應(yīng)切線,鎖定切線斜率為0的取值,由此可以反映出該中值定理的幾何意義。實(shí)踐教學(xué)中,為提高課堂上演示過程的便利性,把此中值定理與其他相關(guān)定理都當(dāng)成教學(xué)例子集中保存,相應(yīng)的調(diào)用操作流程和前文關(guān)于導(dǎo)數(shù)幾何意義的處理方式一致。
(2)拉格朗日。此項(xiàng)中值定理描述了在閉區(qū)間中,可導(dǎo)函數(shù)的導(dǎo)數(shù)改變與其端點(diǎn)割線斜率的聯(lián)系。在講解其幾何以一種,同樣要先繪制出原始函數(shù)圖像,設(shè)置端點(diǎn)。使ξ由a至b完成取值,繪制相應(yīng)切線,在此期間確認(rèn)其和割線相互平行的點(diǎn)。通過運(yùn)用Python繪制動(dòng)態(tài)圖的方式,將中值定理呈現(xiàn)出來,使學(xué)生可以直觀理解定理描述的關(guān)系。
3.積分定理
(1)不等式。微積分課程的眾多不等式中,積分不等式屬于比較重要的抑制,其是解出微分方程的重要工具,具體有閩可夫斯基與楊不等式等。例如,在講解楊不等式中,對(duì)其進(jìn)行幾何意義分析。教師先要繪制函數(shù)圖像,區(qū)間為[0,a],標(biāo)出端點(diǎn)與對(duì)應(yīng)虛線。在縱坐標(biāo)軸上選擇一點(diǎn)b,使其動(dòng)態(tài)移動(dòng)。由此形成兩個(gè)多邊形,在b不等于f(a)的情況下,兩個(gè)多邊形的面積和大于ab。
(2)積分中值定理。其包含一重積分與二重積分兩種,前者還能細(xì)分成積分第一與第二中值定理。以積分第一中值定理為例,這是由于其在實(shí)質(zhì)上和二重積分中值定理比較接近,所以,更具分析代表性。該定理的基本描述為:假設(shè)在[a,b]區(qū)間上,f(x)函數(shù)是連續(xù)的,則在該區(qū)間中至少有一點(diǎn)ε符合以下條件:
在函數(shù)定義域內(nèi),等于曲線和x軸構(gòu)成一個(gè)面積,則在積分第一中值定理對(duì)應(yīng)幾何意義為:定義域作為圖形的底,曲線上某個(gè)點(diǎn)是高,由此形成的矩形面積就是曲線積分值。而該幾何分析過程能根據(jù)介值定理得出。相應(yīng)的分析推導(dǎo)思路為:假設(shè)在[a,b]區(qū)間上,函數(shù)最大值是M,最小值是N,在以二者為高形成的矩形面積中,會(huì)存在下述結(jié)果:
按照介值定理,便能確認(rèn)在此區(qū)間中,函數(shù)上至少有一點(diǎn)ε符合要求。
微積分知識(shí)本身的理解難度較大,而且各類定理、定義較多,倘若僅依靠理論推導(dǎo),可能容易導(dǎo)致學(xué)生理解偏差以及混淆等問題出現(xiàn)。而借助Python繪圖功能,可以按照設(shè)定條件直接生成函數(shù)圖像,并支持動(dòng)態(tài)演化,這樣有利于學(xué)生掌握定理描述本質(zhì),靈活運(yùn)用解出數(shù)學(xué)問題。