矩阵为 3 D 数学定义一种坐标空间变换的计算方式。
矩阵的数学定义
向量是标量数组,矩阵是数组向量。 矩阵只是一种紧凑的记录方式
矩阵维数和表示法 Matrix
具有 行和 列的矩阵是 (读作“ by “) 矩阵。
符号 表示 中位于 行和 列的元素。矩阵使用基于 1 的索引,因此第一行和第一列编号为 1。
方阵 Square Matrices
方阵的对角元素是行索引和列索引相同的元素。例如, 3×3矩阵 的对角线元素是 、 和 。其他元素是非对角元素。
对角矩阵
如果矩阵中的所有非对角元素都为零,则该矩阵是对角矩阵。
单位矩阵
一个特殊的对角矩阵是单位矩阵。维度 n 的单位矩阵(表示为 )是 矩阵,对角线上为 1,其他位置为 0。
通常,上下文会明确特定情况下使用的单位矩阵的维数。在这些情况下,我们省略下标并将单位矩阵简单地称为 。
向量矩阵
矩阵可以具有任意正数的行和列,包括一。我们已经遇到过一行或一列的矩阵:向量!维度 的向量可以被视为 矩阵,或 矩阵。前者矩阵称为行向量,后者矩阵称为列向量。行向量水平书写,列向量垂直书写:
矩阵转置
给定一个 矩阵 , 的转置(表示为 )是 矩阵,其中列由 的行组成。换句话说, 。这会沿对角线“翻转”矩阵。 对于向量,转置将行向量转换为列向量,反之亦然:
任何矩阵的转置矩阵再次转置就得到了原矩阵。
任何对角矩阵 都等于其转置: 。这包括单位矩阵 。
斜对称矩阵
如果 成立,则矩阵是斜对称的,这也意味着斜对称矩阵的对角线元素必须为 0。
矩阵与标量相乘
矩阵 可以与标量 k 相乘,得到与 维度相同的矩阵。
两个矩阵相乘
矩阵 可以乘以 矩阵 。结果表示为 ,是一个 矩阵。例如,假设 是 4×2 矩阵, 是 2×5 矩阵。那么 是一个 4×5 矩阵:
//
令矩阵 ,那么每个元素 等于 的行 与 。
//
任意矩阵乘以单位矩阵或者被单位矩阵相乘都会得到原矩阵。
矩阵乘法不可交换。一般来说:
矩阵乘法结合率:
矩阵乘法还与标量或向量的乘法相关
转置两个矩阵的乘积与按相反顺序取它们转置的乘积相同:
向量与矩阵相乘
向量可以被视为具有一行或一列的矩阵,使用行向量还是列向量变得非常重要。 图中内容是一系列数学公式,具体包括:
向量乘矩阵乘法分布于向量加法
矩阵的几何解释
当标准基向量乘以任意矩阵:
因此任何向量都可以写成标准基的线性组合,如下所示
将此表达式乘以右侧矩阵
- 方阵的行可以解释为坐标空间的基向量。
- 要将向量从原始坐标空间转换到新坐标空间,我们将向量乘以矩阵。
- 从原始坐标空间到这些基向量定义的坐标空间的变换是线性变换。线性变换保留直线,平行线保持平行。然而,角度、长度、面积和体积在变换后可能会改变。
- 将零向量乘以任何方阵都会得到零向量。因此,方阵表示的线性变换与原始坐标空间同源——变换不包含平移。
- 我们可以通过可视化变换后坐标空间的基向量来可视化矩阵。这些基向量在 2 D 中形成“L”,在 3 D 中形成三脚架。
尽管传统的线性代数和方程组在基本视频游戏编程中并没有发挥重要作用,但它们对于许多高级领域至关重要。考虑一下当今引起轰动的一些技术:流体、布料和头发模拟(和渲染);更强大的角色程序动画;实时全局照明;机器视觉;手势识别;还有很多。这些看似不同的技术的共同点是它们都涉及困难的线性代数问题。
Gilbert Strang 教授的系列讲座是学习线性代数和科学计算大局的绝佳资源,可以从 ocw.mit.edu 的麻省理工学院开放课程免费下载。他提供基础本科线性代数课程以及计算科学与工程研究生课程。他为他的课程编写的配套教科书是针对工程师(而不是数学爱好者)的有趣书籍,值得推荐,但请注意,他的写作风格是一种速记,没有讲座。