段 敏
(湖南交通職業(yè)技術(shù)學(xué)院,湖南 長沙 410132)
公共數(shù)學(xué)課程作為高職院校理工科專業(yè)必修的基礎(chǔ)課程,教學(xué)的核心目標(biāo)之一就是培養(yǎng)和發(fā)展學(xué)生的數(shù)學(xué)分析思維和工程問題建模能力[1]。然而,由于理論知識(shí)具有高度抽象性,現(xiàn)有大學(xué)數(shù)學(xué)課程教學(xué)普遍偏重計(jì)算能力的培養(yǎng)而忽視學(xué)生數(shù)學(xué)分析思維的培養(yǎng)。在這種教學(xué)模式下培養(yǎng)出來的學(xué)生往往不知道如何將實(shí)際問題轉(zhuǎn)化成數(shù)學(xué)模型問題加以分析和解決,缺乏運(yùn)用數(shù)學(xué)知識(shí)進(jìn)行分析的思維,在解決復(fù)雜的實(shí)際問題時(shí)數(shù)學(xué)建模能力不足。
隨著計(jì)算機(jī)軟件技術(shù)的飛速發(fā)展,數(shù)學(xué)課程教學(xué)也逐漸引入計(jì)算機(jī)進(jìn)行輔助,并針對(duì)其進(jìn)行了大規(guī)模的教學(xué)改革實(shí)驗(yàn)。數(shù)學(xué)實(shí)驗(yàn)課在1988年最早由美國雷斯勒技術(shù)學(xué)院開展實(shí)施。我國對(duì)數(shù)學(xué)實(shí)驗(yàn)課的探索始于1997年,國防科技大學(xué)首次在課堂上開展了數(shù)學(xué)實(shí)驗(yàn)教學(xué),由此開始了數(shù)學(xué)教學(xué)改革。依托該項(xiàng)目,李尚志教授編寫了教材《數(shù)學(xué)實(shí)驗(yàn)》[2]。在這之后,眾多高校開始關(guān)注數(shù)學(xué)課堂改革。然而,在現(xiàn)階段高職院校普遍缺少數(shù)學(xué)實(shí)驗(yàn)課程的現(xiàn)狀下,如何將具有大量抽象理論的大學(xué)數(shù)學(xué)課程內(nèi)容生動(dòng)化、簡單化,調(diào)動(dòng)學(xué)生學(xué)習(xí)興趣與積極性,成為了數(shù)學(xué)公共課程教學(xué)改革面臨的難題[3]。
本文提出把《高等數(shù)學(xué)》《復(fù)變函數(shù)》等高職院校公共數(shù)學(xué)課程教學(xué)過程和MATLAB、Python等高級(jí)語言程序設(shè)計(jì)軟件結(jié)合起來,借助數(shù)學(xué)建模工具強(qiáng)大的數(shù)值計(jì)算、分析與圖像處理功能,顯化實(shí)際問題的分析過程和解決過程,實(shí)現(xiàn)數(shù)學(xué)抽象理論的可視化教學(xué),幫助學(xué)生提高數(shù)學(xué)分析思維,提高教學(xué)效果,培養(yǎng)學(xué)生解決復(fù)雜實(shí)際問題的能力。
MATLAB由美國MathWorks公司開發(fā)維護(hù),至今已有近40年的發(fā)展,其在矩陣計(jì)算和算法開發(fā)方面功能強(qiáng)大,而且能夠?yàn)橛脩籼峁└呒?jí)可視化工具[4]。作為一款數(shù)值計(jì)算軟件,MATLAB因其眾多優(yōu)點(diǎn)備受師生推崇,在數(shù)學(xué)建模、矩陣計(jì)算方面尤其受到人們的喜愛。MATLAB內(nèi)含大量函數(shù)庫,可隨時(shí)調(diào)用,不需要大量且繁瑣的編程過程。與其他編程軟件相比較而言,對(duì)數(shù)學(xué)語言的親和性更顯得其編程語言的簡潔優(yōu)雅[5]。
Python軟件最早是由來自荷蘭的Gudio van Rossum于1989年創(chuàng)建開發(fā)的,由于該軟件具有良好的交互性,又是開源語言,拓展性能好,近年來熱度越發(fā)高漲,深受用戶歡迎[6]。Python是一種功能性強(qiáng)、語法簡單,在數(shù)學(xué)、物理、人工智能等各個(gè)領(lǐng)域都有廣泛應(yīng)用的編程語言。其中,Sympy庫是用來進(jìn)行科學(xué)計(jì)算的核心,它能夠基于符號(hào)計(jì)算體系高效完成多項(xiàng)式計(jì)算。Sympy庫能夠?qū)崿F(xiàn)多種復(fù)雜計(jì)算,具有操作簡單、應(yīng)用性強(qiáng)的特點(diǎn),常被用來求解方程,尤其在計(jì)算涉及復(fù)雜數(shù)學(xué)建模問題的微分方程時(shí)常常成為首選。
計(jì)算機(jī)技術(shù)的發(fā)展日新月異。近年來,大數(shù)據(jù)技術(shù)被廣泛運(yùn)用于各行業(yè)領(lǐng)域,熟練掌握一門編程語言已經(jīng)成為從事數(shù)據(jù)分析、數(shù)據(jù)挖掘、大數(shù)據(jù)分析、人工智能等崗位工作的標(biāo)配。社會(huì)對(duì)學(xué)生編程能力的要求日益提高,逐漸從加分項(xiàng)演變成必修項(xiàng)。因此,在大學(xué)階段很有必要對(duì)學(xué)生進(jìn)行編程教育。
從教學(xué)的角度來看,教師要考慮學(xué)習(xí)效果和實(shí)際應(yīng)用效果,通過建模、仿真及可視化等一系列流程,能夠使學(xué)生深入思考數(shù)學(xué)原理,親自動(dòng)手開展實(shí)踐以解決問題,一舉兩得。從學(xué)生的角度來看,學(xué)生對(duì)編程語言的掌握并非一朝一夕可以實(shí)現(xiàn),在熟悉數(shù)學(xué)知識(shí)的基礎(chǔ)上開展編程的基礎(chǔ)學(xué)習(xí),對(duì)專業(yè)知識(shí)、編程知識(shí)體系的構(gòu)建都很有好處,能夠鍛煉學(xué)生的思考能力和實(shí)踐能力。
教學(xué)效果因教師和學(xué)生而異。很多情況下,教師難以兼顧所有的學(xué)生,特別是在學(xué)生就業(yè)選擇各不相同的背景下,教師對(duì)課程深度和知識(shí)難度的把控很大程度上會(huì)直接影響學(xué)生的學(xué)習(xí)積極性。
通過MATLAB、Python等高級(jí)程序設(shè)計(jì)語言的圖像功能演示復(fù)雜函數(shù)理論與圖形,能夠使學(xué)生克服學(xué)習(xí)抽象理論的畏難心理,有利于學(xué)生理解和對(duì)比。教師從可視化圖形入手,由簡單知識(shí)過渡到數(shù)學(xué)原理,將理論知識(shí)以嚴(yán)謹(jǐn)?shù)皇в腥さ姆绞秸宫F(xiàn)出來,能夠極大程度煥發(fā)學(xué)生的自主學(xué)習(xí)熱情,同時(shí)兼顧學(xué)生的基礎(chǔ)差異,改善了數(shù)學(xué)課程理論教學(xué)的枯燥性。
大學(xué)數(shù)學(xué)課程有3個(gè)顯著特性:抽象性較高、使用性廣泛、邏輯性嚴(yán)密。在課堂教學(xué)中教師往往只注重講解理論知識(shí),忽略與實(shí)際應(yīng)用相結(jié)合,使得學(xué)生無法獲取更多的感性認(rèn)識(shí),從而在理論的深度與應(yīng)用的廣度上不能很好地結(jié)合。課堂教學(xué)不夠生動(dòng)形象,導(dǎo)致學(xué)生解決實(shí)際問題的能力較弱。
數(shù)學(xué)課程教學(xué)以數(shù)學(xué)理論知識(shí)為主干內(nèi)容,以建模工具的實(shí)例化演示為輔助,一方面通過數(shù)學(xué)專業(yè)軟件實(shí)現(xiàn)復(fù)雜函數(shù)可視化教學(xué),另一方面通過數(shù)學(xué)建模軟件的使用培養(yǎng)學(xué)生的建模意識(shí)和編程能力。數(shù)學(xué)建模是實(shí)際問題的理想化,是聯(lián)系實(shí)際問題和數(shù)學(xué)語言的媒介。推動(dòng)數(shù)學(xué)教學(xué)改革能夠間接提升學(xué)生數(shù)學(xué)建模能力,輔助學(xué)生向?qū)I(yè)領(lǐng)域發(fā)展。
以函數(shù)y=sin(1/x)、y=x*sin(1/x)的極限為例,對(duì)初學(xué)者來說求解這兩個(gè)函數(shù)的極限是比較抽象的。這兩個(gè)函數(shù)分別涉及到無窮大和無窮小及有界函數(shù)極限的知識(shí),在常規(guī)教學(xué)實(shí)踐中很難用語言或者板書解釋清楚。通過python的可視化展示,學(xué)生可以清晰地了解該函數(shù)的分布情況,對(duì)理解極限的概念很有幫助。
Python程序如下:
結(jié)果見圖1。x趨向于0時(shí),函數(shù)值是在-1和1之間來回震蕩,越靠近0頻率越高,但是不會(huì)趨近于0,因?yàn)槭且恢痹谠絹碓娇斓卣袷?,永不停止,極限不存在。x趨向于無窮,1/x趨向于0,sin(1/x)趨向于0,函數(shù)極限為0。
圖1 函數(shù)y=sin(1/x)的圖形
結(jié)果見第21圖2。x趨向于0時(shí),f(x)在0上下震蕩并逐漸趨于0,極限為0。x趨向于無窮時(shí),1/x趨向于0,f(x)趨向于1。
圖2 函數(shù)y=x*sin(1/x)的圖形
復(fù)變函數(shù)部分的內(nèi)容較為晦澀難懂,其自變量和函數(shù)值中均包含復(fù)數(shù),在圖形繪制方面難度很大,特別是要在三維空間中對(duì)上述4個(gè)實(shí)、復(fù)數(shù)進(jìn)行表示,更凸顯了人們思維的局限性。在處理這部分時(shí),MATLAB用顏色深度來處理第四維數(shù)據(jù)的變化,即采用3維+1維的形式具象化復(fù)變函數(shù),xoy面表示自變量復(fù)平面,z軸表示復(fù)變函數(shù)的實(shí)部,顏色深度代表其虛部。
例:利用MATLAB作出復(fù)變函數(shù)f(z)=z5+z2+1的圖像。
MATLAB程序如下:
結(jié)果見圖3。
圖3 復(fù)變函數(shù)f(z)=z5+z2+1的圖像
對(duì)于某些解析函數(shù),Taylor展開的方式方法雖然很多,但是計(jì)算較繁雜,而且Taylor展開式的結(jié)果也不一定很滿意,但是在MATLAB的幫助下,這些工作就會(huì)很簡單,調(diào)用函數(shù)就可以對(duì)其進(jìn)行任意項(xiàng)的Taylor展開。
例:設(shè)f(z)=sin(z2/(z-1)),求f(z)在z=3處的前五項(xiàng)Taylor展開式。
MATLAB程序如下:
結(jié)果:
基于高級(jí)程序設(shè)計(jì)語言強(qiáng)大的繪圖功能,教師不需要在課堂上進(jìn)行冗長的數(shù)學(xué)理論推導(dǎo),只需要引導(dǎo)學(xué)生分析討論解決問題的思路和處理方法,數(shù)學(xué)運(yùn)算可交給數(shù)學(xué)專業(yè)軟件去進(jìn)行,不但減輕了教師的負(fù)擔(dān),而且有利于學(xué)生理解函數(shù)的概念及培養(yǎng)學(xué)生對(duì)于數(shù)學(xué)建模軟件的應(yīng)用能力,無論是對(duì)學(xué)生課程理論知識(shí)的學(xué)習(xí),還是對(duì)學(xué)生數(shù)學(xué)能力和建模能力的提高都具有重要意義和實(shí)用價(jià)值。