文章目录

  • 正交矩阵 Orthogonal Matrix
    • 正交
    • 标准正交
    • 正交矩阵
    • 正交矩阵的行(row)

正交矩阵 Orthogonal Matrix

正交

  1. 在线性代数中正交(orthogonal)这个词出现的频率非常多。正交说白了就是垂直。假设向量 x x x和向量 y y y正交,那它俩的点乘为零,可表示为:
    x T y = x 1 y 1 + x 2 y 2 + . . . + x n y n = 0 x^Ty = x_1y_1 + x_2y_2 + ... + x_ny_n = 0 xTy=x1​y1​+x2​y2​+...+xn​yn​=0

标准正交

  1. 如果向量 x x x与向量 y y y的范数(L2 Norm)恰好为1, 也就是说向量 x , y x, y x,y的模长为1,那么这两个向量叫做标准化正交(orthonormal)。
    ∥ x ∥ = ∥ y ∥ = 1 \left \| x\right \| = \left \| y\right \| = 1 ∥x∥=∥y∥=1
    x T x = x 1 2 + x 2 2 + . . . + x n 2 = 1 x^Tx = \sqrt{x_1^2 + x_2^2 + ... + x_n^2} = 1 xTx=x12​+x22​+...+xn2​ ​=1

正交矩阵

  1. 说了这么半天都是关于向量之间的特殊关系,终于要来定义什么是正交矩阵了,这里官方的定义的名字容易有点让人头晕,我先来用粗体字来表明正交矩阵的特征,正交矩阵是一个方形矩阵,也就是说,正交矩阵只能是行数等于列数的方形矩阵。正交矩阵的相互标准化正交(orthonormal)。我一开始学的时候也被orthogonal和orthonormal这两个名字搞得有点不知道谁是谁。我觉得“正交矩阵”(orthogonal matrix)应该叫做“标准化正交矩阵”(orthonormal matrix)。总之一个列之间相互标准化正交的方形矩阵被叫做正交矩阵。这里挖个坑坑,先给出正交矩阵最重要的公式:
    Q T = Q − 1 ⇒ Q T Q = Q Q T = I Q^T = Q^{-1} \Rightarrow Q^TQ = QQ^T=I QT=Q−1⇒QTQ=QQT=I
    先给两个反例,设想两个三维向量 q 1 ∈ R 3 , q 2 ∈ R 3 q_1\in R^3,q_2 \in R^3 q1​∈R3,q2​∈R3 ,他们两个相互标准化正交,也就是说 q 1 T q 1 = q 2 T q 2 = 1 , q 1 T q 2 = 0 q_1^Tq_1=q_2^Tq_2=1, q_1^Tq_2=0 q1T​q1​=q2T​q2​=1,q1T​q2​=0,
    Q = [ ∣ ∣ q 1 q 2 ∣ ∣ ] Q = \begin{bmatrix} \vert& \vert\\ q_1& q_2\\ \vert&\vert \end{bmatrix} Q=⎣⎡​∣q1​∣​∣q2​∣​⎦⎤​
    先来看 Q T Q Q^TQ QTQ:
    Q T Q = [ — q 1 — — q 2 — ] [ ∣ ∣ q 1 q 2 ∣ ∣ ] = [ q 1 T q 1 q 1 T q 2 q 2 T q 1 q 2 T q 2 ] = [ 1 0 0 1 ] Q^TQ = \begin{bmatrix} \text{---} & q_1 & \text{---} \\ \text{---} & q_2 & \text{---} \end{bmatrix} \begin{bmatrix} \vert& \vert\\ q_1& q_2\\ \vert&\vert \end{bmatrix} = \begin{bmatrix} q_1^Tq_1 & q_1^Tq_2\\ q_2^Tq_1 & q_2^Tq_2 \end{bmatrix} = \begin{bmatrix} 1 & 0\\ 0 & 1 \end{bmatrix} QTQ=[——​q1​q2​​——​]⎣⎡​∣q1​∣​∣q2​∣​⎦⎤​=[q1T​q1​q2T​q1​​q1T​q2​q2T​q2​​]=[10​01​]
    可以看出 Q T Q Q^TQ QTQ得到的矩阵中的所有元素都是向量 q 1 q_1 q1​, q 2 q_2 q2​之间相互点乘(他俩点乘的各种排列组合, 自己跟自己, 别人跟自己, 自己跟别人)的结果,而 q 1 q_1 q1​, q 2 q_2 q2​又相互标准化正交,根据矩阵乘法的规则 Q T Q Q^TQ QTQ便得出了单位矩阵。现在我们看下 Q Q T QQ^T QQT:
    Q Q T = [ ∣ ∣ q 1 q 2 ∣ ∣ ] [ — q 1 — — q 2 — ] = [ Q 11 Q 12 Q 13 Q 21 Q 22 Q 23 Q 31 Q 32 Q 33 ] QQ^T = \begin{bmatrix} \vert& \vert\\ q_1& q_2\\ \vert&\vert \end{bmatrix} \begin{bmatrix} \text{---} & q_1 & \text{---} \\ \text{---} & q_2 & \text{---} \end{bmatrix} = \begin{bmatrix} Q^{11} & Q^{12} & Q^{13}\\ Q^{21}& Q^{22} & Q^{23}\\ Q^{31}& Q^{32} & Q^{33} \end{bmatrix} QQT=⎣⎡​∣q1​∣​∣q2​∣​⎦⎤​[——​q1​q2​​——​]=⎣⎡​Q11Q21Q31​Q12Q22Q32​Q13Q23Q33​⎦⎤​
    这里 Q Q T QQ^T QQT的得数我们不能确定,因为可以看出, Q Q T QQ^T QQT中矩阵的元素已经不是单纯 q 1 q_1 q1​跟 q 2 q_2 q2​之间的点乘关系了,因此 Q Q T QQ^T QQT得到的结果不能保证也是单位向量。这里用上角标表示矩阵或向量的索引 Q 11 = q 1 1 ∗ q 1 1 + q 2 1 ∗ q 2 1 Q^{11} = q_1^{1}*q_1^{1} + q_2^{1}*q_2^{1} Q11=q11​∗q11​+q21​∗q21​。这两个小例子我们可以看出,非方形矩阵的列如果标准正交的话,那么这个矩阵满足 Q T Q = I Q^TQ=I QTQ=I,但不满足 Q Q T = I QQ^T=I QQT=I,也就不满足正交矩阵的公式,因此便不是一个正交矩阵。用python的numpy包来验证下:
