矩阵与空间变换浅思

引言

圆与椭圆变换引发的对矩阵空间变换作用的思考。

空间中点的表示

在任意的一个空间中,我们要描述其中一个点的位置,需要以下三步:

  • 确定原点
  • 确定基向量
  • 确定点的坐标/系数

例如,确定一组基向量记为$P = (\cdots, \vec{p_i}, \cdots)$,利用矢量和,空间中任意点$X$的位置可以如下描述:
$$
\vec{X} = (p_1, \cdots, \vec{p_i}, \cdots, p_n) \cdot \begin{bmatrix} a_1\\ \vdots \\ a_i\\ \vdots\\ a_n \end{bmatrix}
$$
上式用语言描述为:在$P$规定的基向量(坐标系)下,点$X$的描述(坐标)是$\vec{a} = (a_1, a_2, \cdots, a_n) ^ T$。

不同基向量下相同点的坐标

显然,对于同一个点$X$,在不同基向量(坐标系)下有不同的坐标。在$P$下,$X$的坐标为$\vec{a}$;在$Q$下,$X$的坐标为$\vec{b}$。

为了定量分析不同基向量间的联系,引入一个统一的默认基向量(坐标系)用来统一描述不同的基向量,例如xOy坐标系,右手坐标系,左手坐标系等。

在默认坐标系中,点$X$具有唯一的坐标$\vec{x} = (x_1, x_2, \cdots, x_n)^T$。
因此不难得到:
$$\vec{x} = P\cdot \vec{a} = Q \cdot \vec{b}$$

两种解读

对$\vec{x} = P\cdot \vec{a} = Q \cdot \vec{b}$有两种角度的解读。

“翻译”

已知:

  • $Q$
  • 点$X$在$Q$坐标下的坐标$\vec{b}$。

求解:

  • $P$坐标系下点$X$的坐标。

显然,
$$\vec{a} = P^{-1} Q \vec{b}$$

空间变换

已知:

  • 点$X$在默认坐标系下的坐标$\vec{x}$

对点$X$所在空间进行某种变换,变换后点$X$的坐标变为$\vec{a}$,该过程可描述为:
$$\vec{x} = P\cdot \vec{a}$$

下文将从空间变换的角度展开。

矩阵的空间变换

矩阵的空间变换是通过改变基向量实现的。在这个过程中:

  • 坐标轴的方向会改变;
  • 坐标轴的单位距离大小会改变;
  • 源点位置不会改变。

因此,通过改变基变量,矩阵可以实现三种空间变换

  • 旋转
  • 伸缩
  • 降维压缩(将向量从$R^n$空间映射到$R^m$空间,$R^n \to R^m, m < n$,矩阵不满秩)。

矩阵不会实现:平移变换。

下文将讨论旋转与伸缩变换。

旋转

点$X$的坐标(位置)可以用长度与夹角描述,即$\vec{x} = (l\cdot cos\alpha_1, l\cdot cos\alpha_2, \cdots, l\cdot cos\alpha_n)^T$。

具体地,考虑$R^2$空间,$\vec{x} = (l\cdot cos\alpha, l\cdot sin\alpha)$,$\alpha$为$\vec{x}$与横坐标夹角。

现将$R^2$空间中所有点逆时针旋转$\theta$,旋转后得到的新的点$X’$的坐标$x’$为:

$$
\begin{aligned}
x’ &= \begin{bmatrix} cos\theta, \quad -sin\theta \\
sin\theta, \quad cos\theta \end{bmatrix} \cdot \begin{bmatrix} l\cdot cos\alpha \\ l\cdot sin\alpha\end{bmatrix} \\
&= Q \cdot \vec{x}
\end{aligned}
$$

从上式可以得到以下解读:

  • $Q$矩阵实现了空间旋转
  • 旋转后的新基向量记为$\vec{q_i}, i=1,2, \cdots, n$,$Q = (\vec{q_1}, \vec{q_2}, \cdots, \vec{q_n})$
  • $Q$的列向量保持正交,且模长为1。意味着$QQ^T=I$。
  • 正交矩阵实现了空间旋转。

