孫文兵+楊立+君劉瓊
【摘 要】線性代數作為工科專業一門基礎數學課程在傳統教學和學習中重理論而輕實踐,導致線性代數不能為后續課程的學習發揮其實際應用價值。分析了線性代數教學改革中融入Matlab計算軟件的必要性和可行性。結合Matlab在線性代數課程計算中應用實例,闡述了Matlab在線性代數課程教學改革中的意義。
【關鍵詞】線性代數;Matlab;教學改革
1 線性代數教學中值得思考的問題
線性代數的授課對象以工科、管理學專業學生為主,這些專業的學生學習目的不同于數學專業,他們不從事線性代數理論研究,更在乎對后續課程學習的基礎作用,因此從事線性代數教學的教師更要了解授課對象需要什么。傳統的線性代數教學面臨很多的問題值得教學工作者思考:一是過多抽象理論講解缺乏與實際問題的聯系。線性代數本來是一門很抽象的學科,如果教師教學中一味傳授理論缺乏與實際問題的聯系,學生學了以后覺得似懂非懂,理解困難,曾有學生問我,學了線性代數有什么用?是的,學了又不能解決實際問題有什么用,這是因為我們教學過程中忽略了線性代數的應用價值,當然這有一定的歷史原因,線性代數作為大學必修課程從20世紀80年才開始引入[1],另一個原因是線性代數教材的編寫不應以純理論為主,應多結合實際。二是涉及到的計算多以筆算為主。線性代數涉及特別多的矩陣計算,低階情況筆算還勉強可行,但計算量很大,而且大多是機械的加減乘除運算,一節課下來,教師板書幾黑板,“忙”的不亦樂乎,然而收效甚微,繁瑣的計算消耗了學生的學習熱情。 第三,所教授的知識不能滿足后續課程學習的需要。尤其工科專業后續課程往往要以線性代數為工具解決實際問題的計算,由于教授內容重理論忽視與計算機的融合,因此所學的線性代數知識并不能為后續課程計算提供幫助。由此可見,傳統的線性代數教學方法必須進行改革。
2 線性代數教學與Matlab軟件結合的必要性和可行性
面對大型的實際問題往往涉及到批量數據的計算處理,利用矩陣建模恰好能達到這一目的,很多大型的計算問題最終都轉化為矩陣計算,因此線性代數在科學計算中發揮了關鍵的作用,這也是線性代數在工科后續課程中真正價值所在。所以線性代數的課程教學必須與科學計算相結合,一味強調抽象理論的學習和筆算方法,忽略了工科學生學習線性代數的目的所在。
線性代數中的筆算方法對于學生理解方法確實有所幫助,但是對于大型的實際問題幾乎是紙上談兵,寸步難行的。舉個簡單例子,實際中求10階的行列式并不算大型問題,用行或列變換將行列式化為三角形行列式的方法計算行列式要進行339次乘除運算,在不出現任何錯誤的情況下,估計要10-20多分鐘才能算出。而且這種計算對鍛煉學生的計算能力幾乎沒有作用,只會降低學生的學習興趣,而用Matlab軟件只需一個命令便可輕松解決。
Matlab軟件是一種以矩陣為基本單元的高級計算語言,具有功能強、效率高、簡單易學的特點[2]。Matlab最初是美國Cleve Moler教授為方便矩陣計算而編寫的使用Linpack和Eispack的接口程序,經過多年的發展Matlab現在已經成為各高校理工科多門課程基本教學工具,也逐漸成為大學生和研究生必須掌握的一門語言工具,對涉及到矩陣的計算問題使用起來非常方便,所以講Matlab融入到線性代數的教學當中是行之有效的。
3 Matlab軟件融入線性代數教學中的應用舉例
下面舉幾個在線性代數教學中常見的計算問題:
例1 求矩陣的行列式、逆以及矩陣的秩。
在Matlab命令窗口中輸入:
>> A=[3,-2,0,-1;0,2,2,1;1,-2,-3,-2;3,1,2,1];
>> det(A) % 求行列式的值。
輸出結果ans = -11.0000
>> inv(A) % 求矩陣的逆。
輸出結果ans =
-0.0909 -0.0909 0.1818 0.3636
-0.2727 0.7273 0.5455 0.0909
0.6364 0.6364 -0.2727 -0.5455
-0.7273 -1.7273 -0.5455 0.9091
>> rank(A) %求矩陣的秩
輸出結果ans =4
這是一個求四階行列式的值以及矩陣的秩和逆的問題,利用矩陣的初等變換筆算方法大家都有體驗,計算麻煩而且不容出任何錯誤,用Matlab軟件實現只需一個命令,簡單至極。當然有人質疑,如果這些計算都用計算機代替了,不利于學生對概念的理解,所以教學中要把握好分寸,簡單的計算可以幫助學生理解概念原理,但更重要的是引導學生學會科學計算法,因為工科學生掌握線性代數的目的是為后續專業課程中涉及到的計算問題做準備的。再看一個經濟學中常見的應用問題:
例2 在一次投料生產中,獲得四種產品,每次測試總成本如下表所示。
試求每種產品的單位成本。
解:設四種產品的單位成本分別為x1,x2,x3,x4,根據題意建立線性代數方程組:
在Matlab命令窗口輸入:
>> A=[200,100,100,50;500,250,200,100;100,40,40,20;400,180,160,60]; % 方程組系數矩陣
>> b=[2900,7050,1360,5500]';%方程組右端常數項
>> x=A\b %對方程組求解
輸出結果x = 10 5 3 2.
從上面幾個簡單例子可以看出,Matlab軟件融入線性代數教學和學習中可以解決很多復雜機械的計算問題,提高學生的學習興趣,為后續專業課程的學習中發揮線性代數的極大價值打下堅實的基礎,也說明線性代數教學改革中融入Matlab科學計算軟件的重要性。
【參考文獻】
[1]陳懷琛.線性代數要與科學計算結成好伙伴[J].大學數學,(下轉第301頁)(上接第18頁)2010(26):28-33.(增刊1).
[2]劉衛國.Matlab程序設計與應用[M].2版.北京:高等教育出版社,2006.
[3]劉金旺,夏學文.線性代數(修訂版)[M].上海:復旦大學出版社,2008,6.
[責任編輯:曹明明]