《Geometric Tools For Computer Graphics》读书笔记2

这里是2~4章的读书笔记,主要是回顾了线性代数知识,有些知识我已经接触很多遍了就没记。

线性代数和变换

矩阵和线性系统

线性代数中的变换(Transformation)可以通过如下三种方式理解:

  • 变换坐标系:这种情况下只是变换了坐标系而没有变换坐标系中的点
  • 变换点:变换了点本身的信息,但是坐标系没有变动
  • 从一个平面到另一个平面的变换:点和坐标系信息都变动

从不同角度理解会导致推导过程的不同,进而影响代码编写。

本书从向量几何学角度讨论变换,即直接关注点本身,并且用几何运算直接操作(而不是从一开始就考虑矩阵和坐标系),向量几何学和线性代数变换的关系有点类似于平面几何和解析几何的关系。

多元组

定义

本质上就是一个元素的有序序列,用圆括号表示: $$ a = (1, 2, 9) \ b = (\pi, 3.78, 8, 15) $$ 有两个元素的叫做有序对(ordered pair),三个元素的叫做三元组(ordered triple),四个元素叫做四元组。不管怎么说,通用说法是多元组(tuple)(没错就是你!std::tuple!)

矩阵,向量代数和变换

运算

$$ a = (a_1, a_2, \cdots, a_n) \ b = (b_1, b_2, \cdots, b_n) \ a \pm b = (a_1 \pm b_1, a_2 \pm b_2, \cdots, a_n \pm b_n)\ ka = (ka_1, ka_2, \cdots, ka_n) $$

当多元组内全是实数时,其实就构成了向量,那么对于多元组的乘法就有两种:

数量积/点积: $$ a \cdot b = a_1b_1 + a_2b_2 + \cdots a_nb_b $$ 向量积/叉积:$a \times b$(根据不同维度的向量有不同算法).

矩阵

本书中将矩阵视为一组多元组(但其实并没有什么卵用,运算还是那些运算,只是为了更好地导入矩阵概念)。

线性系统

线性方程

指方程的各项不是线性项就是常数: $$ a_1x_1 + a_2x_2 + \cdots + a_nx_n = c $$ 之所以被称为线性方程,是因为n元线性方程的解在n维空间中总是一条直线。

线性系统

**线性系统(linear system)其实就是线性方程组。**比如二元线性方程组: $$ \begin{cases} a_1x_1 + a_2x_2 = c_1 \ b_1x_1 + b_2x_2 = c_2 \end{cases} $$ 这两个线性方程其实代表着二维空间中的两个直线,那么两个直线有三种可能:

  1. 两直线相交,这时方程组有解
  2. 两直线平行,即$\frac{a_1}{b_1}=\frac{a_2}{b_2}\ne \frac{c_1}{c_2}$,这时方程组无解
  3. 两直线重合,即$\frac{a_1}{b_1}=\frac{a_2}{b_2}= \frac{c_1}{c_2}$,这时有无数个解

一般线性系统就是指线性系统的一般形式: $$ \begin{cases} a_{1,1}x_1 + a_{1,2}x_2 + \cdots + a_{1,n}x_n = c_1 \ a_{2,1}x_1 + a_{2,2}x_2 + \cdots + a_{2,n}x_n = c_2 \ & & \vdots & \ a_{m,1}x_1 + a_{m,2}x_2 + \cdots + a_{m,n}x_n= c_m \ \end{cases} $$ 这种形式可以写成矩阵: $$ AX=C $$ 那么这里$A$就是系数矩阵: $$ \begin{bmatrix} a_{1,1} & a_{1,2} & \cdots & a_{1,n}x_n \ a_{2,1}x_1 & a_{2,2}x_2 & \cdots & a_{2,n}x_n \ & & \vdots & \ a_{m,1}x_1 & a_{m,2}x_2 & \cdots & a_{m,n}x_n \ \end{bmatrix} $$ C是常数项矩阵(或者常数向量): $$ \begin{bmatrix} c_1 \ c_2 \ \vdots \ c_m \end{bmatrix} $$ 那么由线性系统组成的变换就叫做线性变换

行列式的计算方法

就是教科书上说的子行列式展开方法,只不过他有正式的名字,叫拉普拉斯展开(Laplacian expansion)

线性空间

数域(Field)

表示一个代数系统,其含有:

  • 封闭性:对其中的元素进行加减乘除(除0除外)后的结果仍属于该系统
  • 对加法和乘法拥有交换律和结合律
  • 存在加法单位元:$\exists 0 \in F\Rightarrow \exists a \in F \Rightarrow \forall a \in F, a + 0 = 0 + a = a$
  • 存在乘法单位元:$\exists 1 \in F \Rightarrow \forall a \in F, a1 = 1a = a$
  • 存在加法逆元:$\forall a \in F, \exists -a \in F \Rightarrow a + (-a) = (-a) + a = 0$
  • 存在乘法逆元:$\forall a \in F, \exists a^{-1} \in F \Rightarrow a * a^{-1} = a^{-1} * a = 1$

线性空间就是一个包含了向量,实数和两种向量运算(点乘和叉乘)的数域:

  • 封闭性:对于任意的向量和实数相乘,结果为向量
  • 任意的向量和标量的乘法,向量和向量的加法分别拥有交换律和结合律
  • 存在加法单位元$\vec{0}$使得$\vec{a} + \vec{0} = \vec{a}$
  • 存在乘法单位元1,使得$1 * \vec{a} = \vec{a}$
  • 存在加法逆元$-\vec{a}$,使得$-\vec{a} + \vec{a} = \vec{0}$
  • 存在乘法逆元$\frac{1}{k}$使得$k * \frac{1}{k} = 1$($k=0$时的逆元为0)

子空间

给定$\R$上的线性空间$\Upsilon$,设$S$为$\Upsilon$的子集,并设$S$和$\Upsilon$的运算相同。如果$S$也是$\R$上的线性空间,那么$S$就是$\Upsilon$的子空间。

注意线性空间的子空间不一定是线性空间。但一定是$\R$上的线性空间(根据定义)。

线性组合,线性无关和生成

updatedupdated2023-06-182023-06-18