Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 18 additions & 22 deletions lectures/eig_circulant.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ kernelspec:

## 概述

本讲座介绍循环矩阵及其一些性质
本讲座将介绍循环矩阵这一特殊的矩阵类型

循环矩阵具有特殊的结构,这种结构将它们与一些有用的概念联系起来,包括
循环矩阵有着独特的结构特征,这使得它们与许多重要的数学概念密切相关,比如

* 卷积
* 卷积运算
* 傅里叶变换
* 置换矩阵

由于这些联系,循环矩阵在机器学习中被广泛使用,例如在图像处理中
正是由于这些重要联系,循环矩阵在机器学习等领域得到了广泛应用。例如,它们在图像处理中扮演着重要角色

我们首先导入一些Python包:

Expand Down Expand Up @@ -83,13 +83,13 @@ def construct_cirlulant(row):
```

```{code-cell} ipython3
# 一个简单的例子,当 N = 3
# 当 N = 3 时的一个简单例子
construct_cirlulant(np.array([1., 2., 3.]))
```

### 循环矩阵的一些性质

以下是一些有用的性质
以下是一些有用的性质

假设 $A$ 和 $B$ 都是循环矩阵。那么可以验证:

Expand Down Expand Up @@ -149,7 +149,7 @@ P=\left[\begin{array}{cccccc}
\end{array}\right]
$$ (eqn:exampleP)

作为一个**循环移位**算子,当应用于 $N \times 1$ 向量 $h$ 时,将第 $2$ 行到第 $N$ 行的元素向上移动一行,并将第 $1$ 行的元素移动到第 $N$ 行。
是一个**循环移位**算子,当应用于 $N \times 1$ 向量 $h$ 时,将第 $2$ 行到第 $N$ 行的元素向上移动一行,并将第 $1$ 行的元素移动到第 $N$ 行。

方程 {eq}`eqn:exampleP` 中定义的循环移位置换矩阵 $P$ 的特征值可以通过构造

Expand Down Expand Up @@ -216,13 +216,13 @@ for i in range(4):
print(f'𝜆{i} = {𝜆[i]:.1f} \nvec{i} = {Q[i, :]}\n')
```

在下面的图中,我们将在复平面上展示移位置换矩阵的特征值
让我们在复平面上绘制移位置换矩阵的特征值

这些特征值均匀分布在单位圆上
从图中可以看出,这些特征值在单位圆上均匀分布

它们是**$n$ 次单位根**,意味着它们是满足 $z^n =1$ 的 $n$ 个复数 $z$,其中 $z$ 是一个复数
这些特征值实际上就是单位根 -- 即满足方程 $z^n = 1$ 的复数 $z$

特别地,$n$ 次单位根是
具体来说,对于阶数为 $n$ 的置换矩阵,其特征值就是 $n$ 个单位根,它们的表达式为

$$
z = \exp\left(\frac{2 \pi j k }{N} \right) , \quad k = 0, \ldots, N-1
Expand Down Expand Up @@ -317,7 +317,7 @@ Q8 = F8 / np.sqrt(8)
```

```{code-cell} ipython3
# 验证正交性(酉性)
# 验证正交性
Q8 @ np.conjugate(Q8)
```

Expand All @@ -338,20 +338,16 @@ for j in range(8):
diff_arr
```

## 关联置换矩阵
## 循环矩阵与置换矩阵的关系

接下来,我们执行计算来验证方程 {eq}`eqn:circulant` 中定义的循环矩阵 $C$ 可以写成
接下来,我们将验证方程 {eq}`eqn:circulant` 中定义的循环矩阵 $C$ 可以表示为置换矩阵的线性组合:

$$
C = c_{0} I + c_{1} P + \cdots + c_{n-1} P^{n-1}
$$

并且 $P$ 的每个特征向量也是 $C$ 的特征向量。

```{code-cell} ipython3

```

我们用 $N=8$ 的情况来说明这一点。

```{code-cell} ipython3
Expand All @@ -366,7 +362,7 @@ c
C8 = construct_cirlulant(c)
```

计算 $c_{0} I + c_{1} P + \cdots + c_{n-1} P^{n-1}$
计算 $c_{0} I + c_{1} P + \cdots + c_{n-1} P^{n-1}$

```{code-cell} ipython3
N = 8
Expand All @@ -387,13 +383,13 @@ C
C8
```

现在让我们计算两种不同方式构造的循环矩阵之间的差异
现在让我们计算两种不同方式构造的循环矩阵之间的差值

```{code-cell} ipython3
np.abs(C - C8).max()
```

与特征值 $w^{k-1}$ 相关的 $P_{8}$ 的第 $k$ 列是 $C_{8}$ 的特征向量,对应的特征值是 $\sum_{h=0}^{7} c_{j} w^{h k}$
$P_8$ 的第 $k$ 列是 $C_8$ 的特征向量,其特征值为 $\sum_{h=0}^{7} c_h w^{hk}$,其中 $w^{k-1}$ 是 $P_8$ 对应的特征值

```{code-cell} ipython3
𝜆_C8 = np.zeros(8, dtype=complex)
Expand Down Expand Up @@ -443,7 +439,7 @@ def DFT(x):
return X
```

考虑以下示例
考虑以下示例

$$
x_{n}=\begin{cases}
Expand Down
Loading