3D数学基础:图形与游戏开发(第7章矩阵)笔记

    • 矩阵-数学定义
      • 矩阵的维度和记法
      • 方阵
      • 向量作为矩阵使用
      • 转置
        • 行向量和列向量之间转置
        • 转置引理
      • 标量和矩阵的乘法
      • 矩阵乘法
        • 注意事项
      • 向量与矩阵的乘法
        • 注意事项
      • 行向量和列向量
    • 矩阵几何解释
      • 矩阵是怎样变换向量的
      • 矩阵的形式
      • 总结

矩阵-数学定义

在线性代数中,矩阵就是以行和列的形式组织的矩形数字块。向量是标量的数组,矩阵是向量的数组。

矩阵的维度和记法

M=m11m21m31m12m22m32m13m23m33

mij 表示 M 的第 i 行第 j 列元素。

方阵

行数和列数相同的矩阵称作方阵。
如果所有非对角线元素都为0,那么称这种矩阵为对角矩阵
单位矩阵是一种特殊的对角矩阵,对角线元素全为1。它是矩阵的乘法单位元,在某种意义上单位矩阵对矩阵的作用就如1对于标量的作用。

向量作为矩阵使用

1×n 矩阵称作行向量, n×1 矩阵称作列向量。

转置

考虑一个 r×c 矩阵 M M 的转置记为 MT ,是一个 c×r 矩阵,它的列由 M 的行组成,即 MTij=Mji

行向量和列向量之间转置:

[xyz]T=xyz

转置引理

  • 对于任意矩阵 M (MT)T=M
  • 对于任意对角矩阵 D , 都有 DT=D

标量和矩阵的乘法

矩阵 M 和标量 k 相乘,不需要写乘号,即用 k 乘以 M 中的每个元素。
kM=km11m21m31m12m22m32m13m23m33=km11km21km31km12km22km32km13km23km33

矩阵乘法

一个 r×n 矩阵 A 能够乘以一个 n×c 矩阵 B ,结果是一个 r×c 矩阵,记作 AB
矩阵乘法计算如下:记 r×n 矩阵 A n×c 矩阵B的积 r×c 矩阵 AB C C 的任意元素 Cij 等于 A 的第 i 行向量与 B 的第 j 列向量的点乘结果,即

cij=nk=1aikbkj

注意事项:

  • 任意矩阵 M 乘以方阵 S ,不管从哪边乘,都将得到与原矩阵大小相同的矩阵;
  • 矩阵乘法不满足交换律;
  • 矩阵乘法满足结合律;
  • 矩阵乘法也满足与标量或向量的结合律;
  • 矩阵乘积的转置相当于先转置矩阵然后以相反的顺序相乘:
    ABT=BTAT

    这一结论可以扩展到多个矩阵的情形:
    M1M2MnT=MTnMT2MT1

向量与矩阵的乘法

行向量左乘矩阵时,结果是行向量,列向量右乘矩阵时,结果是列向量。

注意事项

  • 结果向量中的每个元素都是原向量与矩阵中单独行或列的点积。
  • 矩阵中的每个元素决定了输入向量中特定元素在输出向量中占的比重。
  • 矩阵–向量乘法满足对向量加法的分配律, (v+w)M=vM+wM

行向量和列向量

  • 在文字中使用行向量的形式更好一些。
  • 当讨论怎样用矩阵乘法实现坐标转换时,向量左乘矩阵的形式更加直观方便。
  • DirectX使用的是行向量,OpenGL使用列向量。

矩阵—几何解释

一般来说,方阵能描述任意线性变换。从非技术意义上说,线性变换可能“拉伸”坐标系,但不会“弯曲”或“卷折”坐标系。

矩阵是怎样变换向量的

  • 将向量表示为基向量的线性组和 v⃗ =xp⃗ +yq⃗ +zr⃗ 
  • 将矩阵解释为基向量集合
    M=p⃗ q⃗ r⃗ =pxqxrxpyqyrypzqzrz
  • [xyz]pxqxrxpyqyrypzqzrz=[xpx+yqx+zrxxpy+yqy+zryxpz+yqz+zrz]=xp⃗ +yq⃗ +zr⃗ 
  • 如果把矩阵的行解释为坐标系的基向量,那么乘以该矩阵就相当于执行了一次坐标变换,若有 a⃗ M=b⃗  ,我们就可以说, M a⃗  转换到 b⃗  .

矩阵的形式

矩阵的每一行都能解释为转换后的基向量。

总结

  • 方针的行能被解释为坐标系的基向量。
  • 为了将向量从原坐标系变换到新坐标系,用它乘以一个矩阵。
  • 从原坐标系到这些基向量定义的新坐标系的变换是一种线性变换。线性变换保持直线和平行线,但角度、长度、面积或体积可能会被改变。
  • 零向量乘以任何矩阵仍然得到零向量。
  • 可以通过想象变换后的坐标系的基向量来想象矩阵。

你可能感兴趣的:(数学,读书笔记)