美文网首页
正交矩阵(Orthogonal Matrix)

正交矩阵(Orthogonal Matrix)

作者: 喜欢吃包包 | 来源:发表于2021-04-03 17:53 被阅读0次

3D数学基础 图形和游戏开发(第二版)笔记

正式线性代数规则

定义: MM^{T} = I 等价于 M^{T} = M^{-1}

旋转矩阵和反射矩阵都是正交的。如果我们已经知道矩阵是正交的,则基本上可以避免计算其逆转矩阵(直接使用转置矩阵即可),这是一个相对昂贵的计算。

几何解释

要使矩阵正交,必须满足以下条件:

  • 矩阵的每一行必须是单位矢量。
  • 矩阵的行必须相互垂直。

在线性代数中,如果一组基矢量相互垂直,则将它们描述为正交(Orthogonal)。它们不需要具有单位长度。如果它们确实具有单位长度,则它们是标准正交基(Orthogormal Basic)。因此,正交矩阵(Orthogonal Matrix)的行和列是标准正交基矢量(Orthonormal Basic Vector).然而,从一组正交基矢量构造矩阵不一定导致正交矩阵(除非基矢量也是标准正交基)。

矩阵的正交化

有时我们遇到的矩阵会略微偏离正交性。这可能是因为从外部源获得了不良数据,或者可能累积了浮点误差,后者又称为矩阵蠕变(Matrix Creep)。对于用于凹凸映射(Bump Mapping)的基矢量,通常会将基矢量调整为正交,即使纹理映射渐变不是很垂直。在这些情况下,我们都希望对矩阵进行正交化(Orthogonalize),从而得到一个矩阵,该矩阵具有相互垂直的单位矢量轴,并且(希望)尽可能接近原始矩阵.

用于构造一组正交基矢量(它是正交矩阵的行)的标准算法是Gram-Schmidt正交化.其基本思想是按顺序遍历基矢量。对于每个基矢量,我们将减去与基向量平行的矢量,这必然会产生垂直矢量。

r_1,r_2,r_3代表3×3矩阵M的行(记住,你也可以将它们视为坐标空间的x轴,y轴,z轴),然后可以根据以下算法计算出一组正交的行矢量r_1^{'},r_2^{'},r_3^{'}:

r_1^{'} \Leftarrow r_1

r_2^{'} \Leftarrow r_2 - {r_2·r_1^{'}\over r_1^{'}·r_1^{'} }r_1^{'}

r_3^{'} \Leftarrow r_3 - {r_3·r_1^{'}\over r_1^{'}·r_1^{'} }r_1^{'} - {r_3·r_2^{'}\over r_2^{'}·r_2^{'} }r_2^{'}
在应用这些步骤之后,矢量r_1,r_2,r_3将保证相互垂直,因此将形成正交基。但是,它们可能不一定是单位矢量。我们需要一个标准正交基来形成一个正交矩阵,因此还必须对矢量进行归一化。
还有一个再三维中有效(但不适用于更高维度)的技巧是使用叉积计算第三个基矢量,具体如下:
r_3^{'} \Leftarrow r_1^{'}×r_2^{'}

Gram-Schmidt算法是有偏差的,这取决于列出的基矢量的顺序。例如,r_1永远不会改变,而r_3可能会改变最多。改算法有一种不偏向任何特定轴的变体,那就是放弃在一次遍历中完全正交化整个矩阵的尝试。我们可以选择一个因子k,而不是减去所有的投影,我们只减去它的k。我们还将投影减去原始轴,而不是被调整的那个。通过这种方式,执行操作的顺序就变得无关紧要了,这样就可以产生没有维度偏差的结果。该算法可总结如下:

r_1^{'} \Leftarrow r_1 - k{r_1·r_2\over r_2·r_2}r_2 - k{r_1·r_3\over r_3·r_3}r_3
r_2^{'} \Leftarrow r_2 - k{r_2·r_1\over r_1·r_1}r_1 - k{r_2·r_3\over r_3·r_3}r_3
r_3^{'} \Leftarrow r_3 - k{r_3·r_1\over r_1·r_1}r_1 - k{r_3·r_2\over r_2·r_2}r_2

该算法的一次迭代将产生一组比原始矢量稍微“更正交”一些的基矢量,但可能不会完全正交。通过多次重复该过程,我们最终可以在正交基矢量上收敛。为k选择一个适当小的值(如0.25)并迭代足够多次(如10次)会让我们相当接近正交,然后可以使用标准的Gram-Schmidt算法来保证获得完全正交基。

相关文章

  • 正交矩阵(Orthogonal Matrix)

    3D数学基础 图形和游戏开发(第二版)笔记 正式线性代数规则 定义: 等价于 旋转矩阵和反射矩阵都是正交的。如果...

  • Microstation MDL(memo)旋转矩阵

    作为备用知识,memo 学过矩阵理论或者线性代数的肯定知道正交矩阵(orthogonal matrix)是一个非常...

  • 线性代数笔记14

    第十四节 向量的正交 orthogonal 左边的两个空间正交,右边的两个空间正交 正交是垂直(perpendic...

  • Week 3-1

    venture into :进入(探险) orthogonal polynomials:正交多项式 extract...

  • 标准正交基与正交矩阵

    标准正交基标准正交基.PNG 坐标变换坐标变换.PNG 正交矩阵正交矩阵.PNG

  • 语音识别TDNN-F声学模型

    参考论文:Semi-Orthogonal Low-Rank Matrix Factorization for De...

  • 正交矩阵

    什么是正交矩阵 满足公式的矩阵就是正交矩阵,那么正交矩阵有什么特性呢? 将A表示由行向量组成的矩阵,则 根据公式,...

  • sklearn学习笔记——正交匹配追踪算法OMP

    正交匹配追踪算法OMP(Orthogonal Matching Pursuit) 1、MP算法(匹配追踪算法) 作...

  • 伪逆矩阵(广义逆矩阵)

    Inverse Matrix(逆矩阵)& Pseudoinverse Matrix(伪逆矩阵/广义逆矩阵)概念 伪...

  • 线性代数笔记17

    第十七节 正交基 正交矩阵 标准正交基 orthonormal basis 设则 即,单位矩阵 只有当正交点积非0...

网友评论

      本文标题:正交矩阵(Orthogonal Matrix)

      本文链接:https://www.haomeiwen.com/subject/uxuhkltx.html