线性代数之深入理解旋转矩阵

1. 旋转矩阵的概述

旋转矩阵是一个用于描述空间中旋转变换的矩阵。在二维平面中,旋转矩阵用于将一个点围绕原点旋转一个特定角度。旋转矩阵的主要特点是,它是一个正交矩阵,且其行列式为 1,这意味着旋转是一个不改变点距离原点的等距变换(即不发生缩放或扭曲)。

旋转矩阵的形式(二维平面)

对于二维平面上的旋转,旋转矩阵 R(θ)R(\theta)R(θ) 的形式如下:

R(θ)=cos⁡(θ)−sin⁡(θ)sin⁡(θ)cos⁡(θ) R(\theta) = \begin{bmatrix} \cos(\theta) & -\sin(\theta) \\ \sin(\theta) & \cos(\theta) \end{bmatrix} R(θ)=cos(θ)sin(θ)−sin(θ)cos(θ)

其中:

  • θ\thetaθ 是旋转的角度。
  • cos⁡(θ)\cos(\theta)cos(θ) 和 sin⁡(θ)\sin(\theta)sin(θ) 分别是旋转角度的余弦和正弦值。

这个矩阵描述了一个点绕原点逆时针旋转 θ\thetaθ 角度后的新坐标。

旋转的效果

当旋转矩阵作用于一个点 v=xy\mathbf{v} = \begin{bmatrix} x \\ y \end{bmatrix}v=xy 时,它会将点 v\mathbf{v}v 映射到旋转后的新点 v′=x′y′\mathbf{v}' = \begin{bmatrix} x' \\ y' \end{bmatrix}v′=x′y′,计算公式为:

v′=R(θ)v \mathbf{v}' = R(\theta) \mathbf{v} v′=R(θ)v

其中:

x′=xcos⁡(θ)−ysin⁡(θ) x' = x \cos(\theta) - y \sin(\theta) x′=xcos(θ)−ysin(θ)

y′=xsin⁡(θ)+ycos⁡(θ) y' = x \sin(\theta) + y \cos(\theta) y′=xsin(θ)+ycos(θ)

2. 旋转矩阵的计算方法

旋转矩阵的计算其实基于三角函数的加法公式。我们可以通过几何理解来推导它。

2.1 几何推导

设一个点 v=xy\mathbf{v} = \begin{bmatrix} x \\ y \end{bmatrix}v=xy 在二维平面上,我们希望将其绕原点旋转角度 θ\thetaθ 后得到新的坐标。

  1. 原点和极坐标 :在旋转前,点 v\mathbf{v}v 的坐标可以通过极坐标表示:

    • 半径 r=x2+y2r = \sqrt{x^2 + y^2}r=x2+y2
    • 角度 α=arctan⁡(yx)\alpha = \arctan\left(\frac{y}{x}\right)α=arctan(xy)
  2. 旋转后的坐标 :旋转 θ\thetaθ 后,新的坐标变成:

    • x′=rcos⁡(α+θ)x' = r \cos(\alpha + \theta)x′=rcos(α+θ)
    • y′=rsin⁡(α+θ)y' = r \sin(\alpha + \theta)y′=rsin(α+θ)
  3. 三角加法公式:利用三角函数的加法公式:

    cos⁡(α+θ)=cos⁡(α)cos⁡(θ)−sin⁡(α)sin⁡(θ) \cos(\alpha + \theta) = \cos(\alpha) \cos(\theta) - \sin(\alpha) \sin(\theta) cos(α+θ)=cos(α)cos(θ)−sin(α)sin(θ)

    sin⁡(α+θ)=sin⁡(α)cos⁡(θ)+cos⁡(α)sin⁡(θ) \sin(\alpha + \theta) = \sin(\alpha) \cos(\theta) + \cos(\alpha) \sin(\theta) sin(α+θ)=sin(α)cos(θ)+cos(α)sin(θ)

    通过这个公式,我们可以展开 x′x'x′ 和 y′y'y′,最终得到:

    x′=xcos⁡(θ)−ysin⁡(θ) x' = x \cos(\theta) - y \sin(\theta) x′=xcos(θ)−ysin(θ)

    y′=xsin⁡(θ)+ycos⁡(θ) y' = x \sin(\theta) + y \cos(\theta) y′=xsin(θ)+ycos(θ)

    这就给出了旋转矩阵的计算公式。

2.2 矩阵形式

这个变换过程可以通过矩阵乘法简洁地表示出来。原始点的坐标 v\mathbf{v}v 和旋转矩阵 R(θ)R(\theta)R(θ) 相乘,得到旋转后的坐标 v′\mathbf{v}'v′:

R(θ)xy=xcos⁡(θ)−ysin⁡(θ)xsin⁡(θ)+ycos⁡(θ) R(\theta) \begin{bmatrix} x \\ y \end{bmatrix} = \begin{bmatrix} x \cos(\theta) - y \sin(\theta) \\ x \sin(\theta) + y \cos(\theta) \end{bmatrix} R(θ)xy=xcos(θ)−ysin(θ)xsin(θ)+ycos(θ)

这就是旋转矩阵的实际计算过程,旋转矩阵通过基于三角函数的公式,构造了一个能描述旋转变换的矩阵。

3. 从基向量的角度理解旋转矩阵

3.1 基向量的定义

