【摘要】 MATLAB是《數學實驗》的主要工具之一. 本文以基于MATLAB軟件的數學實驗課程為例,通過實驗過程中常見問題的分析和解決,對數學實驗課程安排進行有益的探討.
【關鍵詞】 數學實驗;MATLAB
從上個世紀80年代中下期開始,數學實驗的思想和內容引人我國高等院校,到上個世紀90年代,數學實驗在一些院校中開始大規模開設,近幾年,數學實驗大有燎原之勢. 但是,仔細考察這些院校開設的數學實驗課程以及數學實驗的教材,不是看做軟件操作課程就是作為數學建模的工具. 在教學進度的安排上未精心策劃,使得學生學習效率低下,數學實驗的效果也沒有預期的好.
在教學中,我們發現利用MATLAB進行數學實驗時,由于學生對基本操作生搬硬套,有些實驗課程設置不合理,以至于學生操作軟件運算經常出現下面提到的各種錯誤,而且這些錯誤不僅僅局限于個別人或少數人,同時這些錯誤也會極大地削弱學生學習積極性,軟件運行多次出現“error using”,也使得數學實驗的趣味性大大減弱.
“Inner matrix dimensions must agree”
這個報錯信息相信使用過MATLAB進行數值運算的人都會遇到. 報錯的原因常常是因為沒有滿足矩陣的乘法規則. 導致這種問題出現大多由以下兩點原因:
1. 開課時教師并未強調MATLAB中“*”為矩陣乘法
可能大多老師覺得這個問題沒有必要強調,學生會注意到的,書上都寫了等,但是就讀者所接觸的學生和MATLAB論壇上的情況,反映出很多學生不是很清楚這點. 其他軟件運算中的“*”是通常意義上的乘法而非矩陣相乘,并且《數學實驗》課程的學生大多已經接觸了計算機高級語言,那么這種想當然的認知就導致了運行MATLAB時,這種報錯信息的頻繁出現.
其實,數學實驗中教師可以采取措施強調MATLAB中“*” 的特殊性. 如從MALTAB名字入手,“MATLAB”全稱為“Matrix Laboratory”,“矩陣實驗室”. 既然是矩陣方面的計算軟件,那么四則運算都要符合矩陣運算規則,順帶還可以引出“\\”(左除),“/”(右除)等運算符的含義. 也可以逆向思維,編寫程序進行加#65380;減#65380;乘運算,讓軟件報錯誤信息“Inner matrix dimensions must agree”,從報錯程序中尋找規律也不失為一種好方法.
2.“*”和“.*”區別不清
對“*”和“.*”的解釋教材一般是用“矩陣相乘”#65380;“數組相乘”來詮釋.雖然此種解釋無可非議,但是在進行運算時,學生還是會分不清何時用“乘”,何時用“點乘”. 出現這類情況的原因大致有兩個:(1)對“*”理解不正確,這個方面上面已經敘述了,在此不再重復;(2)符號運算與數值運算相混淆.
例1y =,求y′.
錯誤程序 diff( ).
錯誤程序是學生對“*”的理解出現了偏差,對教材關于“乘”和“點乘”的解釋,大多學生甚至部分老師認為,“*”就是矩陣的相乘,“.*”是通常意義上的乘法,卻忽略了教材這個解釋是對于數值計算而言的. 而求導#65380;求積分#65380;求方程組,大多進行的是符號運算,而在符號運算中是沒有“點乘”定義的.
正確的程序 diff( )
出現這種運算混淆的原因,我們不能把它歸為學生的計算機語言沒學好,或者計算機老師沒教好,而是數學實驗教師對課程準備階段考慮不周到,不說明運算中的兩類運算,數值計算#65380;符號計算在MATLAB中調用的模塊不相同等信息,要知道符號運算的計算機實現的相關知識幾乎不會出現在本科課程中,不作簡要介紹,學生哪里能夠知道?
以上我們介紹了MATLAB軟件學習中一個容易忽視的問題,并給出了解決方案,闡述了這些問題出現的原因. 我們在要求學生通過計算軟件進行數學實驗時,需要仔細安排課程使得學生具備操作軟件的基本能力,為學生自己解決復雜的綜合性問題打下堅實的基礎,在這個層面上來說,我們現在提出和解決的問題有意義的.
【參考文獻】
[1]. 李尚志.陳發來.數學實驗課程建設的認識與實踐[J].數學的實踐與認識,2001,31(6): 764~768.
[2]. http://www.labfans.com/ [EB].
[3]薛定宇,陳陽泉.高等數學應用問題的MATLAB求解[M].北京:北京清華大學出版社,2004(27).
注:“本文中所涉及到的圖表#65380;注解#65380;公式等內容請以PDF格式閱讀原文#65377;”