伸缩

矩阵对空间的伸缩指:沿着基向量的方向对空间矢量$\vec{x}$进行伸缩。

变化后,在默认坐标系下观察,与原向量相比,新向量与各基向量的夹角可能会变化;但在新坐标系下观察,角度没有变化。

考虑伸缩矩阵$\Lambda = \begin{bmatrix} \lambda_1, &\quad 0, \quad \cdots, \quad 0 \\
0, &\quad \lambda_2, \quad \cdots, \quad 0 \\
\vdots, &\quad \vdots, \quad \ddots, \quad \vdots \\
0, &\quad 0, \quad \cdots, \quad \lambda_n
\end{bmatrix}$,
其物理意义为将向量沿第$i$基向量方向、伸缩$\lambda_i$。

仍记新向量为$\vec{x’}$,即:
$$
\begin{aligned}
\vec{x’} &= \Lambda \cdot \vec{x} \\
&= (\lambda_1x_1, \lambda_2x_2, \cdots, \lambda_nx_n)^T
\end{aligned}
$$
显然,$\vec{x’}$的结果也反映了上述物理意义。

需要指出的是,此处$\Lambda$是对角矩阵,实现的空间变换是对默认基向量的伸缩,也就是伸缩沿着默认基向量的方向进行。

复合变换

所有空间变化都可以拆解为一系列旋转伸缩变化(不考虑降维)。(矩阵分解的一个体现?)
通常,我们倾向于将一个复杂矩阵分解为对角矩阵$\Lambda$与正交矩阵$Q$。

但是,如前文所述,由于对角矩阵是在默认基向量的方向上进行伸缩,所以$\Lambda \cdot Q$与$Q \cdot \Lambda$结果不同。下文将对此进行讨论。

旋转–>伸缩($\Lambda \cdot Q$)

$$
\begin{aligned}
\Lambda Q \vec{x} &= \begin{bmatrix} \lambda_1 \quad \cdots \quad 0 \\
\vdots \quad \ddots \quad \vdots \\
0 \quad \cdots \quad \lambda_n
\end{bmatrix} \cdot
(\vec{q_1}, \vec{q_2}, \cdots, \vec{q_n}) \cdot \vec{x} \\
&= \begin{bmatrix} \lambda_1q_{11} \quad \cdots \quad 0 \\
\vdots \quad \ddots \quad \vdots \\
0 \quad \cdots \quad \lambda_nq_{nn}
\end{bmatrix} \cdot \vec{x}
\end{aligned}
$$

伸缩–>旋转($Q \cdot \Lambda$)

$$
\begin{aligned}
Q \Lambda \vec{x} &= (\vec{q_1}, \vec{q_2}, \cdots, \vec{q_n}) \cdot \begin{bmatrix} \lambda_1 \quad \cdots \quad 0 \\
\vdots \quad \ddots \quad \vdots \\
0 \quad \cdots \quad \lambda_n
\end{bmatrix} \cdot \vec{x} \\
&= (\lambda_1\vec{q_1}, \lambda_2\vec{q_2}, \cdots, \lambda_n\vec{q_n}) \cdot \vec{x}
\end{aligned}
$$

圆与椭圆变换

中心位于原点的椭圆,可以看作是中心位于原点的单位圆沿着纵坐标、横坐标方向伸展变换后得到的结果。

单位圆可以定义为:
$$
X^TX = 1
$$

记变换矩阵为$\Lambda$,变换后的椭圆坐标为:
$$Y = \Lambda X$$

由此,可得$X = \Lambda^{-1} Y$,将其带入圆的定义为:
$$
Y^T (\Lambda^{-1})^T \Lambda^{-1}Y = 1
$$

记$P = \Lambda \Lambda^T$,则上式可改写为:
$$
Y^TP^{-1}Y=1
$$
即椭圆方程。

结论