Category:Higher Mathematics & Computer Graphics Application

正文

5 线性代数

或许图形程序最通用的工具是改动或改换点和向量的矩阵。在下一章中,咱们将看到如何将向量表明为具有单列的矩阵,以及如何经过与方阵相乘以不同的基来表明向量。咱们还将描绘如何运用这种乘法来完结向量的更改,例如缩放、旋转和平移。在本章中,咱们从几何的视点回顾了基本的线性代数,重点重视在二维和三维状况下运转良好的直觉和算法

熟悉线性代数的读者能够越过本章。可是,即便对这些读者来说,也可能有一些启发性的花絮,例如行列式的开展以及奇异值和特征值分化的评论。

5.1 行列式

咱们一般以为行列式是在线性方程的解决方案中发生的。

可是,就咱们的意图而言,咱们会以为行列式是增加向量的另一种方法。关于2D矢量A和B,行列式| ab |是由A和B构成的平行四边形区域(图5.1)。这是一个签名的区域,假如A和B右手是右手,则符号为正。

计算机图形学基础笔记(5.1)

这意味着| ab |= – | ba |。在2D中,咱们能够将“右撇子”解释为意味着咱们逆时针旋转第一个向量,以将最小视点封闭到第二个矢量。在3D中,必须一次运用三个向量采取决议因素。关于三个3D向量,A,B和C,决议符| ABC |是由三个矢量构成的平行填充(3D平行四边形;一个剪切的3D框)的签名体积(图5.2)。要核算2D决议因素,咱们首先需求建立其一些属性。咱们注意到,平行四边形的一侧缩放其面积的份额相同(图5.3):

计算机图形学基础笔记(5.1)

计算机图形学基础笔记(5.1)
计算机图形学基础笔记(5.1)

此外,咱们注意到“剪切”平行四边形不会改动其面积(图 5.4):

计算机图形学基础笔记(5.1)

最终,咱们看到行列式具有以下性质:

计算机图形学基础笔记(5.1)

由于如图 5.5 所示,咱们能够“滑动”两个平行四边形之间的边以构成一个平行四边形,而不会改动两个原始平行四边形中任何一个的面积。

现在让咱们假定 a 和 b 的笛卡尔表明:

计算机图形学基础笔记(5.1)

这个简化运用了 |vv| = 0 关于任何向量 v,由于平行四边形都将与 v 共线,因此没有面积。

在三个维度中,三个 3D 向量 a、b 和 c 的行列式表明为 |abc|。关于向量的笛卡尔表明,平行六面体和平行四边形有相似的规矩,咱们能够像二维一样进行相似的扩展:

计算机图形学基础笔记(5.1)

正如你所看到的,跟着维度的增加,以这种方法核算行列式变得越来越难看。咱们将在 5.3 节评论核算行列式的不易犯错的方法。

比如: 当将一个向量的表达式核算为其他两个向量的线性组合时,行列式自然会出现——例如,假如咱们期望将向量 c 表明为向量 a 和 b 的组合:

计算机图形学基础笔记(5.1)

计算机图形学基础笔记(5.1)

从图 5.6 能够看出

计算机图形学基础笔记(5.1)

由于这些平行四边形只是互相的剪切版本。求解 bc 收益率

计算机图形学基础笔记(5.1)

一个相似的论点发生

计算机图形学基础笔记(5.1)

这是克莱默规矩的二维版本,咱们将在第 5.3.2 节中从头评论。

5.2 矩阵

矩阵是遵从某些算术规矩的数字元素的数组。具有两个行和三列的矩阵的示例

计算机图形学基础笔记(5.1)

矩阵常常用于核算机图形,用于各种意图,包括表明空间改换。在咱们的评论中,咱们假定矩阵的元素都是实数。本章介绍了矩阵算术的力学和“正方形”矩阵的决议因素,即具有与列相同数量的行数的矩阵。

5.2.1 矩阵算术

矩阵乘以常数得到一个矩阵,其间每个元素都乘以该常数,例如,

计算机图形学基础笔记(5.1)

矩阵还逐一元素添加,例如,

计算机图形学基础笔记(5.1)

关于矩阵乘法,咱们将第一个矩阵的行与第二个矩阵的列“相乘”:

