

[摘 要] 《線性代數(shù)》是高校理工科學(xué)生的必修公共基礎(chǔ)課,內(nèi)容涉及矩陣、向量、線性方程組求解、特征值與特征向量、二次型等。在有限的學(xué)時(shí)下,傳統(tǒng)的教學(xué)方法主要是從概念和方法上進(jìn)行抽象的講解。針對《線性代數(shù)》的當(dāng)前教學(xué)現(xiàn)狀,結(jié)合軟件Matlab實(shí)現(xiàn)《線性代數(shù)》教學(xué),提出四點(diǎn)改進(jìn)的教學(xué)方法,采用“理論教學(xué)—Matlab仿真—程序強(qiáng)化”的教學(xué)手段,以增強(qiáng)大學(xué)生對理論知識的理解和操練計(jì)算機(jī)的程序編寫。
[關(guān) 鍵 詞] 線性代數(shù);Matlab;程序;仿真;教學(xué)
[中圖分類號] G642 [文獻(xiàn)標(biāo)志碼] A [文章編號] 2096-0603(2017)19-0066-02
當(dāng)前,線性代數(shù)課程既是國內(nèi)外高等學(xué)校理、工、管、農(nóng)類專業(yè)的公共基礎(chǔ)課程,例如,計(jì)算機(jī)科學(xué)與技術(shù)、電子科學(xué)與技術(shù)、軟件工程、機(jī)械制造及其自動(dòng)化等,也是全國碩士研究生入學(xué)考試“高等數(shù)學(xué)”的重要組成部分。作為大學(xué)數(shù)學(xué)課程的一個(gè)分支,《線性代數(shù)》以研究矩陣、向量、向量空間(或稱線性空間)、線性變換、線性方程組求解、二次型等為主要內(nèi)容。由于非線性模型通常可以被近似為線性模型,因此,《線性代數(shù)》不僅具備了純數(shù)學(xué)的高度抽象性,還被具體地、廣泛地應(yīng)用于自然科學(xué)和社會科學(xué)的研究中。美國著名的數(shù)學(xué)教育家、美國國家《線性代數(shù)》課程研究小組核心成員、數(shù)學(xué)課程現(xiàn)代化的倡導(dǎo)者David C. Lay教授曾經(jīng)說過:“《線性代數(shù)》課程是最有趣、最具價(jià)值的大學(xué)數(shù)學(xué)課程”[1][2]。
21世紀(jì)是信息的時(shí)代,科學(xué)技術(shù)的發(fā)展在某種程度上要依靠強(qiáng)大的數(shù)學(xué)理論支撐。《線性代數(shù)》內(nèi)容是其他數(shù)學(xué)類課程的重要基礎(chǔ)成分[3],如,《微分方程》《計(jì)算機(jī)圖形學(xué)》《金融工程》《概率論與數(shù)理統(tǒng)計(jì)》和《最優(yōu)化》。特別地,在經(jīng)濟(jì)、管理、海洋、氣象和金融等專業(yè)中,許多實(shí)際問題都要轉(zhuǎn)換為多變量的數(shù)學(xué)優(yōu)化模型,如“公交車調(diào)度”“產(chǎn)品銷售”“貨幣管理”和“農(nóng)作物栽培”等,而求解這些實(shí)際模型必須以《線性代數(shù)》為基礎(chǔ),才能得到最優(yōu)狀態(tài)。因此,線性代數(shù)的教學(xué)方法研究具有重要的意義。
針對我校《線性代數(shù)》的教與學(xué)現(xiàn)狀以及該課程本身所固有的特點(diǎn),本文提出結(jié)合軟件Matlab實(shí)現(xiàn)的《線性代數(shù)》教學(xué)方法研究。結(jié)合我校人才培養(yǎng)目標(biāo),以提高學(xué)生的學(xué)習(xí)積極性、增強(qiáng)學(xué)生學(xué)習(xí)興趣和注重實(shí)際操作能力為目的,以有效避免純數(shù)學(xué)的理論性和單調(diào)性,建立與Matlab程序?qū)崿F(xiàn)的創(chuàng)新式教學(xué)。以下提出四點(diǎn)關(guān)于《線性代數(shù)》的教學(xué)研究:
一、向量與矩陣的可視化教學(xué)
矩陣是由若干行和若干列所組成的數(shù)表[4],例如,公式(1)給出了一個(gè)3×4矩陣A:
A=202 132 34 7973 56 110 6628 250 30 87(1)
特別地,如果只有一行(列)的矩陣,我們稱之為行(列)向量,并用小寫字母表示。然而,如果只停留在這抽象的概念上進(jìn)行教學(xué),學(xué)生會覺得其在生活的作用不大。而Matlab剛好是可視化實(shí)現(xiàn)的強(qiáng)有力工具,將Matlab結(jié)合到矩陣與向量的教學(xué)中,可以使學(xué)生對《線性代數(shù)》的學(xué)習(xí)更有興趣。例如,我們在講解了矩陣之后,給了個(gè)512×512的彩色辣椒圖(如圖1所示),利用Matlab軟件進(jìn)行imread讀取,得到R,G,B三個(gè)信道的大小為512×512的矩陣P1,P2,P3。通過可視化的效果增強(qiáng)學(xué)生對矩陣及應(yīng)用的認(rèn)識,同時(shí),消除“純數(shù)字”的抽象概念教學(xué)。
■
圖1 彩色辣椒
P1=101 140 … 120123 191 … 115■ ■ ■ ■93 119 … 198512×512,
P2=0 0 … 00 96 … 192■ ■ ■ ■0 79 … 200512×512,
P3=0 142 … 1810 46 … 85■ ■ ■ ■0 36 … 171512×512(2)
二、線性方程組的求解及Matlab實(shí)現(xiàn)
線性方程組的求解是《線性代數(shù)》里的一項(xiàng)重要內(nèi)容,求解結(jié)果包括:(1)無解;(2)有唯一解;(3)無窮多解并求通解。若將Matlab應(yīng)用到線性方程組的求解將能有效避免繁瑣的計(jì)算和分析過程,提高學(xué)生的學(xué)習(xí)興趣。另外,將能引起學(xué)生的好奇心并實(shí)現(xiàn)與Matlab求解一樣的結(jié)果。特別是清楚解析解與數(shù)值解的差異。如下列方程[4]:
x1+x2+2x3-x4=02x1+x2+x3-x4=02x1+2x2+x3+2x4=0(3)
傳統(tǒng)求解方法為(初等變換):
1 1 2 -12 1 1 -12 2 1 2→1 0 0 4/30 1 0 30 0 1 -4/3,得方程組的解為:(x1,x2,x3,x4)′=k(4/3,-3,4/3,1)′,其中k為常數(shù)。
而在Matlab軟件中,可以直接調(diào)用rref命令,如下:
>>C=[1 1 2 -1;2 1 1 -1;2 2 1 2];%回車
>>D=rref(C) %回車
>>D=1 0 0 -1.333
0 1 0 3
0 0 1 -1.333
由此即得方程組的解為:(x1,x2,x3,x4)′=k(1.333,-3,1.333,1)′,其中k為常數(shù)。而這里,1.333恰好是Matlab在format short環(huán)境下的4/3的值。若在輸入矩陣C前,設(shè)置format rat格式,則將保留分?jǐn)?shù)4/3而不進(jìn)行四舍五入,并與解析解完全一致。這樣,學(xué)生不僅了解了應(yīng)用Matlab可以解決大型的線性方程的求解問題,還可以進(jìn)一步了解近似解在工程上的意義與應(yīng)用。
三、特征值與特征向量的教學(xué)
在《線性代數(shù)》課程教學(xué)中,對方陣B的特征值與特征向量的求解步驟一般為:先通過計(jì)算多項(xiàng)式方程λI-B=0求出特征值,再代入方程組(λI-B)x=0求出特征向量x。如果矩陣的階數(shù)大,那么計(jì)算起來也是比較繁瑣的,會造成學(xué)生的興趣低下。現(xiàn)結(jié)合Matlab軟件中的eig命令來計(jì)算矩陣的特征值與特征向量,例如,求矩陣B=2 3 43 5 74 7 11的特征值與特征向量的程序如下:
>>B=[2 3 4;3 5 7;4 7 11];%回車
[x,lamda]=eig(B) %回車
x=
0.6831 0.6607 0.3111
-0.7023 0.4776 0.5278
0.2001 -0.5791 0.7903
lamda=
0.0875 0 0
0 0.6628 0
0 0 17.2497
這里,輸出中的lamda的對角線上的值即為原矩陣的三個(gè)特征值,而x的列為相應(yīng)的三個(gè)特征向量。因此,在Matlab中得較容易地、較快速地求出特征值與特征向量,強(qiáng)化學(xué)生的實(shí)際操作能力和程序編寫能力,培養(yǎng)綜合素質(zhì)全面發(fā)展的大學(xué)畢業(yè)生。
四、二次型的可視化教學(xué)
二次型是《線性代數(shù)》中較難理解的知識點(diǎn),為加深學(xué)生對二次型的認(rèn)識,不能只停留在理論公式的教學(xué)上。否則,將導(dǎo)致學(xué)生無學(xué)習(xí)的積極性。我們可以通過Matlab的強(qiáng)大畫圖功能[5]吸引學(xué)生的眼球,并生動(dòng)形象地展示在課堂上。例如,在講解二次型f(x,y)=x2-5y2+xy時(shí),通過Matlab軟件命令meshgrid與mesh進(jìn)行三維圖形的構(gòu)建,得到如下圖2的效果:
>>[x,y]=meshgrid(-6:0.2:6,-6:0.2:6);
>>f=x.^2-5*y.^2+x.*y;
>>mesh(x,y,f)
■
圖2 二次型的三維曲面
這里通過圖形圖像的結(jié)合,提高了學(xué)生學(xué)習(xí)數(shù)學(xué)公式的興趣,特別是復(fù)雜的公式。而《線性代數(shù)》中有許多大型的數(shù)學(xué)公式,如果利用Matlab進(jìn)行可視化教學(xué),將有助于提高學(xué)生對《線性代數(shù)》的興趣。從而在師生的不斷互動(dòng)中,不僅提高了教師的教學(xué)質(zhì)量而進(jìn)行有效的教學(xué),又培養(yǎng)了學(xué)生的主動(dòng)性而進(jìn)行有效的學(xué)習(xí)。
Matlab是由美國密西根大學(xué)的Moler教授首創(chuàng),原名為Matrix Laboratory的前三個(gè)字母縮寫。在《線性代數(shù)》的教學(xué)中,提出合理地與Matlab實(shí)現(xiàn)相結(jié)合,采用“理論教學(xué)—Matlab仿真—程序強(qiáng)化”的教學(xué)手段,將可以達(dá)到的效果為:(1)促進(jìn)《線性代數(shù)》教學(xué)改革,以提高課堂的教學(xué)質(zhì)量;(2)應(yīng)用Matlab軟件平臺,改變理論教學(xué)方式,采用數(shù)形結(jié)合,以提高學(xué)生的學(xué)習(xí)興趣,避免學(xué)習(xí)理論時(shí)出現(xiàn)乏味性;(3)通過程序設(shè)計(jì)進(jìn)行仿真實(shí)驗(yàn),以有效提高學(xué)生的實(shí)際操作能力。
參考文獻(xiàn):
[1]申國倫,薛有才.中美一些《線性代數(shù)》教材分析與思考[J].大學(xué)數(shù)學(xué),2009,25(5):202-206.
[2]David C. Lay.線性代數(shù)及其應(yīng)用[M].3版.劉深泉,洪毅,譯.北京:機(jī)械工業(yè)出版社,2005.
[3]曾友芳.線性代數(shù)課程教學(xué)質(zhì)量之探討[J].大學(xué)教育,2013(8):73-74.
[4]同濟(jì)大學(xué)數(shù)學(xué)系.線性代數(shù)[M].6版.北京:高等教育出版社,2014.
[5]張雪峰.MATLAB仿真軟件在線性代數(shù)課程中的應(yīng)用研究[J].曲阜師范大學(xué)學(xué)報(bào),2016,42(1):42-46.