矩陣 A ∈ Rm×n 和B ∈ Rn×p 的乘積為矩陣 :
其中:
.
請注意,矩陣A的列數應該與矩陣B的行數相等,這樣才存在矩陣的乘積。有很多種方式可以幫助我們理解矩陣乘法,這里我們將通過一些例子開始學習。
2.1向量的乘積
給定兩個向量x,y ∈ Rn,那么xT y的值,我們稱之為向量的內積或點積。它是一個由下式得到的實數:
.
可以發現,內積實際上是矩陣乘法的一個特例。通常情況下xT y = yT x。
對於向量x ∈ Rm, y ∈ Rn(大小不必相同),xyT ∈ Rm×n稱為向量的外積。外積是一個矩陣,其中中的每個元素,都可以由 得到,也就是說,
.
我們舉個例子說明外積有什么用。令1 ∈ Rn 表示所有元素都是1的n維向量,然后將矩陣 A ∈ Rm×n 的每一列都用列向量x ∈ Rm表示。使用外積,我們可以將A簡潔的表示為:
.
2.2矩陣-向量的乘積
對於一個矩陣A ∈ Rm×n 和向量x ∈ Rn,他們的乘積為向量 y = Ax ∈ Rm。理解矩陣向量乘法的方式有很多種,我們一起來逐一看看。
以行的形式書寫A,我們可以將其表示為Ax的形式:
.
也就是說,y第i行的元素等於A的第i行與x的內積 .
咱們換個角度,以列的形式表示A,我們可以看到:
.
換言之,y是A列的線性組合,線性組合的系數就是x的元素。
上面我們看到的是右乘一個列向量,那左乘一個行向量嘞?對於A ∈ Rm×n,x ∈ Rm, y ∈ Rn,這個式子可以寫成yT = xT A 。向之前那樣,我們有兩種方式表達yT,這取決於表達A的方式是行還是列。第一種情況是把A以列的形式表示:
這個式子說明yT 第i列的元素等於向量x與A的第i列的內積。
我們也一樣可以把A表示成行的形式,來說明向量-矩陣乘積。
我們可以看到yT 是A的行的線性組合,線性組合的系數是x的元素。
2.3矩陣-矩陣乘積
基於以上知識,我們可以看到如之前所定義的矩陣-矩陣乘法C=AB有四種不同(但是等價)的理解方法。
首先,我們可以將矩陣-矩陣相乘看作一組向量-向量乘積。根據其概念,我們最好理解的方式是矩陣C的(i,j)元素是A的i行與B的 j列的內積。符號表達如下:
.
注意由於A ∈ Rm×n , B ∈ Rn×p, ai ∈ Rn bj ∈ Rn, 所以內積永遠有意義。對矩陣乘法而言,以A的行和B的列表示是最"自然"的表示方法。當然,我們也可以以A的列和B的行的形式進行表示。表達方法是AB外積累加的形式,稍微復雜一點點。符號表達為:
.
換一種方式表達,AB的值等於對於所有的i,A的i列與B的i行的外積的和。因此,對於ai ∈ Rm 和 bi ∈ Rp,外積aibiT的維度是m×p,它與C的維度是相同的。等式可能有點難理解,花點時間想想,我猜你肯定能明白。
第二種理解方式是,我們也可將向量-向量乘法看做一系列的矩陣-向量乘積。具體來說,如果我們將B以列的形式表示,我們可以將C的每一列看做A和B列的矩陣-向量乘積。符號表達為:
.
可以將C的i列以矩陣-向量乘積(向量在右)的方式表示為ci = Abi. 這些矩陣-向量乘積可以用前面的兩種觀點解釋。最后類比一下,我們以A的行形式表示,將C的行視為A的行與C的矩陣-向量乘積,符號表達為
.
在此,我們以矩陣-向量乘積(向量左乘)的形式表示了C的i列,
只是一個矩陣乘法而已,這么細的分析看上去好像沒有必要,尤其是當我們知道矩陣乘法定義后其實很容易可以計算得到結果。然而,幾乎所有的線性代數內容都在處理某種類型的矩陣乘法,因此花一些時間去形成對這些結論的直觀認識還是很有幫助的。
此外,知道一些更高層次的矩陣乘法的基本性質也是有好處的:
- 結合律即(AB)C = A(BC)
- 分配率即A(B + C) = AB + AC
- 注意哦,矩陣乘法沒有交換律,即AB ≠BA.(例如,如果A ∈ Rm×n 和B ∈ Rn×q,矩陣的乘積BA在m和q不等時,BA可能根本就不存在)
如果你對這些性質不熟悉,最好花些時間自己證明一下。例如,為了驗證矩陣乘法的結合律,對於A ∈ Rm×n, B ∈ Rn×p,C ∈ Rp×q,注意AB ∈ Rm×p,而 (AB)C ∈ Rm×q。類似的有BC ∈ Rn×q,所以A(BC) ∈ Rm×q。因此可以得到維度相同的矩陣。為了說明矩陣乘法符合結合律,證明(AB)C 第(i,j)個元素是否與A(BC)的(i,j)個元素相等就夠了。我們可以直接運用矩陣乘法的定義進行證明。
上面的推導過程中,第一個和最后兩個等式使用矩陣乘法的定義,第三和第五的等式使用標量乘法的分配率,第四個等式使用了標量加法的交換律和結合律。這種將運算簡化成標量的特性以證明矩陣性質的方法會經常出現,你可以熟悉熟悉它們。
3.10 行列式
方陣A∈Rn×n的行列式是一個映射det: Rn×n→R,記作|A|或det A (同跡運算一樣,我們通常省略括號)。在代數上,可以顯式地寫出A的行列式的公式,但是很遺憾,它的意義不夠直觀。咱們先給出行列式的幾何解釋,然后再探討一下它的一些特殊的代數性質。
對於矩陣:
考慮由A中所有行向量a1,a2,..,an的所有可能線性組合組成的點集S⊂Rn,其中線性組合的參數都介於0和1之間;換句話說,由於這些線性組合的參數a1,a2,...,an∈Rn滿足0≦ai≦1,i=1,...,n,集合S是張成子空間({a1, . . , an})的約束。公式表達如下:
A的行列式的絕對值,是集合S的"體積"的一個量度。
例如,考慮2×2矩陣,
此處,矩陣的行:
對應於這些行的集合S如圖1所示。對於二維矩陣,S一般是平行四邊形。在我們的示例中A的行列式的值為|A| = -7.(可以使用本節后文將給出的公式來計算)。所以平行四邊形的面積為7(自行證明!)
在三維中,集合S對應一個平行六面體(一個三維的斜面的盒子,例如每一面都是平行四邊形)。這個3×3矩陣的行列式的絕對值,就是這個平行六面體的三維體積。在更高的維數中,集合S是一個n維超平形體。
圖 1 :公式(1)給出2×2矩陣A的行列式圖示。此處,a1和a2是對應於A中的行的向量,集合S對應於陰影區域(亦即平行四邊形)。行列式的絕對值,|det A|=7,是平行四邊形的面積
代數上,行列式滿足下列三個性質(其它性質亦遵循它,包括行列式的一般公式)
1、單位矩陣的行列式為1 ,|I| = 1。(從幾何上來看,單位超立方體的體積為1)。
2、對於一個矩陣A∈Rn×n,如果將A中某行乘以一個標量t∈R,新矩陣的行列式值為t|A|。
(幾何上,集合S的一條邊乘以因數t,會導致體積擴大t倍)
3、我們交換行列式A任意兩行aTi和aTj,新矩陣的行列式的值為-|A|,例如:
滿足上述三個條件的函數是否存在,並不是那么容易看出來的。然而事實上,此函數存在且唯一。(此處不證明)
這三個性質的推論包括:
- 對於 A ∈ Rn×n, |A| = |AT |。
- 對於 A,B ∈ Rn×n, |AB| = |A||B|。
- 對於 A ∈ Rn×n,當且僅當A奇異(即不可逆)時,|A| = 0。(如果A奇異,它必不滿秩,它的列線性相關。此時,集合S對應於n維空間中的一個平板,因此體積為零。)
- 對於A ∈ Rn×n,且A非奇異, |A-1| = 1/|A|.
在給出行列式的一般定義之前,我們定義代數余子式:對於A∈ Rn×n,矩陣A\i,\j ∈R(n-1)×(n-1)是A刪除i行和j列的結果。
行列式的一般(遞推)定義:
其中首項A∈ R1×1的行列式,|A| = a11。如果我們把公式推廣到A∈ Rn×n,會有n!(n的階乘)個不同的項。因此,我們很難顯式地寫出3階以上的矩陣的行列式的計算等式。
然而,3階以內的矩陣的行列式十分常用,大家最好把它們記住。
矩陣A∈ Rn×n的古典伴隨矩陣(通常簡稱為伴隨矩陣),記作adj(A),定義為:
(注意A的系數的正負變化。)可以證明,對於任意非奇異矩陣A∈ Rn×n,有
這個式子是求矩陣的逆的一個很好的顯示公式。大家要記住,這是一個計算矩陣的逆的一個更加高效的方法。
3.11 二次型和半正定矩陣
對於一個方陣A∈ Rn×n和一個向量x∈ Rn,標量xTAx被稱作一個二次型。顯式地寫出來,我們可以看到:
注意:
第一個等式是由標量的轉置等於它自身得到,第二個等式是由兩個相等的量的平均值相等得到。由此,我們可以推斷,只有對稱分量對二次型有影響。我們通常約定俗成地假設二次型中出現的矩陣是對稱矩陣。
我們給出如下定義:
• 對於任一非零向量x∈Rn,如果xTAx>0,那么這個對稱矩陣A∈Sn是正定(PD)的.通常記作A≻0,(或簡單地A>0),所有的正定矩陣集合記作Sn++。
• 對於任一非零向量x∈Rn,如果xTAx≧0,那么這個對稱矩陣A∈Sn是半正定(PSD)的。記作A≽0,(或簡單地A≧0),所有的半正定矩陣集合記作Sn+ 。
• 同樣的,對於任一非零向量x∈Rn,如果xTAx<0,那么這個對稱矩陣A∈Sn是負定(ND)的。記作A≺0,(或簡單地A<0)。
•對於任一非零向量x∈Rn,如果xTAx≤0,那么這個對稱矩陣A∈Sn是半負定(NSD)的.記作A≼0,(或簡單地A≤0)。
•最后,如果它既不是半正定也不是半負定-亦即,存在x1,x2∈Rn使得x1TAx1>0且x2TAx2<0,那么對稱矩陣A∈Sn是不定矩陣。
顯然,如果A是正定的,那么-A是負定的,反之亦然。同樣的,如果A是半正定的,那么-A是半負定的,反之亦然。如果A是不定的,-A也是不定矩陣。
正定矩陣和負定矩陣的一個重要性質是,它們一定是滿秩的。因此,也是可逆的。為了證明這個性質,假設存在矩陣A∈ Rn×n是不滿秩的。進而,假設A的第j列可以其它n-1列線性表示。
對於x1,...,xj−1, xj+1,...,xn ∈R,設xj=-1,我們有
但是這意味着對於某些非零向量x,xTAx=0,所以A既不能正定,也不能負定。因此,如果A是正定或者負定,它一定是滿秩的。
最后,一種常見的正定矩陣需要注意:給定一個矩陣A ∈Rm×n (不一定是對稱,甚至不一定是方陣),矩陣G=ATA(有時也稱為格拉姆矩陣)必然是半正定的。進一步,如果m≥n,(為了方便,我們假設A滿秩)此時,G=ATA是正定的。
3.12特征值和特征向量
對於一個方陣A ∈Rn×n,如果:
我們說λ∈C是A的特征值,x∈Cn是對應的特征向量.
直觀上看,其實上面的式子說的就是A乘一個向量x,得到的新的向量指向和x相同的方向,但是須乘一個標量λ。注意對任一個特征向量x∈Cn和標量t∈C,A(cx) = cAx = cλx = λ(cx),,所以cx也是一個特征向量。因此,我們要說λ所對應的特征向量。我們通常假設特征向量被標准化為長度1。(此時依然有歧義,因為x和-x都可以是特征向量,但是我們也沒什么辦法)。
如果
我們可以把上文的等式換一種寫法,表明(λ,x)是A的一個特征值-特征向量對。
但是當且僅當有非空零空間時,也就是當(λI − A)非奇異時,亦即
時,(λI − A)x = 0有x的非零解。
我們現在可以用前文的行列式的定義,來把這個表達式展開為一個(非常大的) λ的多項式,其中λ的最高階為n。我們可以解出多項式的n個根(這可能十分復雜),來得到n個特征值λ1, ...,λn。 為了解出特征值對應的特征向量,我們可以簡單地求線性等式(λiI − A)x = 0的解。需要注意,實際操作時,計算特征值和特征向量不用這個方法。(行列式的完全展開式有n!項)。這只是一個數學論證。
下面是特征值和特征向量的性質(假設A∈ Rn×n,且特征值λ1,...,λn對應的特征向量為x1,...,xn):
- 矩陣A的跡等於特征值的和
- A的行列式等於特征值的積
- A的秩等於A的非零特征值的個數。
- 如果A是非奇異矩陣,則1/λi是矩陣A-1對應於特征向量xi的特征值。亦即,A−1xi = (1/λi)xi。(證明方法是,對於特征向量等式,Axi = λixi,在兩邊同時左乘A-1)
- 對角矩陣D=diag(d1, . . . ,dn)的特征值是所有的對角元素。
我們可以把所有的特征向量等式聯立為
X ∈Rn×n 的列是A的特征向量,∧是對角元素為A的特征值的對角矩陣。亦即:
如果A的特征向量線性無關,則矩陣X可逆,所以A=X∧X-1。可以寫成這個形式的矩陣A被稱作可對角化。
3.13 對稱矩陣的特征值和特征向量
當我們考察對稱矩陣A∈Sn的特征值和特征向量時,有兩個特別的性質需要注意。首先,可以證明,A的所有特征值都是實數。其次,A的所有特征向量時正交的。也就是說,上面所定義的矩陣X是正交矩陣。(我們把此時的特征向量矩陣記作U)。
接下來,我們可以將A表示為A=U∧UT,由上文知,一個正交矩陣的逆等於它的轉置。
由此,我們可以得到所有完全使用特征值來定義的矩陣。假設A∈Sn= U∧UT。有:
其中,y=UTx(由於U滿秩,任意y∈Rn可以表示為此形式。)由於yi2永遠為正,這個表達式完全依賴於λi。如果所有的λi>0,那么矩陣正定;如果所有的λi≥0,矩陣半正定。同樣的,如果所有的λi<0或λi≤0,矩陣A分別負定和半負定。最后,如果A既有正的特征值又有負的特征值,它是不定矩陣。
特征值和特征向量的一個常見的應用是找出矩陣的某個函數的最大值。例如,對於矩陣A∈Sn,考慮這個求最大值問題:
也就是說,我們希望找到使二次型最大的單位向量。假設特征值大小為λ1 ≥ λ2 ≥ . . . ≥ λn,這個最優化問題的最優解x為x1,對應的特征值為λ1.此時,二次型的最大值是λ1。相似的,最小值問題的最優解
是xn,對應的特征值是λn,那么最小值是λn。可以通過將A表示為特征向量-特征值的形式,然后使用正定矩陣的性質證明。然而,在下一節我們可以使用矩陣微積分直接證明它。
