劉智慧 付麗華 李宏偉 李超群
(中國地質(zhì)大學(xué)數(shù)理學(xué)院,湖北 武漢 430074)
特征值與特征向量是《線性代數(shù)》中的重點(diǎn)內(nèi)容之一,在眾多領(lǐng)域有著廣泛的應(yīng)用[1-8].“特征”一詞來自德語的eigen,翻譯為“自身的”“有特征的”“特定于……的”,強(qiáng)調(diào)了特征值與特征向量對(duì)特定矩陣的重要性. 由于特征值與特征向量涉及的概念、定理較為抽象,在一定程度上阻礙了學(xué)生對(duì)其理解與認(rèn)識(shí). 如果在特征值與特征向量教學(xué)中,融入幾何直觀并通過實(shí)際生活中的具體例子闡明特征值與特征向量的作用,將在一定程度上調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性,使其更好地掌握特征值與特征向量. 本文借助MATLAB軟件從幾何直觀以及出租車調(diào)配和高維數(shù)據(jù)降維的具體實(shí)例說明特征值與特征向量,注重應(yīng)用特征值與特征向量解決實(shí)際中的相關(guān)問題,加強(qiáng)學(xué)生對(duì)特征值與特征向量的深入理解,領(lǐng)會(huì)特征值與特征向量的數(shù)學(xué)意義和應(yīng)用價(jià)值.
定義1[7, 9]設(shè)A為n階矩陣,x為非零向量,若存在數(shù)λ,使得
Ax=λx
成立,則稱λ為A的特征值,x為A的屬于λ的一個(gè)特征向量.
從定義1可知,特征向量為一些特定的向量,這些向量在方陣A的作用下保持方向不變,只進(jìn)行長度上的伸縮(當(dāng)λ<0時(shí),伸縮值為負(fù)值;當(dāng)λ=0時(shí),伸縮值為零). 若x為A的特征向量,則kx(k≠0)也是A的特征向量,所以特征向量不是一個(gè)向量而是一個(gè)向量族.
定理1特征值分解定理[7, 9]設(shè)A為n階對(duì)稱矩陣,則必存在一個(gè)正交矩陣P=[p1,p2,…,pn],使得
A=PΛPT
其中,(·)T表示轉(zhuǎn)置運(yùn)算,Λ=diag{λ1,λ2,…,λn},λi為A的特征值,pi為A的屬于λi的特征向量.
從定理1中可知,任意一個(gè)實(shí)對(duì)稱矩陣總可以用它的特征值和特征向量完全描述.
通過一個(gè)具體的例子演示矩陣的特征值和特征向量.
利用MATLAB命令求出矩陣的特征值和特征向量,相應(yīng)的MATLAB程序?yàn)椋?/p>
A=[1 0;0 2];
[P,D]=eig(A);%求矩陣A的特征值和特征向量
eigshow(A);%演示矩陣A的特征值和特征向量
例1的MATLAB程序運(yùn)行結(jié)果如下:
P=
1 0
0 1
D=
1 0
0 2
圖1描述了藍(lán)色向量Ax隨綠色向量x的變換關(guān)系,x表示二維單位向量,當(dāng)用鼠標(biāo)拖動(dòng)x圍繞原點(diǎn)旋轉(zhuǎn)時(shí),Ax隨著x旋轉(zhuǎn),向量x的軌跡是一個(gè)綠色單位圓,向量Ax的軌跡為一個(gè)藍(lán)色橢圓. 在圖1中,當(dāng)x旋轉(zhuǎn)到水平方向和豎直方向時(shí)(見圖1(c)(d)),Ax恰好與x重合,即Ax=λx,由定義1知,矩陣A的兩個(gè)特征值為橢圓的短軸和長軸,對(duì)應(yīng)的特征向量分別為k1(1,0),k2(0,1),其中k1≠0,k2≠0. 例1說明,對(duì)所有二維向量,只有形如k1(1,0)和k2(0,1)的二維向量在二階對(duì)角矩陣A的作用下保持方向不變.
圖1 矩陣特征值和特征向量的圖形演示
假設(shè)一家出租車公司在甲地和乙地各有一家分支機(jī)構(gòu),專門負(fù)責(zé)為旅游公司提供出租車. 由于甲地和乙地距離不遠(yuǎn),出租車每天可以往返兩地. 根據(jù)公司統(tǒng)計(jì)的歷史數(shù)據(jù),每天甲地的車輛有60%前往乙地后返回甲地,余下40%前往乙地并留在乙地分支機(jī)構(gòu);而每天乙地的車輛有70%前往甲地后返回乙地,余下30%前往甲地并留在甲地分支機(jī)構(gòu). 假設(shè)出租車公司出租車數(shù)量是固定不變的,問:當(dāng)經(jīng)過足夠長時(shí)間后,甲地和乙地出租車數(shù)量是否會(huì)越來越不平衡?如果甲乙兩地車輛數(shù)量不平衡,公司如何調(diào)配?
(1)
式(1)用矩陣表示為
?Axn.
(2)
利用MATLAB命令求出矩陣A的特征值為λ1=1,λ2=0.3,對(duì)應(yīng)的特征向量為p1=[-0.600 0,-0.800 0]T,p2=[-0.707 1,0.707 1]T.
又pi為特征向量,故xn=Anx0=c1(λ1)np1+c2(λ2)np2. 若n→∞,則(λ2)n=(0.3)n→0. 于是,當(dāng)c1>0時(shí),
xn≈c1(λ1)np1,
(3)
以及
xn+1≈c1(λ1)n+1p1=λ1c1(λ1)np1≈λ1xn.
(4)
式(3)表明,xn的2個(gè)分量之比(甲地和乙地出租車的數(shù)量之比)近似等于p1對(duì)應(yīng)分量之比,即甲乙兩地出租車的數(shù)量之比只與最大特征值λ1=1對(duì)應(yīng)的矩陣特征向量p1有關(guān),而與甲乙兩地初始
出租車的數(shù)量x0無關(guān). 由于p1分量之比為一個(gè)常數(shù),所以當(dāng)經(jīng)過足夠長時(shí)間后,甲地和乙地出租車數(shù)量之比趨于一個(gè)穩(wěn)定數(shù),即甲乙兩地車輛數(shù)量趨于平衡. 式(4)表明,xn最終以近似λ1的倍數(shù)增長,故矩陣A的最大特征值λ1確定了最終增長率.
以上例子說明,利用矩陣的特征值和特征向量,選擇矩陣較大特征值及對(duì)應(yīng)的特征向量可以分析出租車的調(diào)配問題.
圖2 甲地和乙地出租車數(shù)量之比
矩陣A的特征值和特征向量及圖2(a)相應(yīng)的MATLAB程序?yàn)椋?/p>
A=[0.6 0.3;0.4 0.7];
x0=[2 000;5 000];
[P,D]=eig(A);
fori=1∶30
x(:,i)=A^i*x0;
end
plot(x(1,:)./x(2,:));
xlabel(′n/天數(shù)′);
ylabel(‘甲地車輛與乙地車輛之比’);
現(xiàn)有m組數(shù)據(jù),每一組數(shù)據(jù)為n維向量,在機(jī)器學(xué)習(xí)中,若對(duì)這n維m組數(shù)據(jù)點(diǎn)直接進(jìn)行分析和挖掘,那么算法的復(fù)雜度往往與維數(shù)n呈指數(shù)級(jí)關(guān)系. 能否將n維向量組降為k維向量組(k 將此數(shù)據(jù)看作n×m的矩陣Xn×m,欲使n維向量組降為k維向量組,即尋找矩陣Pk×n,使得Pk×nXn×m=Yk×m,則矩陣Yk×m為降維的k維向量組. 下面用簡單的例子說明基于矩陣特征值和特征向量的高維數(shù)據(jù)降維問題. 圖3(a)表示五個(gè)不同的二維數(shù)據(jù)點(diǎn),若將此數(shù)據(jù)點(diǎn)向x軸投影,則右邊的兩個(gè)點(diǎn)會(huì)重疊在一起,中間的兩個(gè)點(diǎn)也會(huì)重疊在一起,于是五個(gè)不同的二維數(shù)據(jù)點(diǎn)投影后只剩下三個(gè)不同的投影值,這是一種嚴(yán)重的信息丟失. 同理,若將此數(shù)據(jù)點(diǎn)向y軸投影,則投影后也只有三個(gè)不同的投影值. 因此x軸和y軸不是數(shù)據(jù)點(diǎn)最好的投影方向. 但若將此數(shù)據(jù)點(diǎn)向通過第一象限和第三象限的斜線投影(見圖3(b)),則五個(gè)二維數(shù)據(jù)點(diǎn)投影后為五個(gè)不同的投影值,即數(shù)據(jù)點(diǎn)向該斜線投影后,二維數(shù)據(jù)點(diǎn)降為了一維數(shù)據(jù)點(diǎn),同時(shí)保留了五個(gè)原始數(shù)據(jù)信息. 此例說明,將高維數(shù)據(jù)進(jìn)行降維,只需將數(shù)據(jù)點(diǎn)向某些方向進(jìn)行投影,使得在這些方向上的投影值盡可能分散,問:如何找到這些投影方向? 圖3 二維數(shù)據(jù)點(diǎn)分布情況 顯然,A為對(duì)角矩陣,A對(duì)角元表示二維向量的方差(刻畫分散程度);A對(duì)角元外的元素表示維度間的協(xié)方差(刻畫維度間的不相關(guān)性). 對(duì)五個(gè)數(shù)據(jù)點(diǎn)進(jìn)行降維,同時(shí)盡可能保留五個(gè)原始數(shù)據(jù)點(diǎn),即滿足五個(gè)數(shù)據(jù)點(diǎn)投影后投影值盡可能分散(二維向量的方差盡可能大),同時(shí)維度間盡可能不存在相關(guān)性(維度間的協(xié)方差盡可能小),即使得協(xié)方差矩陣A對(duì)角化(對(duì)角元的元素從大到小排列,對(duì)角元外的元素為零). (5) =[-2.121 3,-0.707 1,0,0.707 1,2.121 3]. 其中,y為降維后的五個(gè)一維數(shù)據(jù)點(diǎn),p1為二維數(shù)據(jù)點(diǎn)的投影方向(見圖3(b)). 二維數(shù)據(jù)點(diǎn)降為一維數(shù)據(jù)點(diǎn)的相應(yīng)MATLAB程序?yàn)椋?/p> X=[-2 0 0 1 1;-1 -1 0 0 2]; A=(1/5)*X*X′; %數(shù)據(jù)點(diǎn)的協(xié)方差矩陣A [P,D]=eig(A); y=P(:,1)′*X; %降維后的一維數(shù)據(jù)點(diǎn) 以上例子說明,矩陣較大特征值對(duì)應(yīng)的特征向量上包含了較多的信息量,利用矩陣前面部分較大特征值對(duì)應(yīng)的特征向量可實(shí)現(xiàn)高維數(shù)據(jù)的降維. 本文對(duì)《線性代數(shù)》課程中特征值和特征向量兩個(gè)抽象的概念運(yùn)用MATLAB軟件,從幾何直觀演示、出租車的調(diào)配及高維數(shù)據(jù)降維等實(shí)際問題進(jìn)行了闡述,使得學(xué)生能更好地理解和認(rèn)識(shí)特征值與特征向量,同時(shí),對(duì)學(xué)生的學(xué)習(xí)興趣及學(xué)生運(yùn)用數(shù)學(xué)知識(shí)解決實(shí)際問題的能力的培養(yǎng)有一定的幫助.3 小 結(jié)
首都師范大學(xué)學(xué)報(bào)(自然科學(xué)版)2018年5期