我第一次在教材里读到“酉矩阵”三个字,第一反应是把它读成了“酒矩阵”——没办法,“酉”长得实在像一个酒坛子。后来换到量子力学的参考书,又看到一个叫“幺正矩阵”的东西,一度以为自己和“酉矩阵”是两个不同的概念,直到翻到定义才发现,原来是同一个数学对象:Unitary matrix,复矩阵里定义最干净、用起来最顺手的“旋转”。
这篇文章我想把这个概念聊透:它到底是怎么定义的,中文名字为什么这么混乱,它有哪些必须刻进脑子的性质,怎么用代码亲手验证,以及为什么量子计算、信号处理、深度学习的论文里到处都有它的影子。适合正在学线性代数、矩阵论、量子力学的人,也适合只是被某个公式里的 U†U = I 卡住、想一口气弄明白的朋友。
1. 先别被名字绕晕:从共轭转置开始理解幺正矩阵
1.1 共轭转置:复数世界里的“镜子加转身”
要理解幺正矩阵,第一道坎不是矩阵本身,而是“共轭转置”。复数 z = a + bi 的共轭是 z* = a - bi,几何上看就是关于实轴对称的镜像。复数 z 的模长平方,写成 |z|² = z*z,而不是 z²。原因是 z² 在复数域里可能是个负数甚至虚数,比如 (1+i)² = 2i,完全不能表达“长度”。
到了向量和矩阵,规则是一样的。一个复向量 v,它的长度平方是 v†v = Σ v_i* v_i,而不是 v^T v。举个极端例子:v = (1, i)^T,如果错误地用 v^T v = 1² + i² = 0,一个非零向量的“长度平方”居然是 0,这在几何上完全说不通。改用共轭转置后,v†v = 1 + (-i)(i) = 2,才是正确的长度平方。所以共轭转置是复线性空间里度量长度和内积的唯一正确姿势。
矩阵的共轭转置也叫厄米共轭,记号有 A†、A^*、A^H 等。计算方式很简单:先取共轭,再转置;或者先转置,再取共轭,结果一样。代码里对应 A.conj().T 或者 A.T.conj(),顺序随意。这一步是后面所有内容的地基。
1.2 从正交矩阵到幺正矩阵:不是推广,是“复数化”
还记得实数域里的正交矩阵吗?一个实矩阵 Q 满足 Q^T Q = I,就叫正交矩阵。它的几何含义非常直观:保持向量长度,保持夹角,逆矩阵等于转置,列向量是一组标准正交基。整个变换就像在实空间里“转动”或“镜像”一个固体盘子,不会拉伸、不会挤压、不会变形。
复数域上的对应物就是幺正矩阵。定义是:一个复矩阵 U,如果满足 U†U = UU† = I,其中 U† 是 U 的共轭转置,那么 U 就叫幺正矩阵,也叫酉矩阵。可以直接把正交矩阵里的转置记号换成共轭转置,剩下的理解全部平移。
为什么必须要用共轭转置?根源在于复数线性空间里的夹角和长度由内积 ⟨x, y⟩ = x†y 定义,而共轭转置恰恰是“关于这个内积的伴随运算”。如果还用普通转置,内积就没办法保持,U^T U = I 在复数域里往往意味着这个变换会严重扭曲“长度”概念,这在物理上等于概率不守恒,是灾难性的。
1.3 定义的三种等价说法与判断技巧
幺正矩阵的定义在方阵情况下有三种等价表达,用哪个都行:
- U†U = I
- UU† = I
- U⁻¹ = U†,即逆等于共轭转置
其中第三种说法最漂亮:一个矩阵的逆居然可以通过“取共轭再转置”直接得到,不需要做任何消元计算。这就是幺正矩阵“结构干净”的底气。
实际操作里,判断一个方阵是不是幺正,我一般不去算逆,而是直接验证列向量的性质:把 U 按列拆成 u₁, u₂, ..., uₙ,那么 U†U = I 等价于 ⟨uᵢ, uⱼ⟩ = δᵢⱼ,也就是说所有列向量两两正交、每个列向量模长为 1,构成一组标准正交基。检查行向量也有同样结论。这个判断方法在手工计算和代码验证时都最高效。等以后你碰到长方形矩阵,也会看到类似概念,比如 U†U = I 但 UU† ≠ I,这时它不叫幺正矩阵,而叫等距嵌入,是另一种角色,先不展开。
1.4 补充:U†U = I 和 UU† = I 为什么等价
很多初学者会问:为什么定义里非要写两个等式?难道不能只写一个?对于方阵,确实只写一个就够了。理由是线性代数里的一个基本定理:如果一个方阵 A 满足 AB = I,那么自动有 BA = I,也就是说 A 的右逆就是左逆。所以对 n×n 的 U,只要验证 U†U = I 或者 UU† = I 其中一个成立,另一个自动成立,U 的逆就是 U†。
这个性质不要小看,它让很多推导变得非常舒服。比如要证明两个幺正矩阵 U、V 的乘积 UV 还是幺正矩阵,只需要算 (UV)†(UV) = V†U†UV = V†IV = I,一步就结束。全部得益于“逆等于共轭转置”的优雅结构。
2. “幺正”和“酉”这两个中文名是怎么来的
2.1 同一个东西,两种叫法
这个术语的中文世界有点分裂。“酉矩阵”三个字常见于代数、几何、矩阵论的中文教材;“幺正矩阵”则大量出现在量子力学、量子信息和部分工程类书籍里。英文只有一个:Unitary matrix,没有任何歧义。所以如果你读英文文献,会非常清爽;一旦切回中文,就不得不面对这套双轨制命名。
先说读音,避免尴尬:“酉”读 yǒu,第三声,不是“酒”;“幺”读 yāo,第一声,幺正、幺元都是这个字。我第一次看到“幺正矩阵”时还以为和“幺蛾子”有什么关系,后来才知道它就是 unitary 的音译兼意译。
2.2 两个译名的大致来历
关于“幺正”的来历,一个比较流行的说法是音译加意译的结合:unitary 的读音接近“幺尼塔里”,“幺”在古汉语里又有“最小正整数一”的含义,恰好呼应 unitary 词根 unit(单位),所以“幺正”本身带有“单位 + 正交规范”的双重暗示。
关于“酉矩阵”,常见说法是许宝騄等老一辈数学家在编订数学名词时确定的译名。“酉”字看起来像大写字母 U,正好是 unitary 的首字母,也有人说“酉”在字形上与“正”有源流关系,取“保持正交”之义。这些说法有些是数学史爱好者们的推测,细节众说纷纭。老实说,我没有第一手资料去考证哪个绝对正确,但作为一个长期使用这个术语的人,我的态度是:不必纠结。两个译名指向同一个数学对象,读文献时心里存一个映射即可。
2.3 我个人的使用习惯建议
我自己写中文笔记时会区分场合:纯数学内容用“酉矩阵”,量子力学和信号处理的相关笔记用“幺正矩阵”,写英文材料统一用 unitary matrix。这样做的理由是跟随读者认知惯性——数学家看到“酉”很自然,物理学家看到“幺正”更亲切。你在阅读时如果遇到另一个名字,只需要心里翻译一下:哦,这就是那个“保持内积的复旋转”。术语再怎么变,数学本质不变。
顺带一提,搜索资料时这两个名字都能搜出大量内容,用哪个都能找到你想要的。真正的痛点不是名字,而是对“为什么复数域要额外取共轭”的理解,这一关过了,名字只是符号。
3. 幺正矩阵的硬核性质与几何直觉
3.1 保内积和保长度:复空间里的“刚体运动”
幺正矩阵最重要的性质藏在一个等式里:对于任意复向量 x、y,⟨Ux, Uy⟩ = x†U†Uy = x†Iy = ⟨x, y⟩。也就是说,经过 U 变换之后,任意两个向量的内积完全不变。内积决定了长度和夹角,所以这意味着 U 是复向量空间里的刚体运动:不改变长度、不改变夹角、不改变正交关系。
用生活类比的话:实数域里的正交矩阵像是一个完美无缺的转盘,转多少度都不变形;幺正矩阵是复数域里的转盘,除了转动,还会悄悄给整个空间施加一个均匀的相位缩放,但相位是全局的,不会破坏任何相对关系。所以研究几何问题、优化问题、概率问题,只要看到“变换后范数不变”,第一反应就应该是幺正性在起作用。
3.2 特征值的模必须等于 1:最容易被记住的判定
设 U 是一个幺正矩阵,λ 是它的一个特征值,对应的特征向量为 v ≠ 0。因为 U 保持向量长度,所以 ||Uv|| = ||v||。但另一方面 Uv = λv,于是 ||Uv|| = |λ|·||v||。两边一比较,得到 |λ|·||v|| = ||v||,特征向量非零,所以 |λ| = 1。
也就是说,幺正矩阵的所有特征值都躺在复平面的单位圆上,只可能是 e^{iθ} 这种形式的数。一个实数版本的特例是正交矩阵,其特征值只能取 1 或 -1;复数版本的范围更大,可以是任意角度 θ 对应的单位复数。这一点非常重要,因为很多人会想当然地以为“幺正矩阵特征值只能是 ±1”,这是个经典误区。
3.3 行列式是一个相位因子,不一定是 1
矩阵的行列式等于所有特征值的乘积。既然每个特征值的模都是 1,那么整个行列式的模也必然是 1:|det U| = 1。注意,是模为 1,不等于说行列式一定等于 1。det U 可以写成 e^{iθ} 的形式,具体角度由矩阵本身决定。
如果额外要求 det U = 1,那么这个幺正矩阵构成一个特殊子群,称为特殊酉群 SU(n)。在粒子物理标准模型里,SU(3)、SU(2) 这些名字频繁出现;在量子计算里,行列式为 1 的约束有时会带来方便。但基础理解中,要清楚 U(n) 和 SU(n) 的差别就是那个行列式条件。
3.4 不同特征值的特征向量一定正交
幺正矩阵还有一个优雅性质:属于不同特征值的特征向量之间必定正交。证明非常简单。设 Uv = λv,Uw = μw,其中 λ ≠ μ。因为 U 保内积,所以 ⟨Uv, Uw⟩ = ⟨v, w⟩。而左边等于 ⟨λv, μw⟩ = λμ*⟨v, w⟩。于是得到 (λμ* - 1)⟨v, w⟩ = 0。由于 |λ| = |μ| = 1,λμ* = λ/μ,当 λ ≠ μ 时这个值不可能等于 1。所以只能 ⟨v, w⟩ = 0。这说明幺正矩阵的特征空间彼此垂直于所有其他特征空间,对角化时不需要任何额外纠葛,这直接导向谱定理。
3.5 谱定理与可对角化:任何幺正矩阵都能“漂亮地”对角化
幺正矩阵是正规矩阵的一种特例,因为 U†U = UU† 正好是正规性的定义。正规矩阵满足谱定理:可以被酉矩阵对角化。也就是说,任何幺正矩阵 U,都能写成 U = V Λ V† 的形式,其中 V 是另一个幺正矩阵,Λ 是对角矩阵,对角线上的元素就是 U 的特征值,全都是模为 1 的复数。
这个分解在信号处理和量子力学里随处可见。比如量子计算中的 Z 门,它的对角形式 Z = diag(1, -1),本身就是对角矩阵;更复杂的量子门则需要通过 VΛV† 表示。理解了这个,你就明白了为什么很多算法里要反复做特征分解、奇异值分解,本质上都是在找合适的 V 来“转回”一个干净坐标系。
3.6 与厄米矩阵的指数映射:从“无穷小旋转”到“大旋转”
如果你刚接触量子力学,可能已经看到了这个式子:U = e^{iH},其中 H 是厄米矩阵。为什么?因为在李群理论中,幺正矩阵构成的酉群是一个李群,它的李代数正是厄米矩阵集合。粗略理解:厄米矩阵是“无穷小的旋转生成器”,通过指数映射 e^{iH} 把无穷小操作累积成有限大小的幺正变换。
这个观点非常重要:它把“保持范数”和“物理时间演化”联系起来了。薛定谔方程里的哈密顿量 H 是厄米的,时间演化算符 e^{-iHt/ℏ} 就是幺正的。为什么量子态概率总保持为 1?因为它沿着的是一条幺正轨迹,范数被保护。后文我会在应用部分再展开,这里你只需要建立直觉:厄米矩阵是生成器,幺正矩阵是生成器作用后的结果。
4. 动手验证:用 Python 做一组幺正矩阵实验
4.1 用 QR 分解产出一个现成的幺正矩阵
直接手工构造一个幺正矩阵有点费劲,但数值线性代数里到处都是免费的。任意一个复方阵做 QR 分解,得到的 Q 因子天然就是一个幺正矩阵。这是我最常用的验证起点,代码如下:
import numpy as np np.random.seed(42) A = np.random.randn(5, 5) + 1j * np.random.randn(5, 5) Q, R = np.linalg.qr(A) # 验证 Q†Q = I residual = Q.conj().T @ Q - np.eye(5) print("Q†Q - I 的最大绝对值:", np.max(np.abs(residual)))输出会是一个非常接近 0 的数,例如 2.6e-16,这是浮点运算的机器精度,不是错误。QR 分解可以把任意矩阵分解成一个幺正矩阵 Q 和一个上三角矩阵 R 的乘积,而 Q 的正交规范性是算法保证的。这个实验的目的不是构造什么新鲜东西,而是让你意识到:你天天用的 QR 分解里面就藏着幺正矩阵,它的性质在数值稳定性里是扛大梁的角色。
一定要用 np.max(np.abs(...)) 查看误差,而不是直接打印矩阵比较。最好用 np.allclose 来做断言,因为浮点数世界不允许你写 if residual == 0 这种代码。
4.2 自己动手构造 DFT 矩阵并验证
傅里叶变换的离散版本,也就是 DFT,用矩阵写出来就是一个幺正矩阵(乘上归一化因子后)。构造方式如下:
def dft_matrix(n): j, k = np.meshgrid(np.arange(n), np.arange(n)) return np.exp(-2j * np.pi * j * k / n) / np.sqrt(n) F = dft_matrix(8) print("F†F - I 的最大绝对值:", np.max(np.abs(F.conj().T @ F - np.eye(8))))这个矩阵 F 的元素是 F_{jk} = (1/√n) e^{-2πi·jk/n}。为什么它是幺正的?本质上是复指数序列的正交性:Σ_{k=0}^{n-1} e^{-2πi(j-l)k/n} 等于 n·δ_{jl},只有 j 和 l 相等时才不为零。除以 √n 后,每列的模长正好是 1。DFT 的幺正性直接推出帕塞瓦尔定理:时域能量等于频域能量。你之后在信号处理里无数次看到的“这个变换保能量”,根源就在这个矩阵性质上。
4.3 检查特征值的模长是否全为 1
对实验 4.1 里的 Q,直接算特征值,看看它们的模长:
eigvals = np.linalg.eigvals(Q) print("特征值模长:", np.abs(eigvals))理论上你会看到一组非常接近 1.0 的数字,比如 [1.0, 1.0, 1.0, 1.0, 0.9999999999999998] 之类的。浮点误差稍微破了点完美,但完全在可接受范围内。你也可以顺手算一下行列式:
print("行列式的模:", np.abs(np.linalg.det(Q)))同样会非常接近 1。这验证了 3.3 节说的“行列式是一个相位因子”的结论。
4.4 反例:特征值模长都是 1,但矩阵不是幺正矩阵
这里要破除一个常见的直觉误区。看这个矩阵:
A = np.array([[1, 1], [0, 1]], dtype=complex) eigvals = np.linalg.eigvals(A) print("特征值:", eigvals) # [1, 1] print("模长:", np.abs(eigvals)) # [1, 1] print("A†A - I:", A.conj().T @ A - np.eye(2))A 的特征值全是 1,模长当然都是 1,但 A 根本不是幺正矩阵,因为 A†A ≠ I。这个矩阵是线性代数里的著名角色:Jordan 块。它告诉我们,特征值模长为 1 是幺正矩阵的必要条件,绝不是充分条件。一个矩阵要成为幺正,必须是可对角化的且特征向量正交归一。这也是为什么我说,判断一个矩阵是不是幺正,最可靠的捷径是直接验证列向量是否标准正交,而不是看特征值。
4.5 浮点数判断的习惯:用容差,不要用等于
数值实验里最容易被新手忽视的是浮点误差。我见过不少人在作业里写出if Q.conj().T @ Q == np.eye(5),然后怎么跑都是 False,最后怀疑人生。正确姿势是用np.allclose:
is_unitary = np.allclose(Q.conj().T @ Q, np.eye(5)) print("Q 是幺正矩阵?", is_unitary)np.allclose的默认容差在 1e-8 左右,对绝大多数数值实验都够用。如果你在做高精度计算、矩阵维数很大的实验,可以把 rtol 和 atol 调小一两个数量级,但绝不要改成 0。这个习惯能帮你避免大量虚假的“看起来不满足”的误判。
5. 这些性质在真实场景里的用武之地
5.1 量子计算:量子门全是幺正矩阵
量子计算里,逻辑门不是一个布尔函数,而是一个作用在量子态上的矩阵。这个矩阵必须满足幺正性。为什么?因为量子态的概率幅向量的总概率必须保持为 1。如果某个“门”不是幺正的,它就可能把概率幅放大或缩小,导致物理上根本不可能发生。所以你看量子计算的论文,几乎每一页都有 U†U = I 的存在。
几个经典例子:
- Hadamard 门:H = (1/√2)[[1, 1], [1, -1]]。H† = H,而且 H² = I,所以 H 既是厄米矩阵又是幺正矩阵。
- Pauli-X 门:X = [[0, 1], [1, 0]],就是量子版“非门”。
- Pauli-Z 门:Z = [[1, 0], [0, -1]]。
- CNOT 门:一个 4×4 矩阵,它的列向量两两正交,行向量也两两正交,一眼就能看出幺正性。
量子线路里的每个门都是幺正矩阵,整条线路的总体效果是这些门的乘积,而乘积保持幺正性,所以整个电路仍然是幺正变换。测量是个例外,测量导致量子态坍缩,这一步是非幺正的,这也是测量在量子力学里显得格外特殊的原因之一。理解幺正矩阵,等于理解量子计算的“物理边界”。
5.2 信号处理:DFT 与酉变换的保能量特性
前面实验里的 DFT 矩阵已经说明问题了。信号处理中,傅里叶变换、小波变换、K-L 变换这些都是酉变换。酉变换最直接的好处是可逆且能量守恒:变换前后总能量不变,只是能量在“时域”和“频域”两种描述之间转换。这就是帕塞瓦尔定理的矩阵版本:||Fs||² = ||s||²。
所以当你在音频、图像处理代码里看到U.conj().T这种操作,通常就是在做逆变换或者投影到正交基上。正交基的好处是,分解系数互不干扰,系数平方和就是信号能量,这对压缩、去噪、特征提取都极其关键。如果变换矩阵不是幺正的,你还得额外算归一化因子、考虑能量损失,各种麻烦。
5.3 数值线性代数:QR 分解、SVD、极分解都靠它
在数值计算里,幺正矩阵简直是“稳定性”的代名词。原因很简单:一个数值算法如果每一步都在做幺正变换(或正交变换),那么误差不会指数放大,因为每个变换都保持范数。QR 分解中的 Q 是幺正的,所以 QR 迭代做特征值求解时能长期维持稳定。奇异值分解 M = UΣV† 中,U 和 V 都是幺正矩阵,这正是 SVD 在数据科学里如此可靠的原因之一:它把任意矩阵拆成“旋转 × 拉伸 × 旋转”,旋转部分绝不引入数值灾难。
再说一个各种矩阵分解里的隐藏操作:极分解。任何一个可逆复矩阵 A 都可以分解成 A = UP,其中 U 是幺正矩阵,P 是正定厄米矩阵。这有点像一个非零复数 z 写成“相位因子 × 模长”的矩阵版本。理解极分解对学习连续介质力学、图像配准里都有帮助,都是些看起来高深但底层全是这套代数的内容。
5.4 深度学习与机器学习:正交初始化、酉 RNN 与梯度稳定
深度学习里有一类困扰叫“梯度消失/爆炸”,深层网络反馈传播时,梯度乘上多个权重矩阵,如果矩阵的奇异值大于 1,梯度指数爆炸;小于 1,梯度指数消失。解决办法之一就是让初始权重尽量正交。最常用的正交初始化(orthogonal init)就是生成一个正交或幺正矩阵作为初始权重。这样初始阶段梯度范数被保住了,训练稳定性大大提高。
更进一步,循环神经网络处理长序列时面临同样的梯度问题。有一类网络叫酉 RNN(uRNN),核心思想就是把转移矩阵约束为幺正矩阵。因为 ||Uh|| = ||h||,信息在时间维上传播时不会被无限放大或快速衰减,这比普通 RNN 的“梯度截断”策略要优雅得多。我训练模型遇到梯度问题时,对初始化这件事格外敏感,每次都会先检查权重矩阵的奇异值,很多毛病都是从这里治好的。
5.5 量子力学的时间演化算符
物理学里到处是幺正矩阵。封闭量子系统的时间演化算符 U(t) = e^{-iHt/ℏ} 是幺正的,因为 H 是厄米矩阵,指数映射保范数。这意味着:一个封闭系统演化一段时间后,总概率始终为 1,信息不会凭空消失。而开放系统的耗散、退相干过程因为涉及环境相互作用,其有效演化可能非幺正,这也从反面说明了幺正性是“可逆、保信息、纯量子演化”的标志。科研圈里常说的“幺正性”有时已经超出数学,成为物理直觉的一部分:只要看到时间演化是幺正的,就知道这个物理过程是可逆的、信息被保护的。
6. 新手最容易踩的坑:常见误区与自查清单
6.1 用普通转置代替共轭转置
在实数矩阵里,正交矩阵满足 Q^T Q = I;到了复数矩阵,这个式子要换成 U†U = I。很多人习惯性地写 U^T U,在复矩阵里基本必翻车。唯一的例外是 U 恰好是实矩阵,那转置和共轭转置重合。代码里尤其要小心:numpy 的.T只做转置,不取共轭,对复矩阵需要.conj().T或直接用.swapaxes(-1, -2).conj()。我见过太多复矩阵实验因为漏掉.conj()导致验证全部失败,这不是数学问题,是手滑。
6.2 把“每个元素模为 1”当成幺正判据
对角矩阵 diag(1, i, -1, e^{iπ/2}) 是幺正的,它所有对角元模长都是 1。但一般的幺正矩阵元素可以是任意复数,比如 2×2 的 Hadamard 矩阵每个元素的模是 1/√2。如果把“元素都模为 1”当作判断标准,你会把一大堆真正的幺正矩阵拒之门外。判断口径应该是:列向量两两正交,且每个列向量的模长为 1,而不是看元素的个体模长。
6.3 以为行列式必须等于 1
|det U| = 1 和 det U = 1 是两码事。U(2) 群里的矩阵行列式可以是 e^{iθ} 的任意单位复数,SU(2) 才是额外要求行列式等于 1 的子集。做题或写代码时,如果有人让你判断 det = 1 是否是幺正必要条件,答案是否定的。行列式的模为 1 才是必要条件,等于 1 是特殊子群的定义。
6.4 把特征值“模为 1”错看成“等于 ±1”
正交矩阵的特征值只能是 ±1,这个结论太深入人心,导致很多人自动迁移到幺正矩阵上。但幺正矩阵的特征值可以是单位圆上的任意点,比如 e^{iπ/3},这个矩阵的整体旋转角度是 60 度,特征值显然不是 ±1。看到“幺正矩阵特征值模为 1”时,请严格读作“模等于 1”,而不是“等于 ±1”。
6.5 手算内积时忘掉共轭
内积 ⟨x, y⟩ = Σ xᵢ* yᵢ,这里的星号不能掉。尤其判断正交性时,如果你把 ⟨x, y⟩ 算成了 Σ xᵢyᵢ,结果可能是个非零复数,导致你错误地否定正交性。一个特别容易混淆的点:⟨x, y⟩ 和 ⟨y, x⟩ 互为共轭,不相等。这在手算小矩阵时格外常见。我的建议是一旦结果看起来“不对劲”,先检查有没有漏共轭。
6.6 直接使用“等于”判断数值验证结果
这个问题前面已经说过,但值得单独列一条。数值计算永远有浮点误差,U†U 的结果可能是 I 的近似,而不是精确的 I。任何用==判断矩阵相等的操作在数值验证里都不成立。请使用np.allclose,或者手动设置容差。这也是区分“数学严谨”和“工程严谨”的关键点:数学上 U†U = I 是精确等式;工程上用 1e-12 的容差已经算是极其苛刻。
6.7 快速自查清单
| 检查点 | 正确条件 | 常见错误 |
|---|---|---|
| 共轭转置 | U†U = I | 误写为 U^T U = I |
| 元素模长 | 不要求每个元素模为 1 | 把元素模为 1 当判据 |
| 行列式 | |det U| = 1 | 要求 det U = 1 |
| 特征值 | |λ| = 1 | 误认为 λ = ±1 |
| 列向量 | 两两正交,模长为 1 | 只检查特征值 |
| 数值验证 | np.allclose(U†U, I) | 用 == 直接比较 |
最后说一个我自己的工作习惯。每当我在新论文里看到 “unitary matrix”,我会先在草稿纸上写两件事:第一,它保证范数不变,所以在优化、归一化、概率守恒这些语境中出现时,多半是在表达“守恒”的意味;第二,它必然可对角化,所以任何需要谱分解的场景它都会冒出来。抓住这两条主线,比孤立地背二十条引理要管用得多。幺正矩阵不是一个孤零零的定义,它是一整套围绕“内积保持”展开的数学叙事的起点。搞懂它,你再看量子门、傅里叶变换、SVD、正交初始化,都会觉得顺理成章。