计算机图形学基础笔记(5.1)

所以得到的产品的元素 pij 是

计算机图形学基础笔记(5.1)

只有当左矩阵的列数与右矩阵的行数相同时,才可能取两个矩阵的乘积。例如,

计算机图形学基础笔记(5.1)

在大多数状况下,矩阵乘法是不可交流的:

计算机图形学基础笔记(5.1)

此外,假如 AB = AC,则不必定遵从 B = C。幸运的是,矩阵乘法是关联和分配的:

计算机图形学基础笔记(5.1)

5.2.2 矩阵运算

咱们想要一个实数倒数的矩阵模拟。咱们知道实数 x 的倒数是 1/x,x 和它的倒数的乘积是 1。

咱们需求一个能够以为是“矩阵”的矩阵 I。这仅适用于方阵,称为单位矩阵;它由对角线上的一个和其他地方的零组成。例如,四乘四单位矩阵是

计算机图形学基础笔记(5.1)

矩阵A的逆矩阵A -1是保证AA -1 = I的矩阵。例如,

计算机图形学基础笔记(5.1)

请注意,A -1的倒数为A。因此AA -1 = A -1 A =I。两个矩阵的产品的倒数是倒置的乘积,但跟着次序逆转:

计算机图形学基础笔记(5.1)

咱们将回来本章稍后的核算逆问题。

矩阵A处的转置AT具有相同的数字,但行用列切换。假如咱们标记为a’ij的条目AT,则

计算机图形学基础笔记(5.1)

例如:

计算机图形学基础笔记(5.1)

两个矩阵乘积的转置遵从相似于公式 (5.4) 的规矩:

计算机图形学基础笔记(5.1)

方阵的行列式只是矩阵列的行列式,被视为一组向量。行列式与刚刚评论的矩阵运算有几个很好的关系,咱们在这里列出以供参考:

计算机图形学基础笔记(5.1)

5.2.3 矩阵方法的向量运算

在图形中,咱们运用方形矩阵来转化表明为矩阵的向量。 例如,假如您有一个2D矢量a =(xa,ya),并期望将其旋转90度,以构成向量a =(-ya,xa),则能够运用22的乘积矩阵和21矩阵,称为列矢量。矩阵方法的操作是

计算机图形学基础笔记(5.1)

咱们能够经过运用该矩阵的转置并在左边乘以(“预乘”)与行向量来获得相同的成果:

计算机图形学基础笔记(5.1)

如今,运用列向量的后乘法是适当标准的,但在许多较旧的书籍和系统中,您会遇到行向量和预乘法。仅有的区别是必须将改换矩阵替换为其转置。

咱们也能够运用矩阵方法对向量的操作进行编码。假如咱们把点积的成果当作一个 11 的矩阵,能够写成

计算机图形学基础笔记(5.1)

例如,假如咱们采用两个 3D 向量,咱们得到

计算机图形学基础笔记(5.1)

相关向量积是两个向量之间的外积,能够表明为左边为列向量,右边为行向量的矩阵相乘:abT。成果是一个矩阵,由 a 的条目与 b 的条意图一切对的乘积组成。关于 3D 向量,咱们有

计算机图形学基础笔记(5.1)
从向量运算的视点考虑矩阵乘法一般很有用。

为了阐明运用三维状况,咱们能够将 3 3 矩阵视为三个 3D 向量的调集,有两种方法:它由三个列向量并排组成,或许由三行向量堆叠起来。例如,矩阵向量乘法 y = Ax 的成果能够解释为一个向量,其条目是 x 与 A 的行的点积。命名这些行向量 ri,咱们有

计算机图形学基础笔记(5.1)

或许,咱们能够将相同的乘积视为 A 的三列 ci 的总和,由 x 的条目加权:

计算机图形学基础笔记(5.1)

运用相同的主意,能够将矩阵矩阵乘积AB理解为包含一切a行的成对点产品的数组,其间一切B列(cf.(5.2));作为矩阵A的产品的调集,其一切B的圆柱向量从左到右摆放;作为与矩阵B的一切行矢量的产品调集,堆叠在上到底部;或作为A与B的一切行的一切列的成对外部产品的总和。

如有错误,费事联系我一起指出,加以修正~