「雜」循環矩陣與傅里葉變換


循環矩陣 \(A\) 大概長這樣:

\[A = \begin{pmatrix} a_0 & a_1 & \dots & a_{n-1} \\ a_{n-1} & a_0 & \dots & a_{n-2} \\ \vdots & \vdots & \ddots & \vdots \\ a_1 & a_2 & \dots & a_0 \\ \end{pmatrix} \\ \]

如果記矩陣 \(E\)

\[E = \begin{pmatrix} 0 & 1 & 0 & \dots & 0 \\ 0 & 0 & 1 & \dots & 0 \\ \vdots &\vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \dots & 1 \\ 1 & 0 & 0 & \dots & 0 \\ \end{pmatrix} \\ \]

\(A = a_0I + a_1E + a_2E^2 + \dots + a_{n-1}E^{n-1}\)

由於 \(E^n = 1\),可以將 \(E\) 當作 \(n\) 階形式變元。這解釋了為什么循環矩陣的乘法等價於循環卷積。

據某位相關人士口胡,循環矩陣和什么 “線性非時變系統” 有關。

聽到這個名詞的瞬間,我就放棄了思考。


考慮 \(\sum_{i=0}^{n-1}\omega_n^i = 0\)

如果記向量 \(v_i = [\omega_n^{0\times i},\omega_n^{1\times i},\dots,\omega_n^{(n-1)\times i}]\),則上式又可描述成 \(v_i\cdot v_j = [i = j]\times n\)

注意復數向量的點積要取共軛,因此 \(v_i\cdot v_j = \sum_k w_{n}^{(i-j)\times k}\)

考慮連續情況。記 \(f_w(t) = e^{iwt}\),則函數點積 \(f_{w_1}\cdot f_{w_2} = [w_1 = w_2]\times 2\pi\)

這里函數點積定義成 \(\int_{0}^{2\pi}f_{w_1}(t)\overline{f}_{w_2}(t)dt = \int_{0}^{2\pi}e^{i(w_1-w_2)t}dt\)

考慮將函數點積展開成實部虛部,還可以利用三角函數證明(這里要求 \(w\in N_+\))。

這些都在說明 正交性


接下來再考慮矩陣 \(V\)

\[V = \begin{pmatrix} \omega^{0\times 0}_n & \omega^{0\times 1}_n & \dots & \omega^{0\times (n-1)}_n \\ \omega^{1\times 0}_n & \omega^{1\times 1}_n & \dots & \omega^{1\times (n-1)}_n \\ \vdots & \vdots & \ddots & \vdots \\ \omega^{(n-1)\times 0}_n & \omega^{(n-1)\times 1}_n & \dots & \omega^{(n-1)\times (n-1)}_n \\ \end{pmatrix} \]

上文已經說明了 \(\{v_i\}\) 的正交性,即 \(v_0, v_1, \dots, v_{n-1}\) 構成一組 \(\mathbb C^n\) 的正交基(並不是規范正交基,模長為 \(\sqrt n\))。

那么它的逆矩陣也就呼之欲出了:

\[V^{-1} = \frac{1}{n} \begin{pmatrix} \omega^{-0\times 0}_n & \omega^{-0\times 1}_n & \dots & \omega^{-0\times (n-1)}_n \\ \omega^{-1\times 0}_n & \omega^{-1\times 1}_n & \dots & \omega^{-1\times (n-1)}_n \\ \vdots & \vdots & \ddots & \vdots \\ \omega^{-(n-1)\times 0}_n & \omega^{-(n-1)\times 1}_n & \dots & \omega^{-(n-1)\times (n-1)}_n \\ \end{pmatrix} \]

所以這還是涉及到 正交性


接下來瞎扯淡一些東西。可以略過不看

據某位相關人士表示,廣義的 “傅里葉變換” 其實分為 4 種:FT、FS、DTFT、DFT。

我自己揣摩了一下,大概這 4 種表達了不同程度的離散與連續。

計算機當然只能用最離散的 DFT。

為什么 DFT 一定要得是循環卷積而不能直接做線性卷積?

感性上說線性卷積其實就是周期無窮大的循環卷積(有點像 DTFT?我不太清楚這套理論),然而不可能取無窮個點。

至於為什么必然會循環,這似乎取決於 \(e^{iwt}\) 本身的性質。也不是很懂。


回到循環矩陣。

根據一開始的分解,若 \(E\) 的特征值為 \(\lambda\),則 \(A\) 的特征值為 \(f(\lambda)\)

注意 \(E\) 的特征多項式為 \(\lambda^n - 1 = 0\)

我們得到:循環矩陣的特征值為 \(f(\omega_{n}^i)\)(即 DFT 的結果)。

事實上,由於 \(A\) 的特征值互不相同,它可對角化。如果記 \(D\)

\[D = \begin{pmatrix} f(\omega^0_n) & 0 & \dots & 0 \\ 0 & f(\omega^1_n) & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \dots & f(\omega^{n-1}_n) \\ \end{pmatrix} \\ \]

則會有 \(A = VDV^{-1}\)\(V\) 的定義參考上文)。

注意到所有循環矩陣共用同一組特征向量,由此可以加速矩陣乘法(即 DFT 簡化循環卷積的原理)。


考慮循環矩陣 \(A\) 的行列式 \(\det(A) = \prod \lambda_i = \prod f(\omega_n^i)\)

如果可以 DFT 當然最好,但是在模意義下不一定存在 \(n\) 次單位根。

考慮引入結式

\(f(x) = a_0x^n + a_1x^{n-1} + \dots + a_n\)\(g(x) = b_0x^m + b_1x^{m-1} + \dots + b_m\)

則結式 \(R(f, g)\) 定義為如下 \(n + m\) 階行列式:

img

懶得寫了 直接復制了百科的圖片。

如果設 \(f(x)\) 的根為 \(\alpha_1,\alpha_2,\dots,\alpha_n\)\(g(x)\) 的根為 \(\beta_1, \beta_2, \dots, \beta_m\),另一個等價的定義:

\[R(f, g) = a_0^m\prod_{i=1}^{n} g(\alpha_i) = a_0^mb_0^n\prod_{i=1}^{n}\prod_{j=1}^{m}(\alpha_i - \beta_j) \]

至於為什么等價,百科里也啥也不寫(屑百度)。

此時你已經可以驚訝地發現 \(R(x^n - 1, f)\) 就是 \(\det(A)\)

考慮怎么計算 自然不會按定義算行列式

首先有 \(R(f, g) = (-1)^{nm}R(g, f)\)

\(f_1 = f/a_0\) 為首一多項式,則 \(R(f, g) = a_0^mR(f_1, g)\)

注意到 \(f_1(\alpha_i) = 0\),則 \(R(f_1, g) = R(f_1, g + f_1\times p) = (-1)^{n'm'}R(g\bmod f_1, f_1)\)

特別地,\(R(0, g) = [m = 0]\)

然后就可以跑多項式輾轉相除。

結式最一般的還是用來判斷兩個多項式是否有公因式,以及多項式的重根問題。


當然,可以從抽代的角度理解 “卷積”。這一方面已經有豐富的結果(和一道毒瘤題目 https://loj.ac/p/548 )。

更深入的內容在這里就咕且不提。


免責聲明!

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



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