熊梅 張大林
摘??要:?在線性代數(shù)教學(xué)過程中,矩陣的逆及矩陣的特征值和特征向量是學(xué)生比較難以掌握的兩個重要知識點(diǎn),本文借助MATLAB軟件,結(jié)合基本概念和求法解析,通過實驗項目的設(shè)計,在實驗教學(xué)過程中讓學(xué)生加深對逆矩陣及矩陣的特征值和特征向量的理解和掌握,并在實際學(xué)習(xí)過程中加以應(yīng)用.
關(guān)鍵詞:?逆矩陣;特征值;實驗教學(xué);MATLAB
MSC(2010)主題分類??15A99
中圖分類號:O151.2
Experimental?Teaching?Design?of?Linear?Algebra?Based?on?MATLAB
--?Take?the?Inverse?of?Matrix,?Eigenvalues?and?Eigenvectors?as?an?Example
Xiong?Mei??Zhang?Dalin
School?of?Mathematics?and?Statistics?of?Qiannan?Normal?University?for?Nationalities??GuizhouDuyun??558000
Abstract:In?the?process?of?linear?algebra?teaching,?the?inverse?of?matrix?and?the?eigenvalue?with?eigenvector?of?matrix?are?two?important?points.It?is?difficult?for?students?to?understand.?In?this?paper,?with?the?help?of?MATLAB?software,?combined?with?basic?concepts?and?solving?analysis,?through?the?design?of?experimental?projects,?let?students?to?deepen?their?understanding?and?mastery?of?the?inverse?matrix?and?its?eigenvalue?and?eigenvector?in?the?process?of?experimental?teaching.?And?apply?it?in?the?actual?learning?process.
Key?words:inverse?matrix;eigenvalue;experimental?teaching;MATLAB
MR(2010)Subject?Classificatio?15A99
Chinese?Library?Classificatio O151.2
1?概述
線性代數(shù)是高等院校計算機(jī)科學(xué)與技術(shù)、物理學(xué)、電子信息工程等理工類專業(yè)以及經(jīng)濟(jì)管理、市場營銷、財務(wù)管理等財經(jīng)類專業(yè)必修的一門重要的數(shù)學(xué)類公共基礎(chǔ)課.[1]?主要包括行列式、矩陣、向量、線性方程組、特征值與特征向量、二次型等內(nèi)容。是學(xué)生學(xué)習(xí)諸多后續(xù)課程的重要理論基礎(chǔ),對培養(yǎng)學(xué)生的思維能力非常重要.在實際教學(xué)過程中,許多學(xué)生都認(rèn)為該課程比較抽象,計算量大,計算時容易出錯.尤其是逆矩陣和矩陣的特征值和特征向量概念的掌握和計算.?為此,我們將數(shù)學(xué)實驗引入線性代數(shù)教學(xué)中,提高學(xué)生的學(xué)習(xí)參與度,讓學(xué)生更深入地理解和鞏固線性代數(shù)的基本概念和原理.
2?逆矩陣的概念
定義1?對于n階矩陣A,如果有一個n階矩陣B,使AB=BA=E,?則稱矩陣A是可逆的,并稱矩陣B為A的逆矩陣,A的逆矩陣記為,即.[2]
記,設(shè),,則由行列式的依行依列展開公式,有
故
從而,E,同理E,由逆矩陣的定義得,由此可得出求逆矩陣.
3??矩陣特征值及特征向量
定義2?設(shè)是階矩陣,如果數(shù)和維非零向量,使關(guān)系式成立,則稱數(shù)為矩陣的特征值,非零向量稱為的對應(yīng)于特征值的特征向量(可以是復(fù)數(shù),的元素與的分量也可以是復(fù)數(shù)).[2]
由得,即得個未知數(shù)個方程的齊次線形方程組.?其有非零解的充分必要條件是系數(shù)行列式.?方程是以為未知數(shù)的一元次方程,稱為矩陣的特征方程.?是的次多項式,記作,?稱為矩陣的特征多項式.?顯然,的特征值就是特征方程的解.?特征方程在復(fù)數(shù)范圍內(nèi)恒有解,其個數(shù)為方程的次數(shù)(重根按重數(shù)計算).?因此,矩陣在復(fù)數(shù)范圍內(nèi)有個特征值.
4??實驗項目設(shè)計
4.1??MATLAB軟件的句子操作命令
(1)det(A)??????????%求方陣A的行列式
(2)rank(A)?????????%求矩陣A的秩
(3)trace(A)????????%求矩陣A的跡
(4)inv(A)??????????%求矩陣A的逆
(5)norm(A)????????%矩陣A的2-范數(shù)
(6)eig(A)???????????%計算矩陣A的特征值
(7)[V,?D]=eig(A)??????%計算矩陣A的特征向量及特征值,用特征值做對角元生成相應(yīng)階數(shù)的對角矩陣D,相應(yīng)的特征向量生成矩陣V,滿足AV=VD.[3]
4.2??實驗要求
(1)給出矩陣A,判斷矩陣A是否可逆;(2)利用公式,求;(3)利用矩陣的初等行變換求;(4)利用整數(shù)逆矩陣加密方法進(jìn)行加密解密練習(xí);(5)求矩陣的特征值及特征向量。
4.3??實驗內(nèi)容
(1)給出矩陣。
判斷A是否可逆.[3]
在MATLAB中輸入命令
hls=det(A)???%求方陣的行列式
hls?=-33????%行列式不為0
由矩陣A的行列式不等于0可知,矩陣A可逆。
(2)利用公式,求。
在實際教學(xué)過程中,對于用定義來求逆矩陣,學(xué)生在計算時容易發(fā)生幾個方面的失誤:一是計算代數(shù)余子式是忘記乘,二是計算伴隨矩陣時沒有轉(zhuǎn)置,直接將替換矩陣A的元素后的新矩陣作為伴隨矩陣,三是對定于掌握不透,直接用來計算。通過實驗?zāi)軌驈?qiáng)化學(xué)生對計算步驟中每個細(xì)節(jié)的掌握,從而減少筆算的錯誤。實現(xiàn)代碼如下:
A=[1?-1?2?-1;?-1?1?3?-2;?2?3?1?0;-1?-2?0?1];
for?i=1:4;
for?j=1:4;
C=A;
C(:,?[i])=[];?%刪除第i行
C([j],?:)=[];?%刪除第j列
A1(i,j)=(-1)^(i+j)*det(C);
end
end
Astar=(A1)'
invA=Astar/det(A)
運(yùn)行得
Astar?=
-12.0000????9.0000???-3.0000????6.0000
9.0000???-4.0000???-6.0000????1.0000
-3.0000???-6.0000???-9.0000??-15.0000
6.0000????1.0000??-15.0000??-25.0000
invA?=
0.3636???-0.2727????0.0909???-0.1818
-0.2727????0.1212????0.1818???-0.0303
0.0909????0.1818????0.2727????0.4545
-0.1818???-0.0303????0.4545????0.7576
上述方法與直接應(yīng)用命名inv(A)所求結(jié)果一致。在MATLAB中直接輸入命令inv(A)得
ans?=
0.3636???-0.2727????0.0909???-0.1818
-0.2727????0.1212????0.1818???-0.0303
0.0909????0.1818????0.2727????0.4545
-0.1818???-0.0303????0.4545????0.7576
(3)用初等變換求。
初等行變換方法?利用計算逆矩陣.?先生成矩陣,再利用命令可得,求出.?同時可要求學(xué)生通過筆算步驟編程,求出并于前面的結(jié)果比較,加強(qiáng)學(xué)生對初等變換求逆矩陣計算的掌握。以下是兩種方式計算的結(jié)果:
A=[1?-1?2?-1;?-1?1?3?-2;?2?3?1?0;-1?-2?0?1];
E=[1?0?0?0;0?1?0?0;0?0?1?0;0?0?0?1];
AE=[A?E];
rref(AE)
ans?=
1.0000?????????0?????????0?????????0????0.3636???-0.2727????0.0909???-0.1818
0????1.0000?????????0?????????0???-0.2727????0.1212????0.1818???-0.0303
0?????????0????1.0000?????????0????0.0909????0.1818????0.2727????0.4545
0?????????0?????????0????1.0000???-0.1818???-0.0303????0.4545????0.7576
筆算步驟編碼:
A=[1?-1?2?-1;?-1?1?3?-2;?2?3?1?0;-1?-2?0?1];
E=[1?0?0?0;0?1?0?0;0?0?1?0;0?0?0?1];
AE=[A?E];
AE?=
1????-1?????2????-1?????1?????0?????0?????0
-1?????1?????3????-2?????0?????1?????0?????0
2?????3?????1?????0?????0?????0?????1?????0
-1????-2?????0?????1?????0?????0?????0?????1
AE(2,:)=AE(2,:)-AE(1,:)*(AE(2,1)/AE(1,1));
AE(3,:)=AE(3,:)-AE(1,:)*(AE(3,1)/AE(1,1));
AE(4,:)=AE(4,:)-AE(1,:)*(AE(4,1)/AE(1,1));
AE([2,4],:)=AE([4,2],:);
AE(3,:)=AE(3,:)-AE(2,:)*(AE(3,2)/AE(2,2));
AE(4,:)=AE(4,:)-AE(3,:)*(AE(4,3)/AE(3,3));
AE(3,:)=AE(3,:)-AE(4,:)*(AE(3,4)/AE(4,4));
AE(1,:)=AE(1,:)-AE(4,:)*(AE(1,4)/AE(4,4));
AE(2,:)=AE(2,:)-AE(3,:)*(AE(2,3)/AE(3,3));
AE(1,:)=AE(1,:)-AE(3,:)*(AE(1,3)/AE(3,3));
AE(1,:)=AE(1,:)-AE(2,:)*(AE(1,2)/AE(2,2));
AE(2,:)=AE(2,:)/AE(2,2);
AE(3,:)=AE(3,:)/AE(3,3);
AE(4,:)=AE(4,:)/AE(4,4)
AE?=
1.0000????0?????????0?????????0????0.3636???-0.2727????0.0909???-0.1818
0????1.0000?????????0?????????0???-0.2727????0.1212????0.1818???-0.0303
0?????????0????1.0000?????????0????0.0909????0.1818????0.2727????0.4545
0?????????0?????????0????1.0000???-0.1818???-0.0303????0.4545????0.7576
與直接命令和初等變換命令的計算結(jié)果一致。在MATLAB中,若去除每一行的分號,則顯示每一步的結(jié)果。此代碼便于學(xué)生在筆算過程中判斷每一步的是否正確,從而強(qiáng)化了初等變換計算逆矩陣的理解和掌握。最后求得
(4)利用整數(shù)加密方法對信息鏈“QIANNAN?NORMAL?UNIVERSITY”做加密解密練習(xí)。
“加密鎖”及“解密鑰匙”的生成?從一個單位矩陣E出發(fā),對該單位矩陣進(jìn)行多次的初等(r1)行變換和初等(r3)行變換(k取整數(shù)),將單位矩陣變?yōu)镼(加密鎖)。由單位矩陣初等變換可知,矩陣Q行列式等于1或-1.?再根據(jù)初等變換的性質(zhì),矩陣Q逆矩陣(解密鑰匙)必是整數(shù)矩陣。
實驗過程:選用各個英文字母的ASCII碼代替英文字母,將信息鏈“QIANNAN?NORMAL?UNIVERSITY”用一組數(shù)字表示,空格也用其ASCII碼代替,存入一個向量
W=[81,73,65,78,78,65,78,32,78,79,82,77,65,76,32,85,78,73,86,69,82,83,73,84,89]
按列優(yōu)先的規(guī)則,將信息鏈排成一個5×5階矩陣,執(zhí)行命令
W=[81,73,65,78,78,65,78,32,78,79,82,77,65,76,32,85,78,73,86,69,82,83,73,84,89];
A=reshape(W,5,5)
A?=
81????65????82????85????82
73????78????77????78????83
65????32????65????73????73
78????78????76????86????84
78????79????32????69????89
對一個5×5階的單位矩陣E,?做若干次(r1)和(r3)行變換后化為整數(shù)矩陣
Q?=
360???120????30?????6?????1
416???139????35?????7?????1
453???151????38?????8?????1
348???116????29?????6?????1
300???100????25?????5?????1
因為det(Q)=1,所以Q可逆,且
inv(Q)?=
1.0000???-1.0000????1.0000???-2.0000????1.0000
-2.0000????3.0000???-4.0000????8.0000???-5.0000
-3.0000????0.0000????4.0000???-9.0000????8.0000
-4.0000????0.0000???-0.0000????5.0000???-1.0000
-5.0000????0.0000???-0.0000????0.0000????6.0000
顯然矩陣Q的逆矩陣為整數(shù)矩陣,選Q為加密鎖,inv(Q)為解密鑰匙,將此加密鎖加載到原信息鏈上就變成了加密信息鏈B.?下面的程序為加密過程。
W=[81,?73,?65,?78,?78,?65,?78,?32,?78,?79,?82,?77,?65,?76,?32,?85,?78,?73,?86,?69,?82,?83,?73,?84,?89];
A=reshape(W,?5,?5);
Q=[360,120,30,6,1;416,139,35,7,1;453,151,38,8,1;348,116,29,6,1;300,100,25,5,1];
B=Q*A
得到加密信息鏈為
B?=
40416???????34267???????41198???????42735???????42263
46742???????39627???????47654???????49428???????48881
50888???????43142???????51883???????53814???????53214
39087???????33143???????39841???????41330???????40874
33693???????28569???????34337???????35624???????35234
解密過程為inv(Q)*B=inv(Q)*Q*A=E*A=A,即加密信息鏈B左乘將信息鏈B解鎖回到信息鏈A.?執(zhí)行命令inv(Q)*B即可得到原信息鏈.
inv(Q)*B
ans?=
81.0000???65.0000???82.0000???85.0000???82.0000
73.0000???78.0000???77.0000???78.0000???83.0000
65.0000???32.0000???65.0000???73.0000???73.0000
78.0000???78.0000???76.0000???86.0000???84.0000
78.0000???79.0000???32.0000???69.0000???89.0000
(5)給出矩陣A,求A的特征值及特征向量。
對于矩陣A的特征值及特征向量的概念,最主要是要掌握其定義,為什么成為特征值,具體的含義是什么?由前面的定義可知,也即是矩陣A作用于向量的效果和作用的效果一致,所以才乘為矩陣A特征值.下面通過實驗項目驗證特征值及特征向量的求法.
在MATLAB隨機(jī)生成矩陣A:
A=rand(4)?%??隨機(jī)生產(chǎn)4階方陣
A=
0.8147????0.6324????0.9575????0.9572
0.9058????0.0975????0.9649????0.4854
0.1270????0.2785????0.1576????0.8003
0.9134????0.5469????0.9706????0.1419
hls=det(A)?%求方陣的行列式
hls?=-0.0261?%行列式不為0
njz=inv(A)?%矩陣可逆,求逆矩陣
njz?=
-15.2997????3.0761???14.7235????9.6445
-0.2088???-1.8442????1.0366????1.8711
14.5694???-1.9337??-14.6497???-9.0413
-0.3690????0.5345????1.4378???-0.4008
E=njz*A?%驗證逆矩陣的正確性
E?=
1.0000????0.0000???-0.0000???-0.0000
-0.0000????1.0000????0.0000???-0.0000
0.0000????0.0000????1.0000????0.0000
-0.0000???-0.0000???-0.0000????1.0000
[tzxl,?tzz]=eig(A)?%求矩陣特征向量及特征值
tzxl?=
-0.6621???-0.7149????0.1745????0.1821
-0.4819???-0.0292???-0.6291???-0.9288
-0.2766????0.6972????0.5995????0.3178
-0.5029???-0.0438???-0.4630????0.0570
tzz?=
2.4021?????????0?????????0?????????0
0???-0.0346?????????0?????????0
0?????????0???-0.7158?????????0
0?????????0?????????0???-0.4400
驗證?命令如下:
A=[0.8147,0.6324,0.9575,0.9572;0.9058,0.0975,0.9649,0.4854;0.1270,0.2785,0.1576,0.8003;0.9134,0.5469,???0.9706,0.1419];
Lambda=2.4021;
X=[-0.6621,-0.4819,-0.2766,-0.5029]';
A*X
ans?=[-1.5904,-1.1577,-0.6644,-1.2081]'
Lambda*X
ans?=[-1.5904,-1.1576,-0.6644,-1.2080]'
考慮計算機(jī)精度問題,可知?成立.
結(jié)語
在線性代數(shù)教學(xué)過程中引入實驗項目的教學(xué)內(nèi)容,可以讓學(xué)生更好的理解所學(xué)的概念和計算的過程,并讓學(xué)生學(xué)會通過數(shù)學(xué)軟件解決計算量大的實際問題,補(bǔ)充了課堂教學(xué)所不能展開的演算過程和結(jié)果驗證,豐富了線性代數(shù)的教學(xué)活動,提高教學(xué)效果。
參考文獻(xiàn):
基金項目:黔南州科技局?jǐn)?shù)學(xué)一流學(xué)科項目(2020XK03ST),黔南民族師范學(xué)院高層次人才專項(qnsyrc202204)
作者簡介:熊梅(1979—??),女,貴州安龍人,學(xué)士,高級實驗師,研究方向:數(shù)學(xué)實驗教學(xué)與管理。
*通訊作者:張大林(1981—??),男,貴州普定人,博士,副教授,研究方向:最優(yōu)化理論及應(yīng)用、普惠金融。