import numpy as np# 先生成两个正交矩阵
q1 = np.array([1, 1, 2]).reshape(3, 1)
q2 = np.array([-1, -1, 1]).reshape(3, 1)
# 除下它们对应的模长使其标准正交
q1 = q1 / np.linalg.norm(q1)
q2 = q2 / np.linalg.norm(q2)
# 把这俩列向量放到矩阵里
Q = np.hstack((q1, q2))
# 验证结果
print('Q.T @ Q = I is', np.allclose(Q.T @ Q, np.eye(2)))
print('Q @ Q.T = I is', np.allclose(Q @ Q.T, np.eye(3)))

输出

>>> Q.T @ Q = I is True
>>> Q @ Q.T = I is False

正交矩阵的行(row)

  1. 这里给出一个更加奇幻的定义,假如把相互标准正交的几个向量组合成一个方形矩阵,那么这个矩阵的之间也会相互标准正交(这个太神奇了,别问我为什么,我洗澡的时候想了半天也没想出来为啥),这里我们可以用公式解释,但是我还是很难理解这其中的奥秘。刚才的小例子已经让我们知道,一个矩阵不管是不是不是方的,假如它的列之间标准正交,便成立 Q T Q = I Q^TQ=I QTQ=I。如果这个列之间标准正交的矩阵 Q Q Q又是一个方矩阵,那么Q的置换既是自己的置换也是自己逆(方矩阵的左逆和右逆相等,一个矩阵在左面乘 Q Q Q如果等于 I I I,那它在右面乘 Q Q Q也等于 I I I) Q Q − 1 = Q Q T = I QQ^{-1}=QQ^T=I QQ−1=QQT=I(一不小心把刚才的坑埋了)。

