Logo

基变换

1. 基变换的基本概念

在不同的坐标系统中,同一个向量的表示方式可能不同。基变换可以帮助我们根据实际问题的需要选择最合适的基,进而简化分析和计算。在计算机图形学中,基变换尤其常见,特别是在涉及局部坐标系和全局坐标系相互转换时。例如,考虑下面的示例:为了方便物体始终相对底部平面旋转,当底部平面发生变换(如旋转)时,整体坐标轴也需要随之做相应的变换。

2. 基变换矩阵

基变换的核心是将一个向量在一个基下的表示转换为另一个基下的表示。为了方便一般性讨论,我们假设 R2 ~\mathbb{R^2}~空间中两个非标准基 B={b1,b2} ~\mathcal{B}=\{\mathbf{b}_1,\mathbf{b}_2\}~ C={c1,c2} ~\mathcal{C}=\{\mathbf{c}_1,\mathbf{c}_2\}~,请观察下面示例中在基发生变换时,根据原基下的向量 [x]B ~[\mathbf{x}]_\mathcal{B}~来求解新基下的向量 [x]C ~[\mathbf{x}]_\mathcal{C}~的过程:

开通会员解锁全部动画

动画直接给出了结论,求 [x]C ~[\mathbf{x}]_\mathcal{C}~可以通过原基向量 {b1,b2} ~\{\mathbf{b}_1, \mathbf{b}_2\}~在新基下的向量组成的矩阵 [[b1]C[b2]C] ~\begin{bmatrix}[\mathbf{b}_1]_\mathcal{C} & [\mathbf{b}_2]_\mathcal{C}\end{bmatrix}~与原向量 [x]B ~[\mathbf{x}]_\mathcal{B}~相乘得到。下面我们给出具体的演算过程:首先,根据[x]B[\mathbf{x}]_\mathcal{B}的定义,向量 x ~\mathbf{x}~可以表示为基 B ~\mathcal{B}~的线性组合:
x=3b1+1b2\mathbf{x}=3\mathbf{b}_1+1\mathbf{b}_2
然后我们将 x ~\mathbf{x}~转换为基 C ~\mathcal{C}~下的表示,通过将 b1 ~\mathbf{b}_1~ b2 ~\mathbf{b}_2~代入,由于坐标映射是线性变换,可得到:
[x]C=[3b1+b2]C=3[b1]C+[b2]C\begin{align*}[\mathbf{x}]_\mathcal{C} &= [3\mathbf{b}_1 + \mathbf{b}_2]_\mathcal{C}\\[2ex] &= 3[\mathbf{b}_1]_C + [\mathbf{b}_2]_C\end{align*}
上面是一个向量方程,我们可以把它写成矩阵方程的形式:
[x]C=[[b1]C[b2]C][31][\mathbf{x}]_{\mathcal{C}} = \begin{bmatrix} [\mathbf{b}_1]_{\mathcal{C}} & [\mathbf{b}_2]_{\mathcal{C}} \end{bmatrix} \begin{bmatrix} 3 \\ 1 \end{bmatrix}
上面这个公式就是动画中使用到的结论。这个结论可以推广到任意空间 V ~V~中的任意两个基 B ~\mathcal{B}~ C ~\mathcal{C}~之间的变换,有如下定理:
定理中的矩阵CBP\overset{\normalsize \mathbf{P}}{\raisebox{-1ex}{\tiny \(\mathcal{C} \kern-0.5em \leftarrow \kern-0.5em \mathcal{B}\)}}称为 B ~\mathcal{B}~ C ~\mathcal{C}~的坐标变换矩阵(change-of-coordinates matrix from B to C)(\textbf{change-of-coordinates matrix from} ~ \mathcal{B} ~\textbf{to} ~ \mathcal{C}),它是坐标系之间变换的桥梁。结合本章节的定理 9可知,任何空间 V ~V~的向量都可以一一映射到 Rn ~\mathbb{R^n}~空间,而 Rn ~\mathbb{R^n}~空间中的向量可以通过坐标变换矩阵进行不同基之间的转换。这个过程可由下图来表示:

开通会员解锁全部动画

 B ~\mathcal{B}~ C ~\mathcal{C}~的坐标变换矩阵的列向量是由基向量构成的,它们一定是线性无关的,所以矩阵CBP\overset{\normalsize \mathbf{P}}{\raisebox{-1ex}{\tiny \(\mathcal{C} \kern-0.5em \leftarrow \kern-0.5em \mathcal{B}\)}}是可逆的。那么下面的等式是成立的:
(CBP)1[x]C=[x]B\left( \overset{\normalsize \mathbf{P}}{\raisebox{-1ex}{\tiny \(\mathcal{C} \kern-0.5em \leftarrow \kern-0.5em \mathcal{B}\)}} \right)^{-1}[\mathbf{x}]_\mathcal{C}=[\mathbf{x}]_\mathcal{B}
所以矩阵(CBP)1\left( \overset{\normalsize \mathbf{P}}{\raisebox{-1ex}{\tiny \(\mathcal{C} \kern-0.5em \leftarrow \kern-0.5em \mathcal{B}\)}} \right)^{-1}就是由 C ~\mathcal{C}~ B ~\mathcal{B}~的坐标变换矩阵,即:
(CBP)1=BCP\left( \overset{\normalsize \mathbf{P}}{\raisebox{-1ex}{\tiny \(\mathcal{C} \kern-0.5em \leftarrow \kern-0.5em \mathcal{B}\)}} \right)^{-1}=\overset{\normalsize \mathbf{P}}{\raisebox{-1ex}{\tiny \(\mathcal{B} \kern-0.5em \leftarrow \kern-0.5em \mathcal{C}\)}}

3.  Rn ~\mathbb{R^n}~中的基变换

坐标系一节中,我们讨论过 Rn ~\mathbb{R^n}~空间中标准基 E ~\mathcal{E}~和非标准基 B ~\mathcal{B}~之间的变换。现在,我们根据定理 15 ~15~可以在 Rn ~\mathbb{R^n}~空间中做非标准基之间的变换。基变换的关键就是确定坐标变换矩阵,这个过程本质可以转换为求解矩阵方程的问题。请观察下面求由 B ~\mathcal{B}~ C ~\mathcal{C}~的坐标变换矩阵CBP\overset{\normalsize \mathbf{P}}{\raisebox{-1ex}{\tiny \(\mathcal{C} \kern-0.5em \leftarrow \kern-0.5em \mathcal{B}\)}}的过程:

开通会员解锁全部动画

我们来分析上面的求解过程中:矩阵CBP\overset{\normalsize \mathbf{P}}{\raisebox{-1ex}{\tiny \(\mathcal{C} \kern-0.5em \leftarrow \kern-0.5em \mathcal{B}\)}}是由 b1,b2 ~\mathbf{b}_1,\mathbf{b}_2~ C坐标组成~\mathcal{C}-\text{坐标组成}, 设[b1]C=[x1x2]T,[b2]C=[y1y2]T[\mathbf{b}_1]_\mathcal{C}=\begin{bmatrix}x_1 & x_2\end{bmatrix}^T,[\mathbf{b}_2]_\mathcal{C}=\begin{bmatrix}y_1 & y_2\end{bmatrix}^T,它们分别是下面两个矩阵方程的解:
[c1c2][x1x2]=b1,[c1c2][y1y2]=b2 \begin{bmatrix} \mathbf{c}_1 & \mathbf{c}_2 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = \mathbf{b}_1 \quad , \quad \begin{bmatrix} \mathbf{c}_1 & \mathbf{c}_2 \end{bmatrix} \begin{bmatrix} y_1 \\ y_2 \end{bmatrix} = \mathbf{b}_2
我们可以通过化简增广矩阵求矩阵方程的解。由于这两个矩阵方程的系数是相同的,而且解每个方程是独立的,因此我们可以将多个方程写在同一个增广矩阵中:
[c1c2b1b2][13954511][10640153]\left[ \begin{array}{cc:cc} \mathbf{c}_1 & \mathbf{c}_2 & \mathbf{b}_1 & \mathbf{b}_2 \end{array} \right] \sim \begin{array}{cccc} \left[ \begin{array}{cc:cc} 1 & 3 & -9 & -5 \\ -4 & -5 & 1 & -1 \end{array} \right] \sim \left[ \begin{array}{cc:cc} 1 & 0 & 6 & 4 \\ 0 & 1 & -5 & -3 \end{array} \right] \end{array}
我们可以总结出求 Rn ~\mathbb{R^n}~中任意两个基之间的变换矩阵的过程如下:
[c1c2b1b2][ICBP]\left[ \begin{array}{cc:cc} \mathbf{c}_1 & \mathbf{c}_2 & \mathbf{b}_1 & \mathbf{b}_2 \end{array}\right] \sim \left[ \begin{array}{c:c} \mathbf{I} & \overset{\normalsize \mathbf{P}}{\raisebox{-1ex}{\tiny \(\mathcal{C} \kern-0.5em \leftarrow \kern-0.5em \mathcal{B}\)}} \end{array} \right]