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

142 阅读8分钟

Category:Higher Mathematics & Computer Graphics Application

正文

5 线性代数

5.4 特征值和矩阵对角化

方阵具有与其相关的特征值和特征向量。特征向量是那些在乘以矩阵时方向不变的非零向量。例如,假设对于矩阵 A 和向量 a,我们有

image.png

这意味着我们拉伸或压缩了 a,但它的方向没有改变。 比例因子 λ 称为与特征向量 a 相关的特征值。了解矩阵的特征值和特征向量有助于各种实际应用。我们将描述它们以深入了解几何变换矩阵,并作为下一节中描述的奇异值和向量的一步。

如果我们假设一个矩阵至少有一个特征向量,那么我们可以做一个标准的操作来找到它。首先,我们将两边写成方阵与向量 a 的乘积:

image.png

其中 I 是一个单位矩阵。这可以重写

image.png

因为矩阵乘法是分布的,我们可以对矩阵进行分组:

image.png

只有当矩阵 (A − λI) 为奇异矩阵时,该等式才成立,因此其行列式为零。该矩阵中的元素是 A 中的数字,但对角线除外。例如,对于 2 × 2 矩阵,特征值服从

image.png

因为这是一个二次方程,所以我们知道 λ 恰好有两个解。这些解决方案可能是也可能不是独特的或真实的。对 n × n 矩阵进行类似操作将产生 λ 的 n 次多项式。因为通常不可能找到大于四次的多项式方程的精确显式解,所以我们只能通过解析方法计算 4 × 4 或更小的矩阵的特征值。对于较大的矩阵,数值方法是唯一的选择。

特征值和特征向量特别简单的一个重要特例是对称矩阵(其中 A = AT)。实对称矩阵的特征值总是实数,如果它们也是不同的,它们的特征向量是相互正交的。这样的矩阵可以变成对角线形式:

image.png

其中Q是正交矩阵,D是对角矩阵。 Q 的列是 A 的特征向量,D 的对角线元素是 A 的特征值。将 A 置于这种形式也称为特征值分解,因为它将 A 分解为更简单矩阵的乘积,从而揭示其特征向量和特征值。

回想一下正交矩阵具有正统的行和正顺序柱。

例子: 给定矩阵:

image.png

A 的特征值是解

image.png

我们近似表示符号紧凑性的确切值:

image.png

现在我们可以找到相关的特征向量。第一个是齐次方程的非平凡(非 x = y = 0)解,

image.png

这大约是(x,y)=(0.8507,0.5257)。请注意,与该2D矢量平行的无限多种解决方案,我们只是选择了单位长度之一。同样,与λ2相关的特征向量为(x,y)=( - 0.5257,0.8507)。这意味着A IS的对角线形式(由于我们的数字近似,在某种精度之内):

image.png

我们将在下一章重新讨论这个矩阵的几何作为变换。

5.4.1 奇异值分解

我们在上一节中看到,任何对称矩阵都可以对角化,或者分解为正交矩阵和对角矩阵的方便乘积。然而,我们在图形中遇到的大多数矩阵都不是对称的,并且非对称矩阵的特征值分解几乎没有那么方便或有启发性,而且通常涉及复值特征值和特征向量,即使对于实值输入也是如此。

对称特征值分解对非对称(甚至是非平方)矩阵的另一个概括。它是奇异值分解(SVD)。对称矩阵的特征值分解与非对称矩阵的SVD之间的主要区别在于,左侧和右侧的正交矩阵在SVD中不需要相同:

image.png

我们建议按以下顺序学习:对称特征值/向量,奇异值/向量,然后是非对称特征值,这要复杂得多

这里的u和v是两个,可能不同的正交矩阵,其列被称为a的左和右单数矢量,而s是一个对角矩阵,其条目被称为A。所有非负特征值,SVD和特征值分解都是相同的。

奇异值和特征值之间还有另一种关系来计算SVD(尽管这不是工业强度SVD实施的方式)。首先,我们定义M = AAT。我们假设我们可以在M上执行SVD:

image.png

