通过逆矩阵公式证明齐次变换矩阵的逆
1. 变换矩阵的定义
设齐次变换矩阵 TTT 为:
T=[nxoxaxPxnyoyayPynzozazPz0001]=[Rp0⊤1], T = \begin{bmatrix} n_x & o_x & a_x & P_x \\ n_y & o_y & a_y & P_y \\ n_z & o_z & a_z & P_z \\ 0 & 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} R & \mathbf{p} \\ \mathbf{0}^\top & 1 \end{bmatrix}, T= nxnynz0oxoyoz0axayaz0PxPyPz1 =[R0⊤p1],
其中
R=[noa]=[nxoxaxnyoyaynzozaz],p=[PxPyPz]. R = \begin{bmatrix} \mathbf{n} & \mathbf{o} & \mathbf{a} \end{bmatrix} = \begin{bmatrix} n_x & o_x & a_x \\ n_y & o_y & a_y \\ n_z & o_z & a_z \end{bmatrix}, \quad \mathbf{p} = \begin{bmatrix} P_x \\ P_y \\ P_z \end{bmatrix}. R=[noa]= nxnynzoxoyozaxayaz ,p= PxPyPz .
这里 RRR 是旋转矩阵,满足正交性 R−1=R⊤R^{-1} = R^\topR−1=R⊤ 且行列式 det(R)=1\det(R) = 1det(R)=1。
2. 逆矩阵公式
利用逆矩阵公式:
T−1=1det(T)adj(T), T^{-1} = \frac{1}{\det(T)} \operatorname{adj}(T), T−1=det(T)1adj(T),
其中 adj(T)\operatorname{adj}(T)adj(T) 是 TTT 的伴随矩阵(代数余子式矩阵的转置)。
3. 计算行列式 det(T)\det(T)det(T)
按最后一行展开:
det(T)=(−1)4+4⋅1⋅det(R)=det(R)=1. \det(T) = (-1)^{4+4} \cdot 1 \cdot \det(R) = \det(R) = 1. det(T)=(−1)4+4⋅1⋅det(R)=det(R)=1.
4. 计算伴随矩阵 adj(T)\operatorname{adj}(T)adj(T)
伴随矩阵的元素定义为 adj(T)ij=Cji\operatorname{adj}(T){ij} = C{ji}adj(T)ij=Cji,其中 Cji=(−1)j+iMjiC_{ji} = (-1)^{j+i} M_{ji}Cji=(−1)j+iMji,MjiM_{ji}Mji 是去掉第 jjj 行和第 iii 列后的子矩阵行列式。
4.1 计算 CjiC_{ji}Cji 对 i,j≤3i, j \leq 3i,j≤3
对于 i,j≤3i, j \leq 3i,j≤3,去掉第 jjj 行第 iii 列后,子矩阵包含行 1,2,3,41,2,3,41,2,3,4(除第 jjj 行)和列 1,2,3,41,2,3,41,2,3,4(除第 iii 列)。由于第 4 行元素为 [0,0,0,1][0,0,0,1][0,0,0,1],按最后一行展开,得:
Mji=det(剩余列的前三行)=Mji(R), M_{ji} = \det\left( \text{剩余列的前三行} \right) = M_{ji}^{(R)}, Mji=det(剩余列的前三行)=Mji(R),
其中 Mji(R)M_{ji}^{(R)}Mji(R) 是 RRR 去掉第 jjj 行第 iii 列的 2×22 \times 22×2 子式。故:
Cji=(−1)j+iMji(R)=Cji(R), C_{ji} = (-1)^{j+i} M_{ji}^{(R)} = C_{ji}^{(R)}, Cji=(−1)j+iMji(R)=Cji(R),
即 TTT 的代数余子式等于 RRR 的代数余子式。由于 RRR 正交且 det(R)=1\det(R)=1det(R)=1,有 adj(R)=R⊤\operatorname{adj}(R) = R^\topadj(R)=R⊤,即 Cji(R)=(R⊤)ijC_{ji}^{(R)} = (R^\top)_{ij}Cji(R)=(R⊤)ij。因此:
adj(T)ij=Cji=(R⊤)ij,i,j≤3. \operatorname{adj}(T){ij} = C{ji} = (R^\top)_{ij}, \quad i,j \leq 3. adj(T)ij=Cji=(R⊤)ij,i,j≤3.
4.2 计算 C4iC_{4i}C4i 对 i=1,2,3i = 1,2,3i=1,2,3
C4i=(−1)4+iM4iC_{4i} = (-1)^{4+i} M_{4i}C4i=(−1)4+iM4i,其中 M4iM_{4i}M4i 是去掉第 4 行第 iii 列的 3×33 \times 33×3 子矩阵行列式。该子矩阵由列 {1,2,3,4}∖{i}\{1,2,3,4\} \setminus \{i\}{1,2,3,4}∖{i} 的前三行组成。
-
若 i=1i=1i=1,子矩阵为 [o a p][\mathbf{o} \ \mathbf{a} \ \mathbf{p}][o a p],故
M41=det(o,a,p)=p⋅(o×a)=p⋅n, M_{41} = \det(\mathbf{o}, \mathbf{a}, \mathbf{p}) = \mathbf{p} \cdot (\mathbf{o} \times \mathbf{a}) = \mathbf{p} \cdot \mathbf{n}, M41=det(o,a,p)=p⋅(o×a)=p⋅n,则 C41=−p⋅nC_{41} = -\mathbf{p} \cdot \mathbf{n}C41=−p⋅n。
-
若 i=2i=2i=2,子矩阵为 [n a p][\mathbf{n} \ \mathbf{a} \ \mathbf{p}][n a p],故
M42=det(n,a,p)=p⋅(n×a)=−p⋅o, M_{42} = \det(\mathbf{n}, \mathbf{a}, \mathbf{p}) = \mathbf{p} \cdot (\mathbf{n} \times \mathbf{a}) = -\mathbf{p} \cdot \mathbf{o}, M42=det(n,a,p)=p⋅(n×a)=−p⋅o,则 C42=p⋅oC_{42} = \mathbf{p} \cdot \mathbf{o}C42=p⋅o。
-
若 i=3i=3i=3,子矩阵为 [n o p][\mathbf{n} \ \mathbf{o} \ \mathbf{p}][n o p],故
M43=det(n,o,p)=p⋅(n×o)=p⋅a, M_{43} = \det(\mathbf{n}, \mathbf{o}, \mathbf{p}) = \mathbf{p} \cdot (\mathbf{n} \times \mathbf{o}) = \mathbf{p} \cdot \mathbf{a}, M43=det(n,o,p)=p⋅(n×o)=p⋅a,则 C43=−p⋅aC_{43} = -\mathbf{p} \cdot \mathbf{a}C43=−p⋅a。
因此:
adj(T)i4=C4i=−(p⋅vi),v1=n, v2=o, v3=a. \operatorname{adj}(T){i4} = C{4i} = -(\mathbf{p} \cdot \mathbf{v}_i), \quad \mathbf{v}_1 = \mathbf{n},\ \mathbf{v}_2 = \mathbf{o},\ \mathbf{v}_3 = \mathbf{a}. adj(T)i4=C4i=−(p⋅vi),v1=n, v2=o, v3=a.
即 adj(T)i4=(−R⊤p)i\operatorname{adj}(T)_{i4} = (-R^\top \mathbf{p})_iadj(T)i4=(−R⊤p)i。
4.3 计算 Cj4C_{j4}Cj4 对 j=1,2,3j = 1,2,3j=1,2,3
Cj4=(−1)j+4Mj4C_{j4} = (-1)^{j+4} M_{j4}Cj4=(−1)j+4Mj4,其中 Mj4M_{j4}Mj4 是去掉第 jjj 行第 4 列的 3×33 \times 33×3 子矩阵行列式。该子矩阵由列 1,2,31,2,31,2,3 的前三行(除第 jjj 行)和第 4 行组成。第 4 行元素为 [0,0,0][0,0,0][0,0,0],故子矩阵有一行全零,行列式为 0。因此 Cj4=0C_{j4} = 0Cj4=0,即:
adj(T)4j=Cj4=0,j=1,2,3. \operatorname{adj}(T){4j} = C{j4} = 0, \quad j=1,2,3. adj(T)4j=Cj4=0,j=1,2,3.
4.4 计算 C44C_{44}C44
C44=(−1)4+4M44=det(R)=1C_{44} = (-1)^{4+4} M_{44} = \det(R) = 1C44=(−1)4+4M44=det(R)=1,故 adj(T)44=1\operatorname{adj}(T)_{44} = 1adj(T)44=1。
5. 组合伴随矩阵
综上,伴随矩阵为:
adj(T)=[R⊤−R⊤p0⊤1]. \operatorname{adj}(T) = \begin{bmatrix} R^\top & -R^\top \mathbf{p} \\ \mathbf{0}^\top & 1 \end{bmatrix}. adj(T)=[R⊤0⊤−R⊤p1].
6. 代入逆矩阵公式
由于 det(T)=1\det(T) = 1det(T)=1,得:
T−1=1det(T)adj(T)=[R⊤−R⊤p0⊤1]. T^{-1} = \frac{1}{\det(T)} \operatorname{adj}(T) = \begin{bmatrix} R^\top & -R^\top \mathbf{p} \\ \mathbf{0}^\top & 1 \end{bmatrix}. T−1=det(T)1adj(T)=[R⊤0⊤−R⊤p1].
该矩阵即为 (3.33) 的形式,其中
R⊤=[nxnynzoxoyozaxayaz],−R⊤p=[−p⋅n−p⋅o−p⋅a]. R^\top = \begin{bmatrix} n_x & n_y & n_z \\ o_x & o_y & o_z \\ a_x & a_y & a_z \end{bmatrix}, \quad -R^\top \mathbf{p} = \begin{bmatrix} -\mathbf{p} \cdot \mathbf{n} \\ -\mathbf{p} \cdot \mathbf{o} \\ -\mathbf{p} \cdot \mathbf{a} \end{bmatrix}. R⊤= nxoxaxnyoyaynzozaz ,−R⊤p= −p⋅n−p⋅o−p⋅a .
证毕。