用旋转矩阵理解三角函数两角和公式


三角函数的两角和公式可以直接背下来,也可以把它看成一个更简单的问题:一个向量先转过 α\alpha,再转过 β\beta,会到哪里?

把旋转写成矩阵,公式就自然出现了。

先看两个基向量

在固定的二维直角坐标系中,把向量逆时针旋转 β\beta。原来的两个单位基向量分别变成:

(10)⟼(cos⁡βsin⁡β),(01)⟼(−sin⁡βcos⁡β).\begin{pmatrix}1\\0\end{pmatrix} \longmapsto \begin{pmatrix}\cos\beta\\\sin\beta\end{pmatrix}, \qquad \begin{pmatrix}0\\1\end{pmatrix} \longmapsto \begin{pmatrix}-\sin\beta\\\cos\beta\end{pmatrix}.

线性变换矩阵的两列,就是两个基向量变换后的坐标。因此,旋转矩阵是:

R(β)=(cos⁡β−sin⁡βsin⁡βcos⁡β).R(\beta)= \begin{pmatrix} \cos\beta & -\sin\beta\\ \sin\beta & \cos\beta \end{pmatrix}.

这样就不用单独记忆矩阵里哪个位置有负号。只要想清楚两个基向量转到了哪里,就能把矩阵写出来。

这里讨论的是坐标系不动、向量旋转。若向量不动而旋转坐标轴,坐标变换要使用逆矩阵,不能把这两件事混为一谈。

把单位向量再转一次

与 xx 轴正方向夹角为 α\alpha 的单位向量是:

u(α)=(cos⁡αsin⁡α).u(\alpha)= \begin{pmatrix}\cos\alpha\\\sin\alpha\end{pmatrix}.

再逆时针转过 β\beta,它的角度变成 α+β\alpha+\beta,所以:

(cos⁡(α+β)sin⁡(α+β))=(cos⁡β−sin⁡βsin⁡βcos⁡β)(cos⁡αsin⁡α).\begin{pmatrix} \cos(\alpha+\beta)\\ \sin(\alpha+\beta) \end{pmatrix} = \begin{pmatrix} \cos\beta & -\sin\beta\\ \sin\beta & \cos\beta \end{pmatrix} \begin{pmatrix}\cos\alpha\\\sin\alpha\end{pmatrix}.

展开矩阵乘法,比较两个坐标:

cos⁡(α+β)=cos⁡αcos⁡β−sin⁡αsin⁡β,sin⁡(α+β)=sin⁡αcos⁡β+cos⁡αsin⁡β.\begin{aligned} \cos(\alpha+\beta) &=\cos\alpha\cos\beta-\sin\alpha\sin\beta,\\ \sin(\alpha+\beta) &=\sin\alpha\cos\beta+\cos\alpha\sin\beta. \end{aligned}

两角和公式,就是连续旋转在坐标上的表达。换成矩阵语言,同一件事也可以写成:

R(β)R(α)=R(α+β).R(\beta)R(\alpha)=R(\alpha+\beta).

这个结论针对同一平面内的旋转,不能直接推广成任意三维旋转都可以交换顺序。

用欧拉公式再看一次

欧拉公式把单位圆上的点写成复数:

eiθ=cos⁡θ+isin⁡θ.e^{i\theta}=\cos\theta+i\sin\theta.

因为

ei(α+β)=eiαeiβ,e^{i(\alpha+\beta)}=e^{i\alpha}e^{i\beta},

所以

cos⁡(α+β)+isin⁡(α+β)=(cos⁡α+isin⁡α)(cos⁡β+isin⁡β)=(cos⁡αcos⁡β−sin⁡αsin⁡β)+i(sin⁡αcos⁡β+cos⁡αsin⁡β).\begin{aligned} \cos(\alpha+\beta)+i\sin(\alpha+\beta) &=(\cos\alpha+i\sin\alpha)(\cos\beta+i\sin\beta)\\ &=(\cos\alpha\cos\beta-\sin\alpha\sin\beta)\\ &\quad+i(\sin\alpha\cos\beta+\cos\alpha\sin\beta). \end{aligned}

比较实部与虚部,就再次得到了两角和公式。

矩阵作用在二维实向量上,复数乘法作用在复平面上。在这里,它们描述的是同一个旋转过程。理解了这个过程,公式就不再是一组需要分别记住的符号。

延伸阅读

本次整理补充的相关链接:


整理自我的《三角函数两角和公式的线性代数理解》笔记,沿用源文件最后编辑日期:2023 年 9 月 16 日。