在二维坐标系中,通常我们选择两个基向量:

  • e1=10\mathbf{e}_1 = \begin{bmatrix} 1 \\ 0 \end{bmatrix}e1=10,表示x轴方向的单位向量。
  • e2=01\mathbf{e}_2 = \begin{bmatrix} 0 \\ 1 \end{bmatrix}e2=01,表示y轴方向的单位向量。

这两个向量构成了我们坐标系的基础,任何二维点 v=xy\mathbf{v} = \begin{bmatrix} x \\ y \end{bmatrix}v=xy 都可以表示为基向量的线性组合:

v=xe1+ye2 \mathbf{v} = x \mathbf{e}_1 + y \mathbf{e}_2 v=xe1+ye2

3.2 旋转对基向量的作用

旋转矩阵通过旋转基向量 e1\mathbf{e}_1e1 和 e2\mathbf{e}_2e2 来实现整体的旋转变换。

  • 旋转矩阵作用于 e1\mathbf{e}_1e1 后,得到新的基向量:

    R(θ)e1=cos⁡(θ)sin⁡(θ) R(\theta) \mathbf{e}_1 = \begin{bmatrix} \cos(\theta) \\ \sin(\theta) \end{bmatrix} R(θ)e1=cos(θ)sin(θ)

    这说明,旋转后的 e1′\mathbf{e}_1'e1′ 向量是沿着角度 θ\thetaθ 旋转的方向。

  • 同样,旋转矩阵作用于 e2\mathbf{e}_2e2 后,得到新的基向量:

    R(θ)e2=−sin⁡(θ)cos⁡(θ) R(\theta) \mathbf{e}_2 = \begin{bmatrix} -\sin(\theta) \\ \cos(\theta) \end{bmatrix} R(θ)e2=−sin(θ)cos(θ)

    这说明,旋转后的 e2′\mathbf{e}_2'e2′ 向量也沿着旋转角度 θ\thetaθ 旋转的方向。

3.3 基向量与坐标点的关系

旋转矩阵通过改变基向量的方向来影响整个坐标系的方向。通过基向量的旋转,我们可以看到旋转矩阵如何改变整个空间中的坐标点。

假设我们有一个点 v=xy\mathbf{v} = \begin{bmatrix} x \\ y \end{bmatrix}v=xy,可以将其表示为:

v=xe1+ye2 \mathbf{v} = x \mathbf{e}_1 + y \mathbf{e}_2 v=xe1+ye2

旋转矩阵作用于点 v\mathbf{v}v 时,实际上是将原始坐标系的基向量 e1\mathbf{e}_1e1 和 e2\mathbf{e}_2e2 旋转了 θ\thetaθ 角度,进而改变了 v\mathbf{v}v 的坐标。通过旋转矩阵的作用,原基向量 e1\mathbf{e}_1e1 和 e2\mathbf{e}_2e2 被映射到旋转后的新位置,进而影响整个空间中所有点的坐标变换。

总结

  1. 旋转矩阵概述:旋转矩阵用于描述平面上绕原点旋转的变换。它的形式是:

    R(θ)=cos⁡(θ)−sin⁡(θ)sin⁡(θ)cos⁡(θ) R(\theta) = \begin{bmatrix} \cos(\theta) & -\sin(\theta) \\ \sin(\theta) & \cos(\theta) \end{bmatrix} R(θ)=cos(θ)sin(θ)−sin(θ)cos(θ)

  2. 旋转矩阵的计算方法:通过三角函数的加法公式,我们可以得到旋转矩阵的具体计算方法,并利用矩阵乘法将原始点坐标旋转到新的坐标。

  3. 基向量的角度理解 :旋转矩阵通过旋转基向量 e1\mathbf{e}_1e1 和 e2\mathbf{e}_2e2 来影响整个坐标系,从而改变任意点的坐标。

相关推荐
硅谷秋水8 小时前
CommitFlow:面向长时程机器人操作 VLA 执行的语义承诺验证与局部修正
机器学习·计算机视觉·语言模型·机器人
小王20410 小时前
Day 41:模型注意力机制 — SE / CBAM / ECA
python·深度学习·机器学习
别动我齐刘海10 小时前
Linux 系统调试学习2
linux·运维·c++·人工智能·学习·机器学习·机器人
地理探险家11 小时前
从零实现图片自动分类:数据准备、模型训练与单图预测
人工智能·深度学习·机器学习·分类·数据挖掘·数据集
frankzch12 小时前
微软 137B 编码模型搬到 PC:端侧推理与 Agent 权限防线
人工智能·深度学习·microsoft·机器学习·语言模型
TomEval13 小时前
【测AI】第11篇:深度学习基础 —— 神经网络是怎么工作的
人工智能·python·深度学习·神经网络·机器学习·aigc
MoRanzhi120313 小时前
第 8 篇 · 机器学习建模与实验评估:建模流程与对照实验
python·机器学习·scikit-learn·模型评估·交叉验证·shap·消融实验
智行合一科技15 小时前
CTR报告:AI营销成广告增长引擎,GEO与AIGC矩阵营销成破局关键
人工智能·矩阵·aigc
forest_0915 小时前
Agent 系列07|记忆与状态设计
人工智能·机器学习·架构·prompt·agi
larance17 小时前
LDA(线性判别分析)
人工智能·机器学习·分类