Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数

本文介绍了3D游戏编程中矩阵代数的基础知识,包括矩阵定义、乘法、转置、单位矩阵、行列式、逆矩阵以及在DirectX Math库中的应用。详细阐述了矩阵乘法的非交换性和结合律,单位矩阵的重要性,以及如何通过行列式判断矩阵的可逆性。此外,还讨论了在DirectX Math中操作矩阵的类型和函数,为3D图形学的学习提供理论支持。
摘要由CSDN通过智能技术生成

学习目标:

  1. 理解矩阵和与它相关的运算;
  2. 理解矩阵的乘法如何被看成是线性组合;
  3. 理解单位矩阵、转置矩阵、矩阵的行列式和逆矩阵;
  4. 熟悉DirectX Math库中矩阵相关的类和函数;


1 矩阵的定义

一个m x n的矩阵M是一个有实数组成的m行n列的矩阵。

  1. 两个具有相同行数和列数的矩阵,每个对应的元素都相等的情况下,两个矩阵相等;
  2. 两个矩阵具有相同的行和列时,才能相加;
  3. 矩阵可以和任意标量相乘;
  4. 矩阵的减法可以由矩阵的加法和矩阵与标量的乘法来定义。
    因为矩阵的加法和标量乘法是按元素的,所以它们的一些属性可以继承自实数:
    这里写图片描述


2 矩阵的乘法


2.1 矩阵乘法的定义

如果一个m x n的矩阵A和一个n x p的矩阵B相乘,结果是一个m x p的矩阵C,其第ij个元素的值是A矩阵中第i列向量与B矩阵第j行向量的点积:
C i j = A i , ∗ ⋅ B ∗ , j C_{ij} = A_{i,*} \cdot B_{*,j} Cij=Ai,B,j
这里写图片描述
所以矩阵相乘需要A的列数和B的行数相等,否则点积运算则无法进行。比如上面例子中BA无法进行,所以也验证了AB != BA,矩阵运算不支持交换律


2.2 向量与矩阵的乘法

考虑下面矩阵的乘法:
这里写图片描述
这里写图片描述
所以
这里写图片描述
上面等式是一个线性组合的例子,可以继续扩展到1 x n乘以 n x n的情况:
这里写图片描述


2.3 结合律

矩阵的乘法具有一些不错的代数特性,比如乘法分配率:A(B + C) = AB + AC)和(A + B)C = AC + BC,
后续我们将会经常使用乘法结合律,来选择矩阵相乘的顺序:
( A B ) C = A ( B C ) (AB)C = A(BC) (AB)C=A(BC)



3 转置矩阵

转置矩阵是由交换矩阵的行和列得到的,所以m x n的转置矩阵是n x m,我们使用 M T M^T MT来表示矩阵M的转置矩阵。
转置矩阵由一些有用的特性:
这里写图片描述



4 单位矩阵

单位矩阵是一类特殊的矩阵,其对角线上的元素值为1,其它元素值为0;
单位矩阵有一个特性:MI = IM = M



5 矩阵的行列式

矩阵的行列式是一个特殊的方法,输入一个方形矩阵,输出一个实数;矩阵的行列式用 det A 来表示。
行列式拥有描述盒子容积和在进行转变后的容积变化的几何解释,并且行列式被用来使用克莱姆法则解决线性方程式系统;
我们学习行列式的目的是用来证明一个矩阵是否可逆,一个方形矩阵A当且仅当 det A != 0时可逆。


5.1 Matrix Minors(子矩阵?)

给出一个m x n的矩阵A,其子矩阵 A ˉ i j \bar A_{ij} Aˉi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值