正交矩阵 Orthogonal Matrix相关推荐

  1. 正交矩阵(orthogonal matrix)

    方阵,值为实数,行向量和列向量均为正交的单位向量,它的转置矩阵就是逆矩阵.行列式为1或者-1.

  2. Orthogonal Matrix Integration

    H1H_1H1​ is an n×mn\times mn×m matrix ( n>mn > mn>m ) with orthonormal columns, so that H1′ ...

  3. 【李宏毅2020 ML/DL】P57 Unsupervised Learning - Linear Methods | PCA Matrix Factorization

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  4. 线性代数——正交矩阵

    正交矩阵 orthogonal matrix 正交矩阵的定义 正交矩阵性质 1)AT是正交矩阵 2)A的各行是单位向量且两两正交 3)A的各列是单位向量且两两正交 4)|A|=1或-1 正交矩阵的定义 ...

  5. 正交矩阵(部分转载)

    旋转矩阵是正交阵 旋转矩阵的行列式值 = 1 以下是转载内容: 1. 定义 正交矩阵: Orthogonal Matrix (必为方阵)     (可知,A的逆=A的转置) 2. 特征 1) 所有的列 ...

  6. 线性代数学习笔记5-3:标准正交基、正交矩阵、施密特正交化、QR分解

    正交矩阵 一组标准正交向量Orthonormal vectors满足: qiTqj={0i≠j1i=j\mathbf{q}_{i}^{T} \mathbf{q}_{j}=\left\{\begin{a ...

  7. 矩阵特征分解介绍及雅克比(Jacobi)方法实现特征值和特征向量的求解(C++/OpenCV/Eigen)

    对角矩阵(diagonal matrix):只在主对角线上含有非零元素,其它位置都是零,对角线上的元素可以为0或其它值.形式上,矩阵D是对角矩阵,当且仅当对于所有的i≠j, Di,j= 0. 单位矩阵 ...

  8. MIT 线性代数 Linear Algebra 26:复矩阵,傅里叶矩阵, 快速傅里叶变换 FFT

    这一讲我们来讲一下复矩阵.线性代数中,复矩阵是避免不了的话题,因为一个简单实矩阵都有可能有复数特征值. 复矩阵 我们着重看一下复矩阵和实矩阵在运算上的区别. 距离 首先,一个复数向量的的距离求法发生了 ...

  9. python如何定义矩阵_基础 | Python下的矩阵定义 (下)

    关键词:线性代数 / 矩阵 / 基本定义 矩阵对于算法就如同人对于食物般的关系,已经到了密不可分的状态了,在神经网络里,矩阵代表了每层神经元之间的链接,在集成算法里,矩阵记录了每次分类器更新的残差,在 ...

最新文章

  1. 微软称不放弃收购雅虎
  2. L301 L210 L101 L201 L110 R390 R270 R1430 1400清零软件 中文正版
  3. 【Python】内置方法pop
  4. ES6中的Promise使用方法与总结
  5. RTX5 | 配置文件RTX_Config.h(二)
  6. 光伏巨头“脱轨” 英利确认债务重组
  7. 解决nuxt.js新建项目报错的问题
  8. 遇到问题的时候,要学会问问题
  9. 浅谈C++设计模式之抽象工厂(Abstract Factory)
  10. VMware vSphere Update Manager 5.0
  11. 优秀的产品管理促进了IBM的成功转型--和谐生产方式百题03
  12. Echart柱状图数值显示
  13. 西安计算机专业大专排名及分数线,西安所有的大学名单及排名分数线(本科 专科)...
  14. 转载大牛对Microsoft的认识
  15. k8s 的容器command用法相关
  16. SAS 系统全称为Statistics Analysis System
  17. 噩梦射手(SurvivalShooter)教程(五)
  18. 能ping通,但是telnet端口连接失败
  19. Ubuntu 下用tar 命令打包文件
  20. 春招面试(1)- 中科院软件中心/中科院自动化研究所

热门文章

  1. 服务式办公室出租,保证创业效率
  2. “检测到#include错误。请更新includePath。已为此翻译单元” 导致头文件及其类不能点击跳转的问题
  3. 电视剧保姆剧情详细介绍
  4. Unicode编码范围
  5. 华南师范大学计算机学硕考研,【20计算机考研】二战师兄经验贴,让你少走弯路!...
  6. 2021年低压电工考试题及低压电工模拟考试题
  7. SDNUOJ 1703.字谜|STL库中map的使用/map映射
  8. php登录后不点击注销,icloud无密码强制注销的方法
  9. HOG提取训练检测+样本制作
  10. Python安装配置: python install python安装