楊揚 趙建強
摘 要:本文首先分析了信息與計算科學(xué)專業(yè)開設(shè)數(shù)學(xué)應(yīng)用軟件這門實驗課的必要性。該課程作為“學(xué)數(shù)學(xué)”和“應(yīng)數(shù)學(xué)”之間的一座橋梁,可以使學(xué)生們更好地理解學(xué)過的數(shù)學(xué)知識,方便有效地做好數(shù)學(xué)實驗,提高他們解決實際問題的能力,增強他們的學(xué)習興趣。其次本文從教學(xué)內(nèi)容、教學(xué)目的、教學(xué)方法等方面說明如何進行該課程的教學(xué)改革。我們強調(diào)該課程的實用性,重視該課程實驗教學(xué)改革的必要性。
關(guān)鍵詞:數(shù)學(xué)應(yīng)用軟件;數(shù)學(xué)實驗;實驗教學(xué);Mathematica;Matlab
引言:信息與計算科學(xué)(簡稱信計)專業(yè)是一種隨著計算機發(fā)展而迅速崛起的數(shù)學(xué)類專業(yè)。我們希望信計專業(yè)培養(yǎng)的學(xué)生具有良好的數(shù)學(xué)基礎(chǔ),能熟練地使用計算機,初步具備在信息與計算科學(xué)領(lǐng)域的某個方向上從事科學(xué)研究,解決實際問題,設(shè)計開發(fā)有關(guān)軟件的能力。該專業(yè)的學(xué)生在大學(xué)一二年級需要花費大量的精力學(xué)習數(shù)學(xué)類基礎(chǔ)課程,旨在培養(yǎng)學(xué)生嚴密的邏輯推理能力及準確、快捷的計算能力。但是這些課程的教學(xué)內(nèi)容側(cè)重于定義的敘述、定理的證明、公式的推導(dǎo)等,其學(xué)習過程往往是枯燥的。這樣一來,一些學(xué)生便會對該專業(yè)的實用性感到迷茫,同時會對以后一些數(shù)學(xué)類專業(yè)課的學(xué)習失去興趣,甚至會出現(xiàn)厭煩情緒。而這個問題在我們這樣的部分學(xué)生基礎(chǔ)較差的本科院校可能會更加突出。
如何使學(xué)生們更好地理解學(xué)過的數(shù)學(xué)知識,提高他們解決實際問題的能力,增強他們的學(xué)習興趣顯得尤為重要。當然很多學(xué)者也對此作出了一定的研究。如唐曉靜在“信息與計算科學(xué)專業(yè)應(yīng)用型人才培養(yǎng)模式的研究” [1]一文中分析了信計專業(yè)教學(xué)的特點和存在的教與學(xué)的矛盾,并以《高等代數(shù)》為試點進行教學(xué)改革,積極探索教學(xué)與實際相結(jié)合與計算機信息有機結(jié)合的教學(xué)模式。朱健民等人在《大學(xué)數(shù)學(xué)實驗課的實踐與探索》[2]一文中介紹了在數(shù)學(xué)教學(xué)改革中開設(shè)數(shù)學(xué)實驗課的一些體會和認識,強調(diào)了數(shù)學(xué)實驗課的重要性。本文將在以上研究工作的基礎(chǔ)上,結(jié)合我校的實際情況,說明開設(shè)數(shù)學(xué)應(yīng)用軟件這門實驗課的必要性,并從教學(xué)內(nèi)容、教學(xué)方法等方面來剖析我校是如何根據(jù)實際情況進行該課程的實驗教學(xué)改革的。
一、為什么要開設(shè)數(shù)學(xué)應(yīng)用軟件這門課?
在解決一些復(fù)雜的實際問題時,首先需要建立該問題的數(shù)學(xué)模型,然后對該數(shù)學(xué)模型進行求解,最后對所得的結(jié)果進行分析、修正從而給出該實際問題的一個合理的解。當然,對數(shù)學(xué)模型進行求解,往往不是靠一支筆、一張紙就可以了的,其一般那要以數(shù)學(xué)理論知識作為基本原理,利用計算機(具有強大的存儲能力及計算能力)作為工具來進行數(shù)學(xué)實驗。該思想在信計專業(yè)所課設(shè)的《數(shù)學(xué)建模》、《運籌學(xué)》、《數(shù)值分析》等課程中都有所體現(xiàn)。這些課程中都有一定學(xué)時的實驗課學(xué)時,需要學(xué)生利用計算機來完成相關(guān)的數(shù)學(xué)實驗。
在進行數(shù)學(xué)實驗時,我們通常需要按照以數(shù)學(xué)知識對問題分析所得的解題思路(算法)編寫一些指令完成一些相關(guān)的運算,這些用高級語言如C語言是可以完成的,但是其矩陣計算程序繁瑣、可讀性較差,給閱讀和設(shè)計程序帶來不便,而且C語言比其他高級語言較難掌握。雖然,我校信計專業(yè)的學(xué)生在大一下學(xué)期開設(shè)了C語言這門課程,但很多學(xué)生很難通過這一個學(xué)期的學(xué)習對C語言有很好的掌握。想做好數(shù)學(xué)實驗,但C語言又不熟練,在這樣的情況下,我們會想到另外一個工具――數(shù)學(xué)應(yīng)用軟件,它是處理數(shù)學(xué)問題的應(yīng)用軟件,為計算機解決現(xiàn)代科學(xué)技術(shù)各領(lǐng)域中所提出的數(shù)學(xué)問題提供求解手段。常用的數(shù)學(xué)應(yīng)用有Mathematica、Maple、Matlab等。
數(shù)學(xué)應(yīng)用軟件一般具有符號演算、數(shù)值計算及圖形處理的功能,其高度的集成性和可讀性使得原先復(fù)雜的數(shù)學(xué)問題的求解過程變得非常的簡單,例如這樣一個問題。
【問題1】求函數(shù)在區(qū)間[-10,10]中的最小值[3]。對于這樣一個數(shù)學(xué)分析中典型的問題,利用基本的數(shù)學(xué)知識可以很容易確定該問題是否有解并給出其求解思路,但真正用筆去算又變得不可能了。如果大家掌握了數(shù)學(xué)應(yīng)用軟件,就可以很方便地解決這樣一個問題。首先利用數(shù)學(xué)應(yīng)用軟件強大的繪圖功能,畫出該函數(shù)的圖形,對圖形有個大體地了解。然后再運用相關(guān)指令,如Matlab中的指令fminbnd(基于一定的算法編寫)就能得到最小值一個很好的近似值。
顯然,數(shù)學(xué)應(yīng)用軟件的使用可以使得抽象的數(shù)學(xué)在某種意義下看得見,讓學(xué)生不再感到煩躁,而是覺得眼前一亮,自覺地產(chǎn)生這樣一種想法:原來數(shù)學(xué)理論上的結(jié)果和實際所見的結(jié)果真的是吻合的。學(xué)生初步掌握了數(shù)學(xué)應(yīng)用軟件后,可以從簡單重復(fù)的習題演算中解脫出來,將更多的精力投入到數(shù)學(xué)理論和數(shù)學(xué)思想的學(xué)習上,更好地利用實驗方法來學(xué)習掌握數(shù)學(xué)知識,更加富有熱情地應(yīng)用數(shù)學(xué)解決一些實際問題。
由此可見,為了方便有效地做好數(shù)學(xué)實驗,掌握一門數(shù)學(xué)應(yīng)用軟件是必不可少的。為了能夠更好地理解所學(xué)的數(shù)學(xué)知識,同時也為以后所學(xué)的數(shù)學(xué)類專業(yè)課打下良好的實驗基礎(chǔ),我們有必要開設(shè)數(shù)學(xué)應(yīng)用軟件這門實驗課,讓其成為“學(xué)數(shù)學(xué)”和“應(yīng)數(shù)學(xué)”之間的一座橋梁。
二、怎樣上好數(shù)學(xué)應(yīng)用軟件這門課?
我們已經(jīng)闡述了對于信計專業(yè)開設(shè)數(shù)學(xué)應(yīng)用軟件這門課程的必要性。下面我們將從這門課程的教學(xué)內(nèi)容、教學(xué)目的、教學(xué)方法等方面,并通過具體的例子來說明如何上好數(shù)學(xué)應(yīng)用軟件這門課程。同時來剖析我校是如何根據(jù)實際情況進行該課程的實驗教學(xué)改革的。
將數(shù)學(xué)應(yīng)用軟件引入課堂教學(xué),可以展示計算機解決問題的動態(tài)過程和手段,培養(yǎng)學(xué)生用計算機解決實際問題的能力,提高學(xué)生的學(xué)習興趣,培養(yǎng)學(xué)生初步的科研能力。我校原先僅將Mathematica作為教學(xué)內(nèi)容,但根據(jù)教學(xué)的實際需要,后又將
Matlab也納入教學(xué)內(nèi)容,這樣可以更好提高我校信計專業(yè)的學(xué)生的數(shù)值計算能力,為以后《數(shù)值分析》、《微分方程數(shù)值解》、《最優(yōu)化方法》等課程的學(xué)習打下更好的基礎(chǔ)。
作為計算機軟件系統(tǒng),用戶必須按照系統(tǒng)要求書寫命令,系統(tǒng)才能正確地對其處理,得到所需的結(jié)果。因此我們的教學(xué)目的非常清楚,即通過具體問題的求解過程,使得學(xué)生能夠熟練掌握這兩種數(shù)學(xué)應(yīng)用軟件,學(xué)會用它們來進行一些數(shù)值計算和數(shù)據(jù)處理,進而解決一些具體的數(shù)學(xué)問題。
考慮到這門課程的實用性,我們認為將這門課程作為一門獨立開設(shè)的實驗課進行上課更為合理。當然它和傳統(tǒng)意義上的物理、化學(xué)實驗課有著著一定的區(qū)別,該課程中我們更加強調(diào)老師的講授作用。老師的講授可以幫助學(xué)生在較短的時間里熟悉數(shù)學(xué)應(yīng)用軟件的基本指令,在此基礎(chǔ)上再通過一些具體的實驗習題讓學(xué)生自己動手編寫指令更加熟悉它們的使用。我們將本課程安排在我院的機房上課,利用投影設(shè)備,學(xué)生可以很清楚地了解到老師是如何使用這兩種軟件的,這兩種軟件有哪些常用的命令,可以解決哪些問題學(xué)生們在看、聽的同時,自己對著電腦,輸入相關(guān)命令,運行命令,產(chǎn)生結(jié)果,和老師一樣,他們也做到了。
在講授這兩種軟件時應(yīng)特別強調(diào)它們的help功能,學(xué)生通過學(xué)習了解到解決什么樣的問題需要用什么樣的指令,而具體每條指令的調(diào)用格式是怎樣的,是無法完全記憶的,當然也沒有記憶的必要。知道了指令的名稱,在此基礎(chǔ)上熟練使用help功能就能快速正確地寫出每條指令的使用格式。這個過程熟練之后,我們就不會對這兩種軟件的使用感到困難,會對他們更有好感。事實上,這兩軟件的help功能都是非常強大的,存在大量的范例,學(xué)生在使用的同時,也是復(fù)習、自學(xué)的過程,意義重大。
作為一門實驗課,我們將安排一定的基礎(chǔ)實驗,并在此基礎(chǔ)上安排一定數(shù)量的綜合實驗。通過基礎(chǔ)實驗,我們將學(xué)會如何用Mathematica和Matlab來求解微積分基本運算、常微分方程初值問題、級數(shù)展開與函數(shù)逼近、方程與方程組的求解、線性代數(shù)基本運算、函數(shù)圖形的繪制、程序設(shè)計等。以上內(nèi)容中兩種軟件都會有所涉及,雖然兩種軟件都能進行符號演算、數(shù)值計算、圖形繪制,但是兩種軟件的側(cè)重點卻有所不同。我們講授
Mathematica時會側(cè)重講授其符號演算功能,特別強調(diào)表與表達式的構(gòu)造,而講授Matlab時我們會側(cè)重講授其數(shù)值計算功能,特別強調(diào)矩陣的構(gòu)造與操作。我們還會講授一些這兩種軟件的特別之處:如Mathematica的動畫制作及Matlab的模擬仿真。通過這兩種軟件的對比學(xué)習,我們將很好地了解他們的共同之處及不同之處。
下面我們通過一個具體的問題來闡該課程安排綜合實驗的必要性。
【問題2】非線性方程的求根問題。方程的求解是我們經(jīng)常遇到的一類數(shù)學(xué)問題,事實上絕大多數(shù)的非線性方程是無法精確求解的,只能近似求解,例如問題1中的駐點方程。Mathe
matica和Matlab這兩種軟件對方程的求解(精確解或數(shù)值解)都有詳細的介紹。但無論是Mathematica 還是Matlab軟件,它們求數(shù)值解的命令一般都是基于某種算法進行編寫的。事實上,在信計專業(yè)的數(shù)值分析這門課程中,我們會詳細地介紹求解非線性方程的一些算法,如二分法,牛頓法,割線法等。利用數(shù)學(xué)應(yīng)用軟件,我們僅僅通過調(diào)用一條指令也許就得到了滿意的解,但是并不知道隱藏在這樣一條指令后面的算法是什么、源代碼是什么。如果掌握了解了其背后的算法,我們同樣可以利用Mathematica或Matlab編寫程序,寫出屬于我們自己的指令。而該過程正是信計專業(yè)的學(xué)生應(yīng)特別重視的。我們不僅僅要知道求解這些常見的數(shù)學(xué)問題所需的數(shù)學(xué)指令,還要知道隱藏在它們背后的算法,因為只有掌握了這些算法及它們的優(yōu)缺點,才有可能在此基礎(chǔ)上對已有的算法進行改進,創(chuàng)造出其它更為有效的算法,編寫出屬于自己的指令,更好地解決所遇到的實際問題。這種容納各種課程的知識點的綜合實驗可以更加有效地增強學(xué)生對已學(xué)知識的歸納總結(jié)。
三、總結(jié)
上好數(shù)學(xué)應(yīng)用軟件這門實驗課,架好“學(xué)數(shù)學(xué)”和“應(yīng)數(shù)學(xué)”之間的這樣一座橋梁,我們就能更好地實現(xiàn)信息與計算科學(xué)專業(yè)的人才培養(yǎng)目標。
參考文獻:
[1] 唐曉靜.信息與計算科學(xué)專業(yè)應(yīng)用型人才培養(yǎng)模式的研究[J]. 大學(xué)數(shù)學(xué), 2007年01期, 9-12.
[2] 朱健民,李健平,謝端強. 大學(xué)數(shù)學(xué)實驗課的實踐與探索[J]. 數(shù)學(xué)理論與應(yīng)用,2002, 22卷第4期, 41-44.