在线性代数中,循环矩阵是一种特殊形式的 Toeplitz矩阵,它的列向量的每个元素都是前一个列向量各元素依次右移一个位置得到的结果。由于可以用离散傅立叶变换快速解循环矩阵,所以在数值分析中有重要的应用。
形式为
![{\displaystyle C={\begin{bmatrix}c_{0}&c_{n-1}&\cdots &c_{2}&c_{1}\\c_{1}&c_{0}&c_{n-1}&&c_{2}\\\vdots &c_{1}&c_{0}&\ddots &\vdots \\c_{n-2}&&\ddots &\ddots &c_{n-1}\\c_{n-1}&c_{n-2}&\cdots &c_{1}&c_{0}\\\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/99ec672293144c58bdec7ee70600ba76f0d4a36d)
的
矩阵 C 就是循环矩阵。
循环矩阵遵循代数运算法则。对于两个循环矩阵 A 与 B 来说,A + B 也是循环矩阵。AB 也是循环矩阵,并且
。
循环矩阵的特征向量矩阵是同样维数的离散傅立叶变换矩阵,因此循环矩阵的特征值可以很容易地通过快速傅立叶变换计算出来。
具体对应关系为
![{\displaystyle \lambda _{j}=c_{0}+c_{n-1}\omega _{j}+c_{n-2}\omega _{j}^{2}+\ldots +c_{1}\omega _{j}^{n-1},\qquad j=0,1,\ldots ,n-1.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/04fee4c9e4439d0141e12c229e4a27f6353b47b9)
其中
。
对称矩阵
附加一个条件
。
因此可由
个元素定义。
![{\displaystyle C={\begin{bmatrix}c_{0}&c_{1}&\dots &c_{2}&c_{1}\\c_{1}&c_{0}&c_{1}&&c_{2}\\\vdots &c_{1}&c_{0}&\ddots &\vdots \\c_{2}&&\ddots &\ddots &c_{1}\\c_{1}&c_{2}&\dots &c_{1}&c_{0}\\\end{bmatrix}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b0da515319af60e28a48d91edb04c21ff3a02169)
实对称矩阵的所有特征值都是实数,对于上述定义的实对称循环矩阵,这些特征值在
为偶数时为
![{\displaystyle \lambda _{j}=c_{0}+2c_{1}\Re \omega _{j}+2c_{2}\Re \omega _{j}^{2}+\ldots +2c_{n/2-1}\Re \omega _{j}^{n/2-1}+c_{n/2}\omega _{j}^{n/2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/273cc15b8a53cff70d759616850a6bbc198b16ae)
在
为奇数时为
![{\displaystyle \lambda _{j}=c_{0}+2c_{1}\Re \omega _{j}+2c_{2}\Re \omega _{j}^{2}+\ldots +2c_{(n-1)/2}\Re \omega _{j}^{(n-1)/2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/00a2b828eda9cd86a16f765d7b99acfe9c43acec)
其中
表示取实部。
利用
,可进一步简化。
设矩阵方程
![{\displaystyle \mathbf {C} \mathbf {x} =\mathbf {b} }](https://wikimedia.org/api/rest_v1/media/math/render/svg/801db0b1d3bbc18391ea9bbd3df1d827e9e93fc5)
其中 C 是 n 维方形循环矩阵,这样就可以将方程表示成循环卷积
![{\displaystyle \mathbf {c} *\mathbf {x} =\mathbf {b} }](https://wikimedia.org/api/rest_v1/media/math/render/svg/95737e7a3bdddaa89724a5140148e9e8af867350)
其中 c 是循环矩阵 C 的第一列,c、x与b分别向每个方向循环。用离散傅立叶变换将循环卷积转换成两个变量之间的乘积
![{\displaystyle {\mathcal {F}}_{n}(\mathbf {c} *\mathbf {x} )={\mathcal {F}}_{n}(\mathbf {c} ){\mathcal {F}}_{n}(\mathbf {x} )={\mathcal {F}}_{n}(\mathbf {b} )}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8b9c004398ffc36383792458c6956c93782e45d8)
因此
![{\displaystyle \mathbf {x} ={\mathcal {F}}_{n}^{-1}\left[\left({\frac {({\mathcal {F}}_{n}(\mathbf {b} ))_{\nu }}{({\mathcal {F}}_{n}(\mathbf {c} ))_{\nu }}}\right)_{\nu \in \mathbf {Z} }\right].}](https://wikimedia.org/api/rest_v1/media/math/render/svg/da1f341270b2e2e60a14e56b7ce30e8721930261)
这个算法比标准的高斯消元法的速度要快很多,尤其是当使用快速傅立叶变换的时候更是如此。
在图论中,邻接矩阵为循环矩阵的图与有向图叫作轮换图。同样,如果图的自同构群包含全部的循环,那么图就是轮换图。Möbius ladder 就是轮换图的例子。