線性代數是個有趣的東西。
過於基礎的定義(例如矩陣運算等)不會提及。
I.基於行變換的線性代數
I.I.高斯消元、行變換與線性方程組
高斯消元是一切線代科技的基礎。
高斯消元,是指通過以下三種變換:
- 倍加變換,即將一行的一定倍數加到另一行上
- 對換變換,即交換兩行
- 倍乘變化,即將某一行中所有數同乘以某一非零數
可以證明,通過且僅通過如上三種變化,可以將任意矩陣,變換成如下形式的矩陣:
即,從上到下,每一行的開頭都有着一定數量的 \(0\),且該 \(0\) 的數量單調遞增(當然,最后可能會有很多零行,即元素全部為 \(0\) 的行,此時並不要求零的數量單調遞增)。
我們稱這種矩陣為上三角矩陣,因為其非零元素僅集中於右上方的三角內。我們有時也將其稱作階梯型矩陣。
同理我們可以定義下三角矩陣,是非零元素僅集中於左下方的三角內的矩陣。
高斯消元又被稱作行變換。
高斯消元可以被用於求解多元一次方程組。例如,對於一有 \(n\) 個方程,\(m\) 個變量的方程組
定義其增廣矩陣 \(A\) 為
其是一 \(n\) 行 \(m+1\) 列矩陣。
對其行變換,則我們可以得到一上三角矩陣。則:
- 若其中有一行,前 \(m\) 個數均為 \(0\),但最后一個數非零,此線性方程組無解。
- 若其存在至少 \(m\) 行,其中前 \(m\) 個數中存在非零的數,則此線性方程組有唯一解。
- 否則,此線性方程組解非唯一,但是我們可以求出其解的一般形式。
一增廣矩陣相容,當且僅當不存在情況一。
首先,可以先感性理解一下為何行變換可以用來求解線性方程組:這是因為明顯高斯消元的三種操作對於一個線性方程來說仍然成立。
則如果我們發現前 \(m\) 個數均為零但最后一個數非零的行,將其還原成方程組的形式就是
其等價於 \(0=k\),而這顯然是不可能成立的。
然后,我們接下來通過一個新的定義:簡化階梯型矩陣來證明上述二三條推論。
定義簡化階梯型矩陣是這樣的矩陣:
每一行上先導的非零元素的數量遞增(除了最后的零行以外)
每一非零行上第一個非零元素全是 \(1\),且該 \(1\) 是此列上唯一非零元素。
示例如圖。
可以被證明的是,一個矩陣所對應的階梯型矩陣數量可能很多,但一個矩陣通過行化簡所能得到的的簡化階梯型矩陣是唯一的。
則,第二條推論成立時所對應的矩陣,如果不考慮矩陣最下方的若干零行,一定是這樣的
將其復原成線性方程組的形式,就會發現它即為線性方程組的唯一解。
通過對階梯型矩陣進一步化簡(常被稱作“Gauss-Jordan
”消元),可以簡單得到簡化階梯型矩陣。
定義一個矩陣的主元位置,是其所對應的簡化階梯型矩陣中所有上述 \(1\) 的位置。
定義一個矩陣的主元列,是其所有主元所在的列。
則,在一線性方程組中,其對應矩陣的所有主元列所對應的變量,被稱作基本變量或主元,剩余的稱作自由變量或自由元。
在一個線性方程組中,自由元是可以任意取值的;但是,當所有自由元的取值被唯一固定后,剩余主元的值也被唯一固定了。以某些自由元的值來表示主元的值的式子,被稱作線性方程組的通解。
可以發現,假如一個線性方程組不存在自由元,則其有唯一解。
I.II.向量、向量方程、線性組合與生成空間
向量是只含一列的矩陣,即 \(n\times 1\) 的矩陣。所有有 \(n\) 行的向量集合被記作 \(\mathbb{R}^n\)。以下,用黑體 \(\mathbf{v}\) 來表示一向量。
一組向量 \(\mathbf{v}_1,\dots,\mathbf{v}_n\) 的線性組合,被定義為
該線性組合被稱作以標量 \(\{c_i\}\) 為權的線性組合。
定義一組向量 \(\{\mathbf{v}_i\}\) 的生成空間,是其以任意一組 \(\{c\}\) 為權的線性組合的結果所構成的集合,可被記作 \(\text{Span}\{\mathbf{v}_i\}\)。
若要判斷一向量 \(\mathbf{u}\) 是否在一個生成空間內(或者說其能否被線性組合表示出來),就等價於求解方程
是否有解。
其可由矩陣
所對應的線性方程組是否有解來判定。
I.III.矩陣方程
矩陣方程指的是形如
的方程(當然,前提是該乘法能被定義)。
它可以被看作,\(A\) 的所有列向量以 \(\mathbf{x}\) 的元素為權的線性組合,也就是說,它等價於判定 \(\mathbf{b}\) 是否在 \(A\) 的列向量所生成的空間內,如果有則求出該線性組合的權。
I.IV.線性方程組的解
定義一線性方程組是齊次的,當且僅當其等價於矩陣方程 \(A\mathbf{x}=\mathbf{0}\)。
(該等價性可以由線性方程組與判定是否在生成空間內的等價性和生成空間與矩陣方程的等價性得到)
顯然,任何齊次方程組都有平凡解 \(\mathbf{x}=\mathbf{0}\)。而其有非平凡解的充要條件是等價的矩陣方程存在自由元。
一個齊次線性方程組的通解(被表示成了向量形式),可以由一些向量以其自由元為權的線性組合被表示出來。也就是說,其解集是那些向量的生成空間。
可以發現,這些向量是與其對應的簡化階梯型矩陣的非主元列有很大關聯的。
而一非齊次線性方程組的通解,是以自由元為權的線性組合,再加上一個向量得到的。該通解被稱作“參數向量形式”。
I.V.線性相關與線性無關
定義一組向量 \(\{\mathbf{v}_i\}\) 線性無關,若方程
僅有平凡解。
反之,其線性相關。
顯然,一組向量組合線性無關等價於矩陣方程
僅有平凡解,也即該矩陣存在自由元。
可以發現,線性無關集中不存在任何向量是其它向量的線性組合。
II.基於方陣的線性代數
II.I.可逆矩陣
某個方陣 \(A\) 的逆 \(A^{-1}\) 是滿足 \(AA^{-1}=I\) 的方陣。
逆矩陣的逆就是原矩陣。這意味着有 \(AA^{-1}=A^{-1}A=I\)。
一個方陣可逆,當且僅當其可被行化簡成為單位矩陣 \(I\)。
此時,將行化簡過程中使用的所有變換原封不動地順次施加於單位矩陣 \(I\),即可得到 \(A^{-1}\)。
若只需逆矩陣中某一行/列的數,只需在原矩陣中消完對應的行/列即可。復雜度可被優化到 \(n^2\)。
多個可逆方陣的積之逆,等於方陣之逆的倒序積。
II.II.行列式
通過行列式也可以判定一個方陣是否可逆。
行列式的定義是遞歸的。定義一個 \(1\times1\) 方陣 \(A\) 的行列式是其中唯一的元素。
否則,暫定義 \(A_{u,v}\) 為方陣 \(A\) 刪去第 \(u\) 行和第 \(v\) 列后所得到的方陣。暫定義 \(a_{i,j}\) 為其第 \(i\) 行第 \(j\) 列的元素。
則其行列式 \(\det A=\sum\limits_{i=1}^n(-1)^{1+i}a_{1,i}\det A_{1,i}\)
我們也可定義 \(A\) 在位置 \((i,j)\) 的余因子 \(C_{i,j}=(-1)^{i+j}\det A_{i,j}\)
則我們可以得出 \(A\) 關於第一行的余因子展開式是
可以被證明的是,方陣 \(A\) 關於任何一行和任何一列的余因子展開式均是相等的——都等於其行列式。
若按照其定義來計算行列式,我們將很容易得到此算法的復雜度是 \(O(n!)\) 的。
行列式可以通過行變換求出。
-
若對矩陣 \(A\) 施加倍加變換,則其行列式不變。
-
若對其施加對換變換,則其行列式取相反數。
-
若對其施加倍乘變換,則其行列式相應乘上擴大的倍數。
此性質可以通過所有變換所對應的矩陣的行列式簡單得出。
行列式的性質之一是 \(\det A\times \det B=\det AB\)。
我們總是可以通過倍加和對換變換將一個矩陣消成上三角矩陣。可以被證明的是,一 \(n\times n\) 上三角矩陣的行列式,等於
因為一個矩陣可逆,當且僅當其可被消成單位矩陣 \(I\),故其必恰有 \(n\) 個主元,則此主元應分布在對角線上。若對角線上元素中不全非零,則顯然其不可逆。而此時其行列式也就為零。故行列式為零等價於矩陣不可逆。
上述上三角矩陣的行列式可以被 \(O(n)\) 簡單計算。於是我們可以通過先將一矩陣消成上三角矩陣再求行列式來在 \(O(n^3)\) 時間內計算行列式。
計算幾何中“叉積”的定義的實質是行列式。即,兩個二維向量 \(\mathbf{u},\mathbf{v}\) 之叉積 \(\mathbf{u}\times\mathbf{v}\),即是矩陣 \([\mathbf{u},\mathbf{v}]\) 之行列式。同理,三維向量乃至更高維向量的叉積也可經由行列式定義。
因為二維/三維叉積的集合意義是面積/體積,所以我們可以發現,若二維平面中由向量集合描述的圖形 \(\{\mathbf{v}\}\) 經由矩陣 \(A\) 描述的線性變換得到了圖形 \(\{\mathbf{u}\}\),則其面積相應地變換了 \(|\det A|\)。
行列式也有一種表達方式是 \(|A|\),但我個人不太欣賞,因為這很容易與絕對值符號混淆,甚至會讓人產生“行列式非負”的誤會。
II.III.特征值與特征向量
定義一數 \(\lambda\) 是一矩陣 \(A\) 的特征值,當且僅當方程 \(A\mathbf{x}=\lambda\mathbf{x}\) 有非平凡解。這時,稱所有上述非平凡解 \(\mathbf{x}\) 都是對應於 \(\lambda\) 的特征向量。
依據定義,\(\lambda\) 是可以為零的,但 \(\mathbf{x}\) 卻不能。
假如我們往后稍微跳一點的話,就會發現對應於 \(\lambda\) 的所有特征向量,加上零向量,構成一空間,稱作\(A\)關於\(\lambda\)的特征空間。特征空間中除了零向量以外的所有向量都是關於\(\lambda\)的特征向量。
上述方程也可以被化成 \((A-\lambda I)\mathbf{x}=0\)。依據我們的行列式知識,此方程有非平凡解當且僅當 \(\det(A-\lambda I)=0\)。
於是,我們定義矩陣 \(A\) 的特征方程是方程\(\det(A-\lambda I)=0\)。\(\lambda\)是\(A\)的特征值,當且僅當其是特征方程的根。
若\(A\)是\(n\times n\)矩陣,則\(\det(A-\lambda I)\)會是一關於\(\lambda\)的\(n\)次多項式,稱作特征多項式。這就證明了任意矩陣 \(A\) 都有 \(n\) 個特征值(不論虛實,可能重復)。若特征方程的所有根中,某一個\(\lambda\)共出現了\(k\)次,則\(k\)即為\(\lambda\)的重數。
在OI中,我們不需知道太多關於特征值的特殊用法,最多只需對於一個給定的特征值,求出其對應的特征空間或對於一個給定的特征向量,求出其對應的特征值即可。
III.基於向量空間的線性代數
III.I.向量空間
向量空間是一個向量集合,滿足集合中任意向量的倍數與任意兩向量的和/差仍在集合內。
零向量屬於一切非空向量空間(因為它是任意向量的零倍)。
任何 \(\mathbb{R}^n\) 均是典型的向量空間。
一向量空間擁有子空間,一子空間中所有元素皆屬於原向量空間,且其本身仍是合法向量空間。
另一個典型的向量空間的例子是I中提到過的 \(\text{Span}\{\mathbf{v}_i\}\)。
III.II.零空間和列空間
對於一矩陣 \(A\),所有滿足 \(A\mathbf{x}=\mathbf{0}\) 的解構成一向量空間。具體可以見I,因為那時已經提到了其通解可以被表示成某些向量的線性組合形式。
我們將這一空間記作 \(\text{Nul }A\),中文為零空間。
明顯,\(\text{Nul } A\) 的表達是隱式的——這意味着我們無法從矩陣 \(A\) 的元素直接得到生成其的任意一組向量集合。
對於一個特定的(元素全部已知的)\(A\),可以通過高斯消元將其消成簡化階梯型矩陣,這樣便可以用消元后的矩陣的非主元列——加上一點分類討論后——的線性組合表示 \(\text{Nul }A\)。
雖然其表達是隱式的,但判斷一個向量是否在零空間內卻是顯式的——直接計算 \(A\mathbf{x}\),並驗證其是否為 \(\mathbf{0}\) 即可。
對於一矩陣 \(A\),其所有列向量的線性組合構成一向量空間,記作 \(\text{Col }A\),中文為列空間。
其表達明顯是顯式的。但是,若判斷一向量是否在列空間內卻是隱式的——你需要建出增廣矩陣並判斷增廣矩陣是否相容。
III.III.基
上文我們已經提到了線性無關的定義。這里,我們有一個新的定義:
一組向量集合 \(\{\mathbf{v}_i\}\) 是一向量空間 \(\mathbb{S}\) 的基,當且僅當 \(\{\mathbf{v}_i\}\) 線性無關且恰好生成 \(\mathbb{S}\)。
在一組線性無關的向量集合中不斷添加新的向量並使其仍然線性無關,最終便會生成一組基。
而往一組生成向量空間 \(\mathbb{S}\) 的集合中不斷刪去向量並使其仍然生成該空間,最終也會生成一組基。
我們將會發現,\(\text{Nul }A\) 的基已經在前面提到了;而 \(\text{Col }A\) 的基即是 \(A\) 中所有主元列。
定義 \(n\) 階標准基是一組生成 \(\mathbb{R}^n\) 的基,其為 \(n\) 階單位矩陣 \(I_n\) 的所有列。
III.IV.坐標系
若向量集合 \(\mathcal{B}=\{\mathbf{v}_i\}\) 是向量空間 \(\mathbb{S}\) 的一組基,則對於 \(\mathbb{S}\) 中任意一個向量 \(\mathbf{u}\),通過 \(\mathcal{B}\) 中向量的線性組合來表示 \(\mathbf{u}\) 的方法是唯一的,即
我們把向量 \([c_1,c_2,\dots,c_n]\) 稱作 \(\mathbf{u}\) 相對於 \(\mathcal{B}\) 的坐標向量,或者 \([\mathbf{u}]_{\mathcal{B}}\)。
我們將會發現,若令 \(P_{\mathcal{B}}=[\mathbf{v}_1,\mathbf{v}_2,\dots,\mathbf{v}_n]\),則有
以及
\(P_{\mathcal{B}}\) 被稱作 \(\mathcal{B}\) 到標准基的坐標變換矩陣。因為 \(\mathcal{B}\) 線性無關,故其逆必定存在,故通過它可以實現在 \(\mathcal{B}\) 坐標和標准坐標下的互換。
兩個向量空間被稱作同構,當前僅當存在一個坐標變換矩陣,可以實現從一個空間到另一個空間的一對一映射。
例如,\(n\) 次多項式空間 \(\mathbb{P}_n\) 就與 \(\mathbb{R}^{n+1}\) 同構。
III.V.維數與秩
定義一個向量空間 \(\mathbb{S}\) 的維數為 \(\dim\mathbb{S}\),其中 \(\mathbb{S}\) 的任意一組基均包含維數個元素。
同理可以得出一個推論,如果 \(\mathbb{S}\) 的某個子集中含有多於 \(\dim\mathbb{S}\) 個元素,則其線性相關。
\(\text{Nul }A\) 的維數是 \(A\) 中自由元的數量,\(\text{Col }A\) 的維數是 \(A\) 中主元的數量。
因此有 \(\dim\text{Nul }A+\dim\text{Col }A=m\),其中 \(m\) 是 \(A\) 的列數。
定義一個矩陣的秩 \(\text{rank }A=\dim\text{Col }A\),即其列空間的維數,也即其主元列數。
III.VI.馬爾可夫鏈
定義概率向量是各元素非負且和為 \(1\) 的向量。定義隨機矩陣為各列均是概率向量的矩陣。定義馬爾可夫鏈為一系列概率向量 \(\mathbf{x}_0,\mathbf{x}_1,\dots\),使得存在一個隨機矩陣 \(P\),使得 \(\forall i\geq 1,\mathbf{x}_i=P\mathbf{x}_{i-1}\)。可以發現,馬爾可夫鏈由 \(\mathbf{x}_0\) 和 \(P\) 唯一確定。
定義一馬爾可夫鏈的穩態向量是一概率向量 \(\mathbf{q}\),使得\(P\mathbf{q}=\mathbf{q}\)成立。
求解一馬爾可夫鏈的穩態向量可以通過求解矩陣方程
來得到。可以發現,\(\mathbf{q}\) 是屬於 \(\text{Nul }P-I\) 的任意向量。
我們定義一馬爾可夫鏈收斂於一概率向量 \(\mathbf{q}\),當且僅當\(\lim\limits_{i\rightarrow\infty}\mathbf{x}_i=\mathbf{q}\)。
INF.總結
OI中要用到的線性代數知識很少很少,了解這些已經足夠了。
最后,放一些等價的說法:
若 \(A\) 是 \(n\times n\) 方陣:
-
是可逆矩陣
-
行等價於 \(n\) 階單位矩陣
-
有 \(n\) 個主元
-
\(A\mathbf{x}=0\) 只有平凡解
-
各列線性無關
-
對 \(\forall \mathbf{b}\in\mathbb{R}^n\),方程 \(A\mathbf{x}=\mathbf{b}\) 有唯一解
-
各列生成 \(\mathbb{R}^n\)
-
\(A^T\) 可逆
-
\(A\) 的列是 \(\mathbb{R}^n\) 之基
-
\(\text{Col }A=\mathbb{R}^n\)
-
\(\dim\text{Col }A=n\)
-
\(\text{rank }A=n\)
-
\(\text{Nul }A=\{\mathbf{0}\}\)
-
\(\dim\text{Nul }A=0\)
-
\(\det A\neq0\)