詹涌強(qiáng)
摘? 要:MATLAB是國際上流行的科學(xué)與工程計(jì)算軟件,線性代數(shù)課程是大學(xué)教育的一門重要基礎(chǔ)課。將MATLAB軟件與線性代數(shù)教學(xué)結(jié)合起來,能夠大大簡(jiǎn)化計(jì)算的過程和步驟,提高計(jì)算效率,激發(fā)學(xué)生的學(xué)習(xí)興趣。文章根據(jù)作者自身的教學(xué)經(jīng)驗(yàn),就MATLAB在線性代數(shù)教學(xué)中的應(yīng)用作了詳細(xì)的闡述。
關(guān)鍵詞:MATLAB;線性代數(shù);教學(xué)
中圖分類號(hào):O1-4? ? ? ? ?文獻(xiàn)標(biāo)志碼:A? ? ? ? ?文章編號(hào):2095-2945(2019)34-0156-03
Abstract: MATLAB is a popular scientific and engineering calculation software in the world. The course of linear algebra is an important basic course in university education. The combination of MATLAB software and linear algebra teaching can greatly simplify the process and steps of calculation, improve the efficiency of calculation and stimulate students' interest in learning. According to the author's own teaching experience, this paper expounds in detail the application of MATLAB in the teaching of linear algebra.
Keywords: MATLAB; linear algebra; teaching
線性代數(shù)作為大學(xué)教育的一門重要基礎(chǔ)課,是學(xué)生入校后最早學(xué)習(xí)的課程之一,關(guān)系到學(xué)生后繼專業(yè)課程的學(xué)習(xí),是非常重要的一門學(xué)科。在計(jì)算機(jī)迅猛發(fā)展的今天,將計(jì)算機(jī)軟件與線性代數(shù)教學(xué)相結(jié)合,已成為教學(xué)改革的熱點(diǎn)。而計(jì)算機(jī)軟件的不斷升級(jí)換代為大學(xué)數(shù)學(xué)的教學(xué)提供了優(yōu)越的條件,MATLAB軟件作為眾多軟件的佼佼者,目前已經(jīng)成為國際科學(xué)界最具影響力、最有活力的科學(xué)計(jì)算軟件。應(yīng)用MATLAB軟件輔助線性代數(shù)的教學(xué),將會(huì)在很大程度上降低教與學(xué)的難度,縮小數(shù)學(xué)理論與數(shù)學(xué)應(yīng)用之間的距離,并能很好的培養(yǎng)學(xué)生的數(shù)學(xué)應(yīng)用能力和創(chuàng)新能力,提高學(xué)生學(xué)習(xí)數(shù)學(xué)的興趣[1]。本文就MATLAB在線性代數(shù)教學(xué)中的應(yīng)用進(jìn)行了探討。
1 矩陣與行列式
矩陣與行列式是線性代數(shù)中兩個(gè)最基本的內(nèi)容,線性代數(shù)的后續(xù)內(nèi)容都是以矩陣與行列式為基礎(chǔ)展開的。在MATLAB中矩陣的輸入方法是:將矩陣的所有元素用方括號(hào)括起來,按矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號(hào)分隔,不同行的元素之間用分號(hào)分隔。例如輸入命令:
>> A=[1 2 3 4;5 6 7 8;9 10 11 12]
則生成的矩陣A為:
A =
1? ? ?2? ? ?3? ? ?4
5? ? ?6? ? ?7? ? ?8
9? ? 10? ? 11? ? 12
行列式的結(jié)果是一個(gè)數(shù),只有行和列相等的矩陣才存在行列式。行列式的輸入方法為:det(A),其中det為行列式英文單詞determinant的縮寫,A為行和列相等的矩陣,輸出的結(jié)果是一個(gè)數(shù)。例如輸入命令:
>> A=[1 2 3;4 5 6;7 8 10];
>> det(A)
ans =
-3.0000
2 求向量組的極大無關(guān)組及將矩陣化為最簡(jiǎn)形[2]
判斷向量組的線性相關(guān)性及求向量組的極大無關(guān)組在MATLAB中均可以很容易的實(shí)現(xiàn),當(dāng)我們將矩陣的每一列看成一個(gè)向量,根據(jù)線性代數(shù)的知識(shí)[3],當(dāng)向量組構(gòu)成的矩陣的秩<向量的個(gè)數(shù),則向量組是線性相關(guān)的,當(dāng)矩陣的秩=向量的個(gè)數(shù)時(shí),則向量組是線性無關(guān)的,故我們可以由矩陣的秩與向量個(gè)數(shù)的關(guān)系判斷出向量組的線性相關(guān)與線性無關(guān)性。求矩陣A的秩R(A)的命令為:rank(A)。
例 判斷向量組?琢1(3,1,1)T,2(1,-1,3)T,3(0,2,-4)T,4(2,-1,4)T的線性相關(guān)性。
>> A=[3 1 0 2;1 -1 2 -1;1 3 -4 4]
A =
3? ? ?1? ? ?0? ? ?2
1? ? -1? ? ?2? ? -1
1? ? ?3? ? -4? ? ?4
>> rank(A)
ans =
2
因?yàn)橄蛄拷M構(gòu)成的矩陣A的秩R(A)=2<向量的個(gè)數(shù)4,故向量組是線性相關(guān)的。
而求向量組的極大無關(guān)組可通過命令reef(A)進(jìn)行。命令reef(A)可以將矩陣A化為最簡(jiǎn)形矩陣。進(jìn)一步可判斷出向量組的極大無關(guān)組及將極大無關(guān)組外的向量用極大無關(guān)組線性表示出來。如上例,再進(jìn)一步求向量組(?琢1,?琢2,?琢3,?琢4)的一個(gè)極大無關(guān)組,并將其余向量用極大無關(guān)組表示。在MATLAB窗口輸入命令如下:
>> rref(A)
ans =
1.0000? ? ? ? ?0? ? 0.5000? ? 0.2500
0? ? 1.0000? ?-1.5000? ? 1.2500
0? ? ? ? 0? ? ? ? 0? ? ? ? ?0
通過將矩陣A化為最簡(jiǎn)形矩陣以后,根據(jù)線性代數(shù)知識(shí)[3],容易看出向量組?琢1,?琢2即是向量組的一個(gè)極大無關(guān)組,?琢3,?琢4可以用?琢1,?琢2線性表示,系數(shù)即是A化為最簡(jiǎn)形以后?琢3,?琢4對(duì)應(yīng)的系數(shù),即:?琢3=0.5?琢1-1.5?琢2,?琢4=0.25?琢3+1.25?琢4。
3 線性方程組的求解[2]
線性方程組的求解是線性代數(shù)的一個(gè)重要內(nèi)容,對(duì)于齊次線性方程組AX=0,其解有兩種情況[3]:(1)R(A)=n(未知量的個(gè)數(shù)),方程組只有零解;(2)R(A) 在MATLAB命令窗口中輸入下面命令: >> A=[2 4 -1 4 16;-3 -6 2 -6 -23;3 6 -4 6 19;1 2 5 2 19]; >> rank(A) ans = 2 系數(shù)矩陣A的秩R(A)=2<5(未知量個(gè)數(shù)),方程有非零解,再求方程組的基礎(chǔ)解系。 >> null(A,'r') ans = -2? ? - 2? ? -9 1? ? ?0? ? ?0 0? ? ?0? ? -2 0? ? ?1? ? ?0 0? ? ?0? ? ?1 得到方程組的通解為x=k1(-2,1,0,0,0)T+k2(-2,0,0,1,0)T+k3(-9,0,-2,0,1)T。 而對(duì)于非齊次線性方程組AX=b(b≠0),由線性代數(shù)的知識(shí)可知[3],其解有三種情況:(1)R(A) 在MATLAB命令窗口中輸入下面命令: >> A=[2 4 -1 4 16;-3 -6 2 -6 -23;3 6 -4 6 19;1 2 5 2 19]; >> b=[-2 7 -23 43]'; >> B=[A,b]; >> rref(B) ans = 1? ? ?2? ? ?0? ? ?2? ? ?9? ? ?3 0? ? ?0? ? ?1? ? ?0? ? ?2? ? ?8 0? ? ?0? ? ?0? ? ?0? ? ?0? ? ?0 0? ? ?0? ? ?0? ? ?0? ? ?0? ? ?0 通過增廣矩陣的最簡(jiǎn)形B可以看出,R(A)=R(A,b)=2 >> null(A,'r') ans = -2? ? -2? ? -9 1? ? ?0? ? ?0 0? ? ?0? ? -2 0? ? ?1? ? ?0 0? ? ?0? ? ?1 >> x0=A\b x0 = 0 0 22/3 0 1/3 得到方程組的通解為: x=k1(-2,1,0,0,0)T+k2(-2,0,0,1,0)T+k3(-9,0,-2,0,1)T+0,0,,0, 4 求矩陣的特征值與特征向量 在線性代數(shù)中求方陣A的特征值與特征向量是一個(gè)難點(diǎn),計(jì)算量很大,學(xué)生不易掌握且容易算錯(cuò)。而在MATLAB中求方陣A的特征值與特征向量則非常簡(jiǎn)單,其命令為:[V,D]=eig(A)。其中V、D均為與矩陣A同階的矩陣,矩陣D的主對(duì)角線元素為A的特征值,矩陣V的列為矩陣A的單位特征向量,它與D中的特征值一一對(duì)應(yīng)。例如,求下面矩陣A的特征值與特征向量。 在MATLAB命令窗口中輸入下面命令: >> A=[1 2 3;2 1 3;1 1 2]; >> [V,D]=eig(A) V = 0.6396? ? 0.7071? ?-0.5774 0.6396? ?-0.7071? ?-0.5774 0.4264? ?-0.0000? ? 0.5774 D = 5.0000? ? ? ? ?0? ? ? ? 0 0? ?-1.0000? ? ? ? 0 0? ? ? ? ?0? ?0.0000 從矩陣D可以看出,矩陣A有三個(gè)不同的特征值5、-1、0,特征值5對(duì)應(yīng)的單位特征向量為矩陣V的第一列(0.6396,0.6396,0.4264)T,特征值-1對(duì)應(yīng)的單位特征向量為矩陣V的第二列(0.7071,-0.7071,0)T,特征值0對(duì)應(yīng)的單位特征向量為矩陣V的第三列(-0.5774,-0.5774,0.5774)T。 5 結(jié)束語 線性代數(shù)中的計(jì)算與化簡(jiǎn)步驟多,過程繁瑣,學(xué)生容易出錯(cuò)。而利用MATLAB軟件計(jì)算線性代數(shù)中的許多問題,命令簡(jiǎn)潔、操作簡(jiǎn)單,大大簡(jiǎn)化了計(jì)算過程,可以直接得到答案。因此將MATLAB軟件與線性代數(shù)教學(xué)相結(jié)合,能夠大大提高學(xué)生學(xué)習(xí)的積極性和能動(dòng)性,調(diào)動(dòng)學(xué)生的學(xué)習(xí)興趣。但是,需要指出的是,教師教學(xué)時(shí)還是要以課本知識(shí)為主,MATLAB軟件只是起到一個(gè)輔助的作用,教學(xué)要把握好這個(gè)度。 參考文獻(xiàn): [1]平怡.MATLAB在大學(xué)數(shù)學(xué)教學(xué)中的應(yīng)用研究[J].湖北廣播電視大學(xué)學(xué)報(bào),2008,12(11):135-136. [2]楊威,高淑萍.線性代數(shù)計(jì)算與應(yīng)用指導(dǎo)(MATLAB版)[M].西安:西安電子科技大學(xué)出版社,2013. [3]同濟(jì)大學(xué)數(shù)學(xué)系.線性代數(shù)第五版[M].北京:高等教育出版社,2010.