線性代數——特征系統


定義

\(A\)\(n\)階方陣,如果存在數\(\lambda\)\(n\)非零列向量\(x\)滿足

\[Ax = \lambda x \]

\(\lambda\)為此方陣的特征值 \(x\)為此方陣的特征向量

\[(\lambda \text{I} - \text{A}) · x = 0 \]

由於\(x\)不為0 所以\(|\lambda \text{I} -\text{A} |=0\)

證明:

考慮\(Mx = 0 \Leftrightarrow |M| = 0 (x\ne 0)\)

顯然\(x = 0\)是一個解,滿秩對應唯一解,因為此時\(x\)是非0解,所以不止一個解,代表\(M\)不是滿秩,即\(|M|=0\)

記 $ f(\lambda) = |\lambda \text{I} - \text{A}| $ 這是一個關於 $ \lambda $ 的 $ n $ 次多項式(考慮行列式定義 會經過主對角線0~n次不等)稱其為特征多項式 \(f(\lambda) = 0\) 也就是它的特征方程 ( n次方程)

根據定義,特征方程的\(n\)個根就是原方陣的\(n\)個特征值

定理

Cayley-Hamilton定理

考慮特征多項式\(P(x) = x^n + b_1 x^{n-1} + ... +b_n\)\(P(A) = A^n + b_1A^{n-1}+...+b_n = 0\)

證明:考慮\(|\lambda \text{I} - \text{A}|=0\) \(P(\lambda)=0 \rightarrow P(\lambda \text{I}) = 0 \rightarrow P(\text{A}) =0\)