替换基于以下事实:(BC)T = CTBT,正交矩阵的转置是它的逆矩阵,对角矩阵的转置是矩阵本身。这种新形式的美妙之处在于 M 是对称的,US2UT 是它的特征值分解,其中 S2 包含(所有非负的)特征值。因此,我们发现矩阵的奇异值是矩阵与其转置的乘积的特征值的平方根,而左奇异向量是该乘积的特征向量。一个类似的论点允许从 ATA 计算右奇异向量矩阵 V。

例子: 我们现在用一个例子来具体说明:

image.png

我们在上一节中看到了该矩阵的特征值分解。我们立即观察

image.png

我们可以代数求解 V:

image.png

S 的逆矩阵是 S 的对角元素的倒数的对角矩阵。这产生

image.png

该表单使用标准符号σi用于ITH单数值。同样,对于对称矩阵,特征值和奇异值相同(σi=λi)。 我们将在第6.1.6节中进一步研究SVD的几何形状。

常见问题解答

• 为什么矩阵乘法的定义方式不仅仅是逐个元素?
逐元素乘法是定义矩阵乘法的一种非常好的方法,而且它确实具有很好的特性。但是,在实践中它并不是很有用。最终,大多数矩阵都用于转换列向量,例如,在 3D 中,您可能有 b = Ma,其中 a 和 b 是向量,M 是 3×3 矩阵。为了允许诸如旋转之类的几何操作,a 的所有三个元素的组合必须进入 b 的每个元素。这要求我们通过 M 逐行或逐列地进行。 该选择是基于具有所需属性的矩阵的组合,M2(M1a)=(M2M1)a 这允许我们使用一个复合矩阵 C = M2M1 来转换我们的向量。 当许多向量将由相同的复合矩阵转换时,这很有价值。所以,总而言之,矩阵乘法有点奇怪的规则被设计成具有这些所需的属性。

• 有时我听说特征值和奇异值是一回事,有时一个是另一个的平方。哪个是对的?
如果实矩阵 A 是对称的,并且它的特征值是非负的,那么它的特征值和奇异值是相同的。如果 A 不是对称的,则矩阵 M = AAT 是对称的并且具有非负实特征值。 A 和 AT 的奇异值是相同的,并且是 M 的奇异值/特征值的平方根。因此,当进行平方根语句时,这是因为两个不同的矩阵(具有非常特殊的关系)正在谈到:M = AAT。

注释

行列式作为体积的讨论是基于A Vector Space Approach to Geometry (Hausner, 1998)。 Hausner 对矢量分析和几何基础也有很好的讨论。 Cramer 规则在 2D 中的几何推导取自 Practical Linear Algebra: A Geometry Toolbox (Farin & Hansford, 2004)。该书还对其他线性代数运算(例如高斯消元)进行了几何解释。特征值和奇异值的讨论主要基于线性代数及其应用(Strang,1988)。剪切矩阵的 SVD 示例基于计算机图形和几何建模 (Salomon, 1999) 中的讨论。

练习

  1. 使用二维行列式写出通过点 (x0, y0) 和 (x1, y1) 的二维线的隐式方程。
  2. 证明如果矩阵的列是正交的,那么行也是。
  3. 证明方程(5.5)-(5.7)中的矩阵行列式的性质。
  4. 证明对角矩阵的特征值是它的对角元素。
  5. 证明对于一个方阵 A,AAT 是一个对称矩阵。
  6. 证明对于三个 3D 向量 a、b、c,以下恒等式成立:|abc| = (a × b) · c。
  7. 解释为什么带有边向量 a、b、c(见图 5.2)的四面体的体积由 |abc|/6 给出。
  8. 通过采用以下矩阵-矩阵乘法代码、重新排列嵌套循环并根据矩阵和向量运算解释结果代码,演示矩阵-矩阵乘法的四种解释。 image.png

9.证明,如果a,q和d满足方程式(5.14),则V是Q的ITH行,而λ是D的对角线上的ITH进入,则V是a含有特征值λ的特征向量。

10.证明,如果a,q和d满足方程(5.14),则a的特征值都是不同的,而v是具有特征值λ的特征向量,那么对于某些i,v是q和λ行是D的对角线的入口。

11.给定2D三角三角形的三个顶点的(x,y)坐标,解释为什么该区域由以下给定。

image.png