程松林 上海電機(jī)學(xué)院
Matlab在《線性代數(shù)》課程教學(xué)中的應(yīng)用
程松林 上海電機(jī)學(xué)院
通過(guò)實(shí)例問(wèn)題的建模分析和計(jì)算探究了Matlab在線性代數(shù)課堂教學(xué)中的重要作用,為課堂矩陣的計(jì)算理論教學(xué)引導(dǎo)學(xué)生深入理解和掌握計(jì)算方法,為后續(xù)課程理論與實(shí)踐結(jié)合奠定基礎(chǔ)。
線性代數(shù) Matlab 模型
線性代數(shù)是以矩陣計(jì)算為主要工具來(lái)研究數(shù)量間的線性關(guān)系的基礎(chǔ)理論課程,隨著計(jì)算機(jī)和信息技術(shù)的飛速發(fā)展與廣泛應(yīng)用,越來(lái)越多的工程問(wèn)題可以通過(guò)離散化的數(shù)值計(jì)算得到定量地解決,使得主要以離散變量作為對(duì)象的線性代數(shù)課程發(fā)揮著越來(lái)越重要的作用。同時(shí),隨著Matlab技術(shù)的推出和不斷推廣,Matlab作為線性代數(shù)課程自主學(xué)習(xí)的計(jì)算軟件,可以有效幫助學(xué)生強(qiáng)化實(shí)踐、機(jī)算(用計(jì)算機(jī)算題)和探索環(huán)節(jié),為進(jìn)一步理解矩陣計(jì)算理論提供了天然的體驗(yàn)平臺(tái)。更重要的是,基于Matlab的線性代數(shù)計(jì)算廣泛應(yīng)用于信息、電子、通信、控制、金融、經(jīng)濟(jì)和管理等領(lǐng)域,因此為最大限度調(diào)動(dòng)學(xué)生學(xué)習(xí)的主觀能動(dòng)性在線性代數(shù)課程中,引入Matlab教學(xué)和實(shí)驗(yàn)?zāi)P铜h(huán)節(jié)是非常有必要的。
設(shè)某國(guó)的經(jīng)濟(jì)由煤炭、電力和鋼鐵三個(gè)部門組成,各個(gè)部門之間的產(chǎn)出分配如下表所示:
部門的產(chǎn)出分配情況 采購(gòu)部門煤炭 電力 鋼鐵0.0 0.4 0.6 煤炭0.6 0.1 0.2 電力0.4 0.5 0.2 鋼鐵
表中第二列表示電力的總產(chǎn)出分配為:40%給煤炭部門,10%給電力部門,50%給鋼鐵部門,分別用x1, x2, x3表示煤炭、電力和鋼鐵部門產(chǎn)出的總價(jià)格,求使得每個(gè)部門收支平衡時(shí)的價(jià)格。
解:煤炭部門的產(chǎn)出為x1,投入為0.4 x2+0.6x3,收支平衡假設(shè)下有x1= 0 .4 x2+0.6x3;同理,電力和鋼鐵部門也分別由收支平衡可得
整理得齊次方程組并運(yùn)用矩陣的初等行變換方法將矩陣化成行最簡(jiǎn)形,再寫(xiě)出等價(jià)方程組來(lái)進(jìn)行求通解,在課堂講解這種“手算”方法后也可以在Matlab上通過(guò)命令來(lái)計(jì)算:
>> A=sym([1,-0.4,-0.6;-0.6,0.9,-0.2;-0.4,-0.5,0.8]);
>> B=null(A)
輸出結(jié)果為B =[]31/33, 28/33, 1]T,即表示方程組有通解x = c(31,28,33)T,就是說(shuō)當(dāng)該國(guó)煤炭、電力和鋼鐵三個(gè)部門的產(chǎn)出分別為31、28和33個(gè)單位時(shí),可以實(shí)現(xiàn)投入產(chǎn)出的平衡。
假設(shè)某城市有2組單行道,構(gòu)成了一個(gè)包含4個(gè)節(jié)點(diǎn)A,B,C,D的十字路口,如圖1所示。圖上帶方向箭頭旁邊的數(shù)字表示在交通繁忙時(shí)段的汽車從其他路段進(jìn)出此十字路口的流量情況(每小時(shí)的車流數(shù))?,F(xiàn)在要求我們計(jì)算每?jī)蓚€(gè)節(jié)點(diǎn)之間該路段上的交通流量x1, x2, x3, x4具體為多少。
圖1 十字路口交通流量圖示
解:我們假定在每個(gè)節(jié)點(diǎn)上,進(jìn)入和離開(kāi)的車數(shù)相等,可以得到四個(gè)十字路口節(jié)點(diǎn)的流通方程:節(jié)點(diǎn)A:x1+ 4 50 = x2+610;節(jié)點(diǎn)B:x2+ 5 20 = x3+480;
節(jié)點(diǎn)C:x3+ 3 90 = x4+600;節(jié)點(diǎn)D:x4+ 6 40 = x1+310。
將方程進(jìn)行等價(jià)變換整理,寫(xiě)成非齊次方程組的標(biāo)準(zhǔn)形式,在課堂上講解運(yùn)用矩陣的初等行變換求得矩陣的行階梯形和行最簡(jiǎn)形后,我們可以引導(dǎo)學(xué)生基于Matlab軟件輸入命令并調(diào)用函數(shù)U=rref([A,b]),從而很快求得上述方程組對(duì)應(yīng)的增廣矩陣的行最簡(jiǎn)形式。
>> A=[1,-1,0,0;0,1,-1,0;0,0,1,-1;-1,0,0,1];
>> b=[160;-40;210;-330];
>> U=rref([A,b])
輸出結(jié)果為
實(shí)驗(yàn)結(jié)果分析:
矩陣U是所求增廣矩陣的行最簡(jiǎn)形,其中第1至4列分別代表變量x1, x2, x3, x4的系數(shù),第5列則是代表等式右邊的常數(shù)項(xiàng)。把第4列移到等式右邊,其等價(jià)方程結(jié)果為:
由于有效方程數(shù)比未知數(shù)的數(shù)目少,三個(gè)有效方程只能解決三個(gè)變量的問(wèn)題,即沒(méi)有給出足夠多的約束信息來(lái)唯一地確定四個(gè)變量x1, x2, x3, x4,其原因在于,特別地如果有些車沿著這四方的單行道繞圈,不會(huì)影響總系統(tǒng)的輸入輸出流量,但可以大大增加這四條路上的流量。所以我們稱x4為自由變量。
上面兩個(gè)模型分別是基于實(shí)際問(wèn)題建立齊次方程組模型和非齊次方程組模型,對(duì)于它們的解我們可以在課堂上演示“手算”方法的同時(shí),在課堂上基于Matlab軟件進(jìn)行試驗(yàn)計(jì)算,并通過(guò)驗(yàn)證兩種算法的結(jié)果一致來(lái)激發(fā)大家對(duì)矩陣計(jì)算方法的學(xué)習(xí)熱情和應(yīng)用于實(shí)踐的興趣,為后續(xù)課程如運(yùn)籌學(xué)、離散數(shù)學(xué)、數(shù)值分析和矩陣分析等課程學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。
[1]劉三明.線性代數(shù)及應(yīng)用.南京大學(xué)出版社,2012
[2]吳傳生,王衛(wèi)華.線性代數(shù).北京:高等教育出版社,2003.