(因為特征值帶入進去是特征方程的根所以\(P(\lambda)=0\)

舉例

常系數線性遞推

考慮轉移矩陣

\(C = \begin{bmatrix} b_1&b_2&\dots&b_k \\ 1& 0& \dots &0 \\ \vdots&& \ddots & \vdots\\ 0 &\dots&1&0\end{bmatrix}\)

按定義代入可解得多項式

\(f(\lambda) = |\lambda \text{I} -C| = \begin{bmatrix} \lambda -b_1&-b_2&\dots&-b_k \\ -1& \lambda& \dots &0 \\ \vdots&& \ddots & \vdots\\ 0 &\dots&-1&\lambda\end{bmatrix}\)

考慮從最后一行展開\(f_k(\lambda) = \lambda f_{k-1}(\lambda) - b_k\)

(考慮最后一列選擇什么 如果選擇\(\lambda\)則可以按照定義接着選下去,若是選擇\((-b_k)\)的話會有\((-1)^{k-1} (-1)^{k-1}\)的貢獻(前面是強制選的 后面是產生了\(k-1\)逆序對)

又因為\(f_1(\lambda)=\lambda - b_1\) 於是有 \(f_k(\lambda) = \lambda^k - b_{1}\lambda^{k-1} - \dots - b_k\)

我們用快速冪求遞推式的時候瓶頸在於求 \(C^n\) 接下來考慮如何快速求這個玩意

根據Hamilton-Cayley定理(上面那個)有\(f(C)=C^k - b_1C^{k-1} -b_2C^{k-2} -... -b_k\text{I} = 0\)

因此 求\(C^ n\)就快了 因為有\(f(C)=0\) 所以我們考慮讓\(C^n\)\(f(C)\)取模(這里指多項式取模)

這樣 我們就只需要知道\(I,C,...,C^{k-1}\)就可以了

但實際上 我們真的需要知道嗎?

考慮我們求的\(a_n\) 只是列向量的第一項 把整個柿子寫出來

\[C^n\cdot v_0 = c_0 \cdot v_0 + ... + c_{k-1} \cdot C^{k-1} \cdot v_0 \]

\(v_0\)是我們的初始序列 由定義可以得到\(v0\)的第一項是\(a_0\)\(C^{k-1}v_0\)的第一項是\(a_{k-1}\)

(前提是這是前k項也滿足這個遞推關系 不然就需要預處理出前2k項)

所以預處理前\(k\)項就可以快速求了

現在就分為了兩個子問題 1.求系數\(c_i\) 2.快速求前k項

  1. 其實就是\(x^n\ mod\ f(x)\)

    類似自然數快速冪,用NTT優化多項式取模就可以做到\(O(k\ \text{log}k\ \text{log}n)\)

  2. 快速求\(k/2k\)

    如果沒有給出前k項的話 考慮利用生成函數 原數列是\(G\) 轉移序列是\(A\) 可以得到\(G = GA +r\) (r是常數項)

    移項得到\(G = \frac{r}{1-A}\) 在模\(x^{k+1}\)意義下做

    如果要求\(2k\)項的話是沒有快速做法的 至少可以分治\(NTT\)做到\(O(klg^2k)\)(至少我沒找到 如果找到了的話請戳我/kel 超級感謝)

More Advanced——矩陣對角化

利用了HC定理 我們在已知特征多項式的前提下能快速求特殊矩陣高次冪了 那么我們是否能做到求任意的矩陣高次冪了呢?矩陣對角化就可以讓我們來快速計算高次冪

Prob0.對角矩陣\(diag(a_1,a_2,\dots,a_k)\)\(n\)次冪

考慮\(diag(a_1,a_2,\dots,a_k)^n = diag(a_1^n,a_2^n,\dots,a_k^n)\)

所以這玩意超級好求

那么肯定不是所有矩陣都能做到快速求對角矩陣(暴力是\(O(k^3)\)) 我們考慮怎么辦

前綴知識——橋函數

先講個簡單的玩意,函數迭代。

考慮\(f(x)=3x+4\) 快速求\(f^{(n)}(x)\)

考慮構造橋函數\(\phi(x)=x-2\)\(\phi^{-1}(x)=x-2\)\(f(x)=3(x+2)-2\)\(g(x)=3x\)\(f(x) = \phi(g(\phi^{-1}(x)))=\phi \circ g \circ \phi^{-1}(x)\)

\(\circ\)是函數復合 有結合律 無交換律【應該顯然】)

於是\(f^{(2)}=f\circ f=\phi^{-1} \circ g \circ \phi \circ \phi^{-1} \circ g \circ \phi^{-1}=\phi^{-1} \circ g^{(2)} \circ \phi^{-1}\)類似可以推出

\(f^{(n)}=\phi^{-1} \circ g^{(n)} \circ \phi^{-1}\) 對於\(g\)可以快速計算 此時\(\phi\)函數起到的橋接作用 我們稱\(g\)\(f\)相似

既然函數可以這么做到 我們考慮矩陣能否這么做

類似的有記矩陣\(\text{A}\)與矩陣\(\text{B}\)相似為\(\text{A} \sim \text{B}\)\(\text{A} \sim \text{B}\)\(\Phi\)橋接的話 則有\(\text{A}^{n} = \Phi^{-1} \cdot \text{B}^{n} \cdot \Phi\)

定理

\(n\)階方陣可對角化的充要條件時\(\text{A}\)\(n\)個線性無關的特征向量

結論

\(\Phi = [v_1\ v_2\ \cdots\ v_n]\)

(\(v_i\)是第\(i\)個線性無關的列特征向量)

證明

\[\text{A} \cdot \Phi = \text{A}\cdot [v_1\ \cdots\ v_n]\\=[\text{A}v_1 \cdots \text{A}v_n] \\ = [\lambda_1\cdot v_1 \cdots \lambda_n\cdot v_n] \\ =\Phi \cdot diag(\lambda_1,\cdots,\lambda_n) \]

\(\lambda_i\)是對應\(v_i\)的特征值 原因見全文第一句話)

於是有整個柿子\(=diag(\lambda_1,\cdots,\lambda_n)\)

你以為你學會了對角化你就能算所有高次冪辣?你還是\(na\ddot{\imath}ve\)

事實上對於大部分矩陣你根本求不出來特征值和特征向量!

如果需要例題的話可以看CF947E 綜合了線代特征系統的一道好題 具體的我懶得寫了 可以戳sundz的博客


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM