【机器人学中的状态估计】2.5.1习题:假设u,v是两个相同维度的列向量,请你证明u^Tv=tr(vu^T)
假设uuu,vvv是两个相同维度的列向量,请你证明uTv=tr(vuT)u^Tv=tr(vu^T)uTv=tr(vuT)
设 uuu 和vvv是两个nnn维列向量,即:
u=[u1u2⋮un],v=[v1v2⋮vn].
u = \begin{bmatrix} u_1 \\ u_2 \\ \vdots \\ u_n \end{bmatrix}, \quad
v = \begin{bmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{bmatrix}.
u=u1u2⋮un,v=v1v2⋮vn.
首先,计算 uTvu^TvuTv:
uTv=∑i=1nuivi.
u^T v = \sum_{i=1}^n u_i v_i.
uTv=i=1∑nuivi.
其次,考虑外积vuTv u^TvuT。这是一个n×nn \times nn×n矩阵:
vuT=[v1u1v1u2⋯v1unv2u1v2u2⋯v2un⋮⋮⋱⋮vnu1vnu2⋯vnun].
v u^T =
\begin{bmatrix}
v_1 u_1 & v_1 u_2 & \cdots & v_1 u_n \\
v_2 u_1 & v_2 u_2 & \cdots & v_2 u_n \\
\vdots & \vdots & \ddots & \vdots \\
v_n u_1 & v_n u_2 & \cdots & v_n u_n
\end{bmatrix}.
vuT=v1u1v2u1⋮vnu1v1u2v2u2⋮vnu2⋯⋯⋱⋯v1unv2un⋮vnun.
该矩阵的迹为其对角线元素之和:
tr(vuT)=∑i=1nviui=∑i=1nuivi.
\operatorname{tr}(v u^T) = \sum_{i=1}^n v_i u_i = \sum_{i=1}^n u_i v_i.
tr(vuT)=i=1∑nviui=i=1∑nuivi.
比较两式,可得:
uTv=tr(vuT).
u^T v = \operatorname{tr}(v u^T).
uTv=tr(vuT).