矩阵与空间变换浅思
引言
圆与椭圆变换引发的对矩阵空间变换作用的思考。
空间中点的表示
在任意的一个空间中,我们要描述其中一个点的位置,需要以下三步:
- 确定原点
- 确定基向量
- 确定点的坐标/系数
例如,确定一组基向量记为$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
$$
即椭圆方程。