關(guān)鍵詞:數(shù)學(xué)分析;課程教學(xué);Python語(yǔ)言;可視化;計(jì)算
0 引言
數(shù)學(xué)實(shí)驗(yàn)旨在利用軟件編程的方式提高科學(xué)計(jì)算問(wèn)題的能力,其特點(diǎn)在于增強(qiáng)學(xué)習(xí)過(guò)程的可視性、嘗試性和再創(chuàng)性[1]。過(guò)去二十多年間,Matlab[2]、Maple[3]和Mathematica[4]等數(shù)學(xué)軟件在教學(xué)中得到廣泛的應(yīng)用,并取得了良好的效果。然而,這些軟件雖功能強(qiáng)大但價(jià)格昂貴,大多數(shù)普通高校和科研人員承擔(dān)不起[5]。因此,選用開(kāi)源的Python作為數(shù)學(xué)實(shí)驗(yàn)課程的輔助軟件是明智之舉[6]。Python是目前常用的編程語(yǔ)言之一,具有很強(qiáng)的生命力[6]。Python語(yǔ)言以其簡(jiǎn)單易學(xué)、面向?qū)ο?、免費(fèi)開(kāi)源等特點(diǎn)著稱(chēng)[7],并擁有豐富的第三方庫(kù)支持,可應(yīng)用于數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、人工智能等多個(gè)領(lǐng)域[6]。
1 基于Python 的數(shù)學(xué)分析課程實(shí)驗(yàn)教學(xué)的意義
數(shù)學(xué)分析是古典微積分的核心內(nèi)容,是學(xué)習(xí)專(zhuān)業(yè)基礎(chǔ)課、專(zhuān)業(yè)課的一塊基石,在科學(xué)技術(shù)中有廣泛應(yīng)用。通過(guò)學(xué)習(xí),提高學(xué)生的邏輯推理能力、抽象思維能力及計(jì)算能力,增強(qiáng)基本技能,擴(kuò)大視野,陶冶情操,進(jìn)而提高數(shù)學(xué)素質(zhì)與數(shù)學(xué)修養(yǎng)。然而,當(dāng)前數(shù)學(xué)分析課程教學(xué)普遍存在授課形式單一、學(xué)生學(xué)習(xí)興趣不高等問(wèn)題。數(shù)學(xué)分析課程內(nèi)容抽象復(fù)雜,部分學(xué)生難以理解,甚至產(chǎn)生畏難情緒。因此,有必要積極探索新的教學(xué)思路和方法,以提升教學(xué)效果。借助Py?thon進(jìn)行可視化實(shí)驗(yàn)和復(fù)雜問(wèn)題計(jì)算,可以使學(xué)生的理解更加直觀,提高學(xué)習(xí)積極性[8]。
1.1 Python 編程成為必備技能
隨著大數(shù)據(jù)、人工智能等技術(shù)的快速發(fā)展,編程技能已成為相關(guān)領(lǐng)域從業(yè)人員的必備技能[6]。目前,我校所有理工類(lèi)專(zhuān)業(yè)均開(kāi)設(shè)Python程序設(shè)計(jì)課程,對(duì)學(xué)生進(jìn)行編程教育。在數(shù)學(xué)分析教學(xué)中若融入Py?thon的可視化、仿真和建模等,不僅使學(xué)生對(duì)相應(yīng)的數(shù)原理的思考更深入透徹,而且對(duì)學(xué)生提高動(dòng)手實(shí)踐能力方面也有幫助。
1.2 改善理論教學(xué)枯燥性
傳統(tǒng)教學(xué)模式下,教師難以兼顧所有學(xué)生的個(gè)體差異,容易導(dǎo)致部分學(xué)生學(xué)習(xí)積極性不高。Python語(yǔ)言的圖像功能有助于學(xué)生減輕學(xué)習(xí)畏難心理,加強(qiáng)理解和對(duì)比。圖形可視化可以將抽象的數(shù)學(xué)概念以更直觀、有趣的方式呈現(xiàn),激發(fā)學(xué)生的學(xué)習(xí)興趣,同時(shí)也有助于教師兼顧不同學(xué)生的學(xué)習(xí)需求。
1.3 提升數(shù)學(xué)建模能力
數(shù)學(xué)課程教學(xué)普遍注重理論知識(shí)的講解,而忽視與實(shí)際應(yīng)用的結(jié)合,導(dǎo)致學(xué)生缺乏感性認(rèn)識(shí)。利用Python軟件進(jìn)行數(shù)學(xué)建模,可以培養(yǎng)學(xué)生的建模意識(shí)和編程能力,并幫助他們解決實(shí)際問(wèn)題。這不僅使得課堂教學(xué)更生動(dòng)形象,也會(huì)提升學(xué)生解決實(shí)際問(wèn)題的能力。同時(shí),學(xué)生數(shù)學(xué)建模能力也將得到進(jìn)一步提升,向?qū)I(yè)更深領(lǐng)域發(fā)展。
2 基于Python 的可視化和計(jì)算教學(xué)案例
本節(jié)將通過(guò)典型案例,介紹如何利用Python 的SymPy、Math、SciPy、NumPy、Matplotlib 等第三方庫(kù)進(jìn)行函數(shù)繪圖、極限計(jì)算、導(dǎo)數(shù)和積分計(jì)算等操作。案例實(shí)驗(yàn)環(huán)境是Windows11+Python3.9,所用函數(shù)來(lái)自華東師范大學(xué)編寫(xiě)的《數(shù)學(xué)分析》教材(第五版)[9]。
2.1 繪制圖像
Python可以繪制二維和三維圖形,例如一元函數(shù)的二維圖像、二元函數(shù)的三維圖像以及空間曲線(xiàn)等。
例 1:繪 制 f (x) = (2x - 5) 3 x2 在 [-2,3] 上 的圖形。
2.2 了解函數(shù)分布
函數(shù)極限的概念較為抽象,部分學(xué)生難以理解。以涉及無(wú)窮大、無(wú)窮小和有界函數(shù)的極限為例,傳統(tǒng)的板書(shū)和語(yǔ)言描述難以清晰地展現(xiàn)函數(shù)的變化趨勢(shì),而Python的可視化功能可以彌補(bǔ)這一缺陷,幫助學(xué)生直觀地理解極限的概念。
結(jié)果展示如圖2, 當(dāng)x → 0時(shí),函數(shù)值在區(qū)間[-1,1] 來(lái)回振蕩,越接近0,振蕩頻率越高,但并不趨于0。從圖像看,越來(lái)越快地振蕩而不停止,故可理解不存在極限。
2.3 計(jì)算極限
求極限的命令是limit(f,x,x_0,dir) ,其四個(gè)參數(shù)分別是:函數(shù)或數(shù)列極限表達(dá)式,極限的變量,變化的趨勢(shì)和極限的方向。dir =‘+ ’, dir =‘ -’分別表示右、左極限。注意:Python符號(hào)運(yùn)算時(shí)應(yīng)先加載數(shù)學(xué)符號(hào)函數(shù)庫(kù)SymPy。
2.4 計(jì)算導(dǎo)數(shù)或偏導(dǎo)數(shù)
求微分關(guān)鍵是求導(dǎo),此處僅討論求解函數(shù)導(dǎo)數(shù),可以利用SymPy包的命令diff來(lái)完成,語(yǔ)法是: diff(f,x,alpha) ,其中f為求導(dǎo)函數(shù),x 為自變量,alpha為求導(dǎo)的其他設(shè)置,如階數(shù)等。很多時(shí)候,自變量還有特定的值,可以進(jìn)行表達(dá)式代入值的求導(dǎo),這時(shí)需要定義函數(shù),通過(guò)evalf方法傳入x 的數(shù)值。
2.5 計(jì)算函數(shù)的積分
在Python中,使用SymPy包可以計(jì)算微積分,主要通過(guò)integrate方法計(jì)算,語(yǔ)法是: integrate(f,(x,a,b)),其中f為被積函數(shù),x為自變量,a,b分別為上、下限。
對(duì)于比較復(fù)雜的積分,部分學(xué)生缺乏空間想象力或繪圖能力,難以繪制積分相關(guān)圖形,找不到積分區(qū)域或積分限。有些學(xué)生則對(duì)積分公式或方法掌握不牢,無(wú)法或很難計(jì)算。以下通過(guò)心形線(xiàn)的例子,計(jì)算心形線(xiàn)長(zhǎng)度及其所圍面積。
例9: 已知心形線(xiàn)r = 2(1 + cosθ ),求它的弧長(zhǎng)和所圍圖形的面積。
2.6 計(jì)算曲線(xiàn)積分和曲面積分
由于Python目前缺乏直接計(jì)算曲線(xiàn)積分和曲面積分的函數(shù),通常需要利用數(shù)學(xué)公式將其轉(zhuǎn)換為定積分或二重積分進(jìn)行求解。曲線(xiàn)積分所對(duì)應(yīng)的定積分被積函數(shù)往往較為復(fù)雜,可以使用 SciPy 庫(kù)的 inte?grate.quad() 函數(shù)進(jìn)行計(jì)算。類(lèi)似地,曲面積分所對(duì)應(yīng)的二重積分可以使用 integrate.dblquad() 函數(shù)進(jìn)行計(jì)算。
3 結(jié)論
Python 語(yǔ)言應(yīng)用廣泛,幾乎涵蓋了所有程序領(lǐng)域,被譽(yù)為“膠水語(yǔ)言”。自2013年起,越來(lái)越多的高校開(kāi)始面向非計(jì)算機(jī)專(zhuān)業(yè)開(kāi)設(shè)Python語(yǔ)言編程課程。上述分析和案例實(shí)踐表明,Python 軟件可以有效輔助數(shù)學(xué)分析課程教學(xué),幫助學(xué)生理解抽象的理論知識(shí),并將其應(yīng)用于解決實(shí)際問(wèn)題。盡管Python在計(jì)算復(fù)雜積分等方面仍有提升空間,但其作為一款免費(fèi)開(kāi)源軟件,擁有強(qiáng)大的社區(qū)支持和持續(xù)更新的能力,未來(lái)發(fā)展?jié)摿薮?。本文探討了Python在數(shù)學(xué)分析實(shí)驗(yàn)教學(xué)中的應(yīng)用,旨在幫助學(xué)生更好地理解和應(yīng)用所學(xué)知識(shí),并掌握 Python的編程思想。在未來(lái)就業(yè)市場(chǎng)中,數(shù)學(xué)專(zhuān)業(yè)畢業(yè)生需要具備一定的計(jì)算機(jī)和軟件操作能力。因此,將Python融入數(shù)學(xué)專(zhuān)業(yè)課程教學(xué),是順應(yīng)時(shí)代發(fā)展趨勢(shì)、提升人才培養(yǎng)質(zhì)量的必然選擇。