课程
正交矩阵是这样一种方阵:其列与行分别构成一组标准正交基,即彼此正交且长度为 1。这个看似简单的性质带来许多有用能力:当其作为线性变换应用时,可以保持距离、角度和内积不变。
本文将首先定义什么是正交矩阵,并考察其关键性质与示例;随后探讨实际应用,对比正交与标准正交矩阵,并演示如何在实践中判别一个正交矩阵。通过理解这些特殊矩阵,您将洞见数据科学、机器学习与数值计算中多种计算技术的原理。
什么是正交矩阵?
正交矩阵是一个方阵 Q,使其转置等于其逆矩阵:
![]()
正交矩阵的定义。图片来源:作者。
当我们用正交矩阵与其转置相乘时,得到的是单位矩阵:
![]()
正交矩阵的定义。图片来源:作者。
从几何角度看,正交矩阵表示一种保持向量长度和相互夹角不变的线性变换。这类变换包括旋转、反射,或在 n 维空间中二者的组合。这意味着当我们用正交矩阵去乘一个向量时,改变的是其方向——而非其大小。
理解正交矩阵的另一种方式是观察其结构。在正交矩阵中,所有列构成一组标准正交向量——每一列都是单位长度(范数 = 1),且任何两列彼此正交(点积为零)。同样的性质也适用于矩阵的行。
例如,一个 2×2 矩阵要成为正交矩阵,其列必须是相互垂直的单位向量。这种变换在其作用的空间中是“刚性”的,能保持空间结构,因此在需要几何保真的应用中,正交矩阵是基础工具。
正交矩阵的性质
在基本定义之上,我们接着探讨令正交矩阵在数值应用中极具价值的数学与计算性质。
行列式分类
正交矩阵的行列式恒为 +1 或 -1,可将其划分为两类几何变换:
- 当 det(Q) = +1 时,矩阵表示纯旋转
- 当 det(Q) = -1 时,矩阵表示反射(或旋转与反射的组合)
这种行列式约束确保正交变换保持体积,仅仅改变空间取向,而不会拉伸或压缩。
保持性质
正交矩阵在变换过程中保持几何关系。
对任意正交矩阵 Q 和向量 u、v:
- 向量范数保持不变:||Qu|| = ||u||
- 内积保持不变:(Qu) · (Qv) = u · v
- 向量间的夹角不变
这种保持不仅限于单个向量——整体的几何构型在正交变换下也能维持其相对结构。
代数性质
正交矩阵的特征值的绝对值均为 1。对于实正交矩阵,这些特征值要么是 1、-1,要么以位于单位圆上的共轭复数成对出现。这个约束保证变换不会放大或衰减系统的整体“能量”。
此外,两个正交矩阵的乘积仍是正交矩阵,形成了闭包性质,使其在复杂变换和迭代算法中表现良好。
数值稳定性
从计算角度看,正交矩阵具有卓越的数值性质。其条件数为 1,使其在数值算法中极为稳定。这意味着输入中的微小误差不会在计算过程中被放大,即使在复杂计算中也能得到可靠准确的结果。正因为这种稳定性,许多数值方法偏好使用正交矩阵,诸如 QR 分解等算法也高度依赖正交变换。
理解了正交矩阵的定义与其特殊性质后,让我们通过一些示例来加深理解。
正交矩阵示例
通过具体矩阵示例,理解正交矩阵会更加直观。
单位矩阵
最基本的正交矩阵是单位矩阵,它对所有向量都不产生改变:

单位矩阵。图片来源:作者。
虽然看似平凡,但单位矩阵满足我们的基本要求:I^T × I = I,依定义即为正交矩阵。
二维旋转矩阵
最直观的例子之一是二维旋转矩阵,它将向量按角度 θ 旋转:

二维矩阵。图片来源:作者。
例如,旋转 45 度(π/4 弧度)得到:

旋转 45 度的矩阵。图片来源:作者。
该矩阵将任意向量逆时针旋转 45 度,同时保持其长度不变——是正交变换保持几何性质的完美示例。
反射矩阵
反射矩阵是沿某一特定轴或平面对向量进行翻折。一个沿 x 轴的简单反射为:

反射矩阵示例。图片来源:作者。
该矩阵保持 x 坐标不变,同时取反 y 坐标,从而实现沿水平轴的镜像。
三维变换
扩展到三维空间,我们可以构造三维的旋转矩阵。绕 z 轴按角度 θ 旋转的矩阵为:

执行三维变换。图片来源:作者。
可以看到它在旋转 x、y 分量的同时保持 z 分量不变,展示了正交矩阵如何选择性地变换特定维度。
以上每个例子都体现了正交矩阵的核心原则:在变换向量的同时,保持其关键几何性质——长度不变、向量间角度不变。
正交矩阵的实际应用
得益于其几何与数值特性,正交矩阵在诸多领域中应用广泛。
其中包括:
- 主成分分析:PCA 利用正交矩阵将数据变换到一个新的坐标系,使最大方差落在第一主轴上。该变换矩阵由正交的特征向量组成,在降维的同时保持数据的几何结构。
- QR 分解:任意矩阵可分解为 A = QR,其中 Q 为正交矩阵、R 为上三角矩阵。该分解是求解线性方程组、最小二乘问题与特征值计算的基础。
- 计算机图形学与三维变换 正交矩阵是计算机图形学、机器人学与计算机视觉中实现三维旋转的关键。它们确保对象在旋转中保持形状与尺寸,避免失真。
- 信号处理:离散余弦变换(DCT)和离散傅里叶变换使用正交矩阵在时域与频域间变换信号。JPEG 压缩高度依赖 DCT,而 DCT 使用的正交变换至关重要。
- 量子计算: 量子门由酉矩阵表示,后者是正交矩阵在复数域的推广。这些变换在量子系统中保持概率幅度。
正交矩阵 vs. 标准正交矩阵
“正交矩阵”与“标准正交矩阵”常被混淆,但在矩阵语境中,仅使用正交矩阵这一术语,且其已经包含“标准正交”的含义。混淆通常源于将向量集合的术语与矩阵术语混用。
对二者进行对比:
- 一个正交向量集由彼此垂直的向量组成,但它们不一定是单位长度。
- 一个标准正交向量集由既彼此垂直又为单位长度(已归一化)的向量组成。
因此疑问在于:为何我们称其为“正交”而非“标准正交”?
尽管正交矩阵的列从技术上讲是标准正交的,但正交矩阵这一术语是线性代数中历史上确立的标准叫法。“标准正交矩阵”的表述是冗余的,在正式数学语境中几乎不会使用。
当我们说一个矩阵是正交的,含义始终是其列(与行)是标准正交的——彼此垂直且为单位长度。在此语境中,无需另设“标准正交矩阵”一词。
既然已澄清命名上的困惑,接下来看看如何识别正交矩阵。
如何识别正交矩阵
判断一个矩阵是否正交的常用方法是检查其与转置相乘是否等于单位矩阵:Q^T Q = I。
该方法直接检验正交矩阵的基本定义,对于任意规模的矩阵都具有良好的计算效率。当 Q^T Q 得到单位矩阵时,即可确认所有列是标准正交的(单位长度且两两正交)。
我们可以用 Python 写一个简单函数来完成这一检查:
import numpy as np
def is_orthogonal(Q, tolerance=1e-10):
"""Check if Q^T * Q equals identity matrix"""
# Matrix must be square
if Q.shape[0] != Q.shape[1]:
return False
# Compute Q^T * Q
QT_Q = np.dot(Q.T, Q)
identity = np.eye(Q.shape[0])
# Check if result is close to identity matrix
return np.allclose(QT_Q, identity, atol=tolerance)
我们可以用一些示例来测试上述函数:
# Test a 2D rotation matrix
theta = np.pi/3 # 60 degrees
rotation_matrix = np.array([[np.cos(theta), -np.sin(theta)],
[np.sin(theta), np.cos(theta)]])
print("Rotation matrix:")
print(rotation_matrix)
print("Is orthogonal:", is_orthogonal(rotation_matrix))
# Verify by computing Q^T * Q
QT_Q = np.dot(rotation_matrix.T, rotation_matrix)
print("Q^T * Q =")
print(QT_Q)
如预期所示,下面的输出验证了该正交矩阵:
正交矩阵的输出示例。图片来源:作者。
此外,我们还可以用下方的非正交矩阵进行验证:
# Test with a non-orthogonal matrix
non_orthogonal = np.array([[1, 2], [3, 4]])
print("\nNon-orthogonal matrix:")
print(non_orthogonal)
print("Is orthogonal:", is_orthogonal(non_orthogonal))
输出结果同样得到确认:

非正交矩阵的输出示例。图片来源:作者。
tolerance 参数用于考虑浮点运算精度。在实践中,即便由于舍入误差而不“数学上完美”,只要在数值精度范围内近似正交,通常也能满足大多数应用的需求。
结论
本文探讨了正交矩阵——一种转置等于逆的特殊方阵——以及令其在数据科学与数值计算中不可或缺的显著性质。我们了解了这些矩阵如何在变换中保持距离与角度,考察了其在 PCA、QR 分解、计算机图形学与信号处理中的应用,并借助 Python 实现介绍了实用的识别方法。
若想进一步深化您对线性代数及其在数据科学中应用的理解,建议报名我们的Linear Algebra for Data Science课程,在真实场景中学习更高级的矩阵概念及其实现。
作为一名高级数据科学家,我设计、开发并部署大规模机器学习解决方案,帮助企业做出更明智的数据驱动决策。作为数据科学写作者,我分享所学心得、职业建议以及深入的实践型教程。
常见问题
什么使一个矩阵成为正交矩阵?
若一个矩阵的转置等于其逆(Q^T = Q^(-1)),则该矩阵为正交矩阵。这意味着当您将该矩阵与其转置相乘时,会得到单位矩阵。
正交与标准正交有什么区别?
在矩阵术语中,两者没有区别。“正交矩阵”的列总是标准正交的(彼此垂直且为单位长度)。“标准正交矩阵”这一说法在实践中并不使用。
非方阵可以是正交矩阵吗?
不能。只有方阵才可能是正交的,因为“转置等于逆”的性质要求矩阵的行数与列数相同。
如何检查一个矩阵是否正交?
将该矩阵与其转置相乘。如果结果为单位矩阵(在数值精度范围内),则该矩阵是正交的。
我可以将正交矩阵相乘吗?
可以,且结果仍为正交矩阵。这种“闭包性质”使其适用于复杂变换。
