
从大二线性代数第一次碰到共轭转置开始我就觉得这个符号很玄乎。明明转置挺好理解的把行列互换一下就行但偏偏要在上面加个星号还得先把虚部取反一堆人在这里翻车。等到后面学矩阵论、信号处理、量子力学的时候才发现当初没把共轭、转置、共轭转置和逆矩阵这几个概念之间的性质彻底吃透后面真是寸步难行。这篇东西我就把这些性质掰开揉碎了讲清楚不光告诉你结论还会告诉你为什么要有这些运算它们之间是怎么互相纠缠的以及在实际计算中有哪些坑。无论你是正在被线性代数折磨的本科生还是已经工作但被特征分解、奇异值分解、最小二乘问题反复蹂躏的工程师这篇文章都值得你花二十分钟静下心来看一遍。我尽量不提那些绕来绕去的纯数学证明而是用算一遍和对比一下的方式让这些性质在你脑子里立起来。1. 先搞清楚共轭和转置各自是什么别急着合体1.1 复数的共轭虚部变号就是全部很多人一上来就把共轭和转置混在一起其实它们是两个维度完全不同的操作。共轭只作用于元素内部是针对复数这个概念本身的一种对称操作。给定一个复数 z a bi它的共轭就是 \bar{z} a - bi。形象点说就是在复平面上把点沿着实轴翻个面虚部的符号变了实部纹丝不动。这个东西用在矩阵上就是把矩阵里每一个元素都取共轭。比如给你一个矩阵A \begin{pmatrix} 1i 2 \\ 3i 4-2i \end{pmatrix}那它的共轭矩阵 \bar{A} 就是\bar{A} \begin{pmatrix} 1-i 2 \\ -3i 42i \end{pmatrix}注意了共轭后矩阵的行列结构完全没有变化你原来在哪个位置共轭后还在哪个位置。这一点很关键因为后续你把共轭和转置组合使用的时候操作顺序会直接影响最终结果。1.2 转置沿着主对角线翻折转置操作大家比较熟就是把矩阵的行列互换。A 的第 i 行第 j 列元素变成 A^T 的第 j 行第 i 列元素。这是纯几何意义上的翻折不涉及任何数值上的变换。实数矩阵的转置很直观列向量变行向量行向量变列向量矩阵形状从 m×n 变成 n×m。但一旦矩阵里的元素是复数事情就微妙了。你光把位置换了元素本身如果还带着虚部计算内积、模长这些东西的时候就会出问题。举个最简单的例子一个复数向量 v (1i, 2-i)如果直接算 v^T v得到的是 (1i)^2 (2-i)^2 2i 3 - 4i 3 - 2i这是一个复数根本不可能代表这个向量的长度的平方因为长度的平方应该是非负实数。问题出在哪出在单纯的转置不会对虚部做任何处理它把向量和对偶向量混为一谈了。这时候自然就引出了共轭转置。1.3 为什么复数域必须引入共轭转置实数域里转置就已经足够完美了因为实数的共轭等于它自己共轭转置和转置没区别。复数域里不一样为了定义长度、内积、正交这些概念你必须让一个向量的某种对称形式和自己作用之后得到一个非负实数。所以就有了共轭转置 A^H (\bar{A})^T \overline{A^T}。先对每个元素取共轭然后再转置两步缺一不可。这样定义之后v^H v |1i|^2 |2-i|^2 2 5 7是一个实实在在的正实数这才配叫模长的平方。从更深层的几何意义看共轭转置描述的是希尔伯特空间里的对偶映射它是把一个向量映射到其对偶空间的那个桥梁。很多人学量子力学的时候不理解 bra 向量为什么是 ket 向量的共轭转置其实就是这里埋下的伏笔。2. 共轭转置的性质逐个拆解别背公式要能随手推2.1 基本运算规则线性、反序、幂次共轭转置有一组非常漂亮的性质你不需要死记硬背只需要记住一条核心原则每一项操作在取共轭转置后都要翻个跟头。(A^H)^H A即共轭转置是自身的逆运算做两次就回到原点。(A B)^H A^H B^H加法分配没啥好说的。(kA)^H \bar{k} A^H注意常数要取共轭这是初学者最容易漏的地方。(AB)^H B^H A^H这是最重要的反序律乘积的共轭转置等于每个因子先共轭转置再反过来相乘。为什么会有反序律你可以从维度变化的角度理解。A 是 m×nB 是 n×p那么 AB 是 m×p它的共轭转置应该是 p×m。A^H 是 n×mB^H 是 p×n你如果按 A^H B^H 来算维度是 n×p完全对不上。只有 B^H A^H 才能得到 p×m维度才正确。所以不是约定俗成是维度推导逼着你必须反序。在量子力学中这个反序律对应的是两个算符的乘积取厄米共轭后不仅每个算符要取共轭它们的顺序还要互换。这在推导测不准关系的时候特别重要你要是把顺序搞反了推出来的对易子符号就完全错了。2.2 共轭转置与转置之间的关系搞清楚 A^H 和 A^T 的区别是理解后续内容的基础。一个常见的误区是觉得 A^T 就是 A^H 在实数域的退化版本这个说法不算错但会掩盖一个重要事实在复数域转置本身仍然有它的用途比如代数余子式、对称性分析但它不构成希尔伯特空间中的内积结构。更具体的关系式是A^H \overline{A^T} \overline{A}^T。你可以先转置再取共轭也可以先取共轭再转置结果是同一个矩阵。这个交换性说明了共轭和转置在操作层面互不干扰因为它们一个作用于数值一个作用于排列结构。还有一个容易被忽略的性质rank(A^H) rank(A) rank(A^T)。共轭转置不会改变矩阵的秩。理解这个对后面判断矩阵是否可逆、理解零空间的结构很有帮助。2.3 特殊矩阵的判定厄米矩阵与酉矩阵引入共轭转置之后就能定义几类特别重要的特殊矩阵。如果 A^H A那 A 就叫厄米矩阵也叫自共轭矩阵。注意它跟对称矩阵可不是一回事。对称矩阵要求 A^T A而厄米矩阵要求的是取共轭转置之后等于自己。一个复矩阵可以是对称的但不是厄米的也可以是厄米的但不对称。举个例子B \begin{pmatrix} 2 i \\ i 1 \end{pmatrix}它的转置 B^T \begin{pmatrix} 2 i \\ i 1 \end{pmatrix}没错它是对称的因为副对角线两个 i 位置互换后还是 i。但它的共轭转置 B^H \begin{pmatrix} 2 -i \\ -i 1 \end{pmatrix}不等于 B所以它不是厄米矩阵。反过来矩阵 C \begin{pmatrix} 2 i \\ -i 1 \end{pmatrix} 是厄米的但明显不对称。厄米矩阵最重要的是性质它的所有特征值都是实数且特征向量可以选成彼此正交的。这在量子力学里直接对应着可观测量的本征值必须是实数所以一切可观测量对应的算符都是厄米算符。如果 A^H A A A^H I那 A 就是酉矩阵。酉矩阵的每一列都是互相正交的单位向量它的共轭转置就是它的逆矩阵。酉矩阵在几何上对应的是复空间中的旋转或反射它保持内积和长度不变。做信号处理时DFT 矩阵经过归一化之后就是酉矩阵这是傅里叶变换能保持能量守恒的代数根源。2.4 从共轭转置到正规矩阵前面说的厄米矩阵和酉矩阵其实都是正规矩阵的特例。正规矩阵的定义是 A^H A A A^H。注意这个等式说的是 A 与自己的共轭转置可交换。你可能觉得这个条件莫名其妙的为什么单独拎出来定义一类矩阵因为正规矩阵有一个极其重要的谱定理任何正规矩阵都可以被酉对角化也就是存在酉矩阵 U使得 U^H A U 是对角矩阵。这意味着 A 的所有特征向量可以组成一个完备正交基。厄米矩阵满足这个条件酉矩阵也满足这个条件但还有许多既不是厄米也不是酉的矩阵同样满足。谱定理是矩阵对角化问题的终极答案而掌握共轭转置的运算规则是理解谱定理的第一步。3. 逆矩阵的性质从定义出发把所有规则串起来3.1 可逆的判定条件别只盯着行列式判断一个矩阵可不可逆最直观的结论是行列式非零但实际操作中这个标准往往不好使。矩阵一大了行列式计算量爆炸而且数值上很容易出现病态。我更推荐用秩来判断一个方阵可逆当且仅当 rank(A) n也就是满秩。但还有一个更贴近实际操作的理解方式矩阵 A 可逆等价于它的零空间里只有零向量等价于它的所有特征值都不为零等价于方程 Ax b 对任意 b 都有唯一解。这些条件在不同的问题里各有方便之处。比如牛顿迭代法里判断雅可比矩阵是否可逆本质上就是判断线性化系统是否有唯一解。还有一点必须强调复数矩阵和实数矩阵的可逆性判定思路一致但一旦涉及共轭转置很多问题的形式会发生改变。比如 A^H A 的可逆性通常不直接等于 A 的可逆性。A 是 m×n 列满秩时A^H A 作为 n×n 方阵是可逆的但 A 本身根本不是方阵谈不上可逆不可逆。这个性质在最小二乘问题里被反复用到。3.2 逆矩阵的基本运算法则逆矩阵的运算法则跟共轭转置很像也是一个反序律主导的世界(A^{-1})^{-1} A(AB)^{-1} B^{-1} A^{-1}(kA)^{-1} \frac{1}{k} A^{-1}(A^T)^{-1} (A^{-1})^T(A^H)^{-1} (A^{-1})^H最后一条值得特别说明一个矩阵的共轭转置的逆等价于先求逆再取共轭转置。这两种操作是可交换的。在实际数值计算中如果你已经算出了 A^{-1}那么 A 的共轭转置的逆可以直接用 (A^{-1})^H 得到省去一次完整的求逆运算这是个很实用的优化点。反序律 (AB)^{-1} B^{-1} A^{-1} 的直观理解可以从穿鞋脱袜子的类比出发——你早上先穿袜子再穿鞋晚上脱的时候必须先脱鞋再脱袜子顺序正好反过来。矩阵乘法是函数的复合求逆就是撤销这个复合过程自然后发生的操作要先被撤销。3.3 共轭转置和逆矩阵联合作用的场景当矩阵既需要共轭转置又需要求逆的时候有一类特殊矩阵会脱颖而出——酉矩阵。前面说了酉矩阵满足 U^H U U U^H I这就意味着 U^{-1} U^H。求逆和共轭转置在酉矩阵上完全统一了这是多么漂亮的性质。在数值线性代数里这个性质是无数算法的基石。比如 QR 分解中 Q 是酉矩阵所以 Q^{-1} Q^H计算量直接从 O(n^3) 降到 O(n^2)。再比如 SVD 分解中的 U 和 V 都是酉矩阵求它们的逆不需要做高斯消元直接共轭转置就行。还有一个非常实用的推论对于任意矩阵 A矩阵 A^H A 是厄米矩阵并且如果 A 列满秩则 A^H A 可逆且其逆矩阵也是厄米矩阵。你可以自己验证一下 (A^H A)^{-1} 取共轭转置((A^H A)^{-1})^H ((A^H A)^H)^{-1} (A^H A)^{-1}确实是厄米的。这个性质让很多推导变得干净利落。4. 运算交互规则什么时候能换序什么时候绝对不能4.1 转置、共轭、求逆三个操作互相交换的完整表我整理了一个速查表顺便标注了每个交换律是否成立。这张表我自己用了很多年每次不确定的时候就拿它来验证。操作组合是否可交换具体规则先转置再共轭 vs 先共轭再转置可以\overline{A^T} \overline{A}^T A^H先求逆再转置 vs 先转置再求逆可以(A^{-1})^T (A^T)^{-1}先求逆再共轭 vs 先共轭再求逆可以\overline{A^{-1}} \overline{A}^{-1}先求逆再共轭转置 vs 先共轭转置再求逆可以(A^{-1})^H (A^H)^{-1}先求逆再求和 vs 先求和再求逆不可以(AB)^{-1} \neq A^{-1}B^{-1}先转置再相乘 vs 先相乘再转置反序(AB)^T B^T A^T先共轭转置再相乘 vs 先相乘再共轭转置反序(AB)^H B^H A^H可以看到单个矩阵的转置、共轭、求逆三个操作之间是两两可交换的这是由线性代数基本结构的对称性决定的。但只要涉及两个矩阵的加法或乘法顺序问题就立刻出现尤其是乘法必须要反序。4.2 最容易翻车的三个地方我这些年辅导过不少学生发现反序律本身不算难记难的是把它应用到具体问题里时不自觉地把顺序写错了。三个最容易翻车的地方必须提醒你。第一个是常数的共轭。对 kA 做共轭转置时结果是 \bar{k} A^H 而不是 k A^H。如果你用的是实数系数那没事但复数系数就麻烦了。比如 k i那么 (iA)^H -i A^H符号差出来就得回去检查半天。第二个是乘积的转置和共轭转置混淆。A^T B^T 虽然维度上跟 (AB)^T 一样但结果完全不同因为 (AB)^T B^T A^T。很多人第一步就写对了 AB 的转置等于 B^T A^T但后面算 (A^T B^T) 的时候就忘了它等于 BA而不是 AB。第三个是逆矩阵的线性性误区。E (AB)^{-1} 想当然写成 A^{-1} B^{-1} 的人不在少数。正确写法是 B^{-1} A^{-1}。如果你实在记不住可以这样验证把 (B^{-1} A^{-1})(AB) 展开括号怎么配对B^{-1} A^{-1} A B B^{-1} (A^{-1} A) B B^{-1} I B I。这样一推就明白了顺序错了算出来根本得不了单位阵。4.3 分块矩阵场景下的交互规则实际工程中分块矩阵很常见比如把矩阵分成四块研究系统方程的时候。分块矩阵的转置、共轭转置和逆比普通矩阵更容易出错因为你不仅要处理每个子块的变换还要处理子块位置的移动。对于分块矩阵 M \begin{pmatrix} A B \\ C D \end{pmatrix}它的转置是 M^T \begin{pmatrix} A^T C^T \\ B^T D^T \end{pmatrix}子块位置沿主对角线翻折了。它的共轭转置则是每个子块取共轭转置同时子块位置也翻折即 M^H \begin{pmatrix} A^H C^H \\ B^H D^H \end{pmatrix}。分块矩阵求逆就更麻烦了一般不用一次性的公式而是用 Schur 补来化简。比如当分块矩阵是块三角的时候逆矩阵能写成一个简洁的上三角形式。这里有个实用技巧如果一个分块矩阵形如 \begin{pmatrix} A B \\ 0 D \end{pmatrix}且 A 和 D 都可逆那它的逆就是 \begin{pmatrix} A^{-1} -A^{-1} B D^{-1} \\ 0 D^{-1} \end{pmatrix}。这个形式在推导 Kalman 滤波的时候会反复出现先记下来以后能省不少事。5. 这些性质在实际场景里到底怎么用5.1 最小二乘问题中的决定性规则最小二乘问题可以说是工程里出现频率最高的线性代数问题。给定一个 m×n 的矩阵 A通常 m n和观测向量 b要找到使 ||Ax - b||_2 最小的 x。严格来说矩阵不可逆因为方程个数多于未知数A 不可能是方阵。解法就是用 A^H 去乘方程两边得到 A^H A x A^H b这个方程叫正规方程。A^H A 是 n×n 的方阵A 列满秩时可逆于是解就是 x (A^H A)^{-1} A^H b。这里就用到了前面所有性质的大集合A^H A 是厄米矩阵所以可对角化而且特征值非负列满秩时它可逆且逆矩阵也是厄米的而 (A^H A)^{-1} A^H 这个整体可以看作 A 的伪逆。整个推导链环环相扣你要是对性质不熟根本想不到还要考虑 A^H A 的可逆性前提。实际数值计算中大家都用 QR 分解或者 SVD 来解最小二乘因为直接求 (A^H A)^{-1} 数值稳定性差但理解正规方程的代数结构依然是基础。5.2 量子力学中 bra-ket 记号背后的代数本质说句实话很多学量子力学的人一开始都会被狄拉克记号搞晕但其实它本质上就是共轭转置的记号化表达。ket 向量 |v\rangle 就是一个列向量bra 向量 \langle v| 是它的共轭转置即 \langle v| |v\rangle^H。这样一来内积操作 \langle u | v \rangle 其实就是 u^H v而外积 |v\rangle \langle u| 就是 v u^H。你可能会问为什么不直接写向量和矩阵非要搞一套新记号因为量子力学涉及无穷维希尔伯特空间普通的有限维向量记号在概念上不够用bra-ket 把状态和对偶状态的抽象关系表达得更加清晰。也正是因为有了 (\alpha A)^H \bar{\alpha} A^H 这条性质在计算期望值 \langle \psi | O | \psi \rangle 时如果 O 是厄米算符这个期望值必然是实数。这就是整个量子力学测量理论的代数根基。学到这里回头看共轭转置的性质会有一种豁然开朗的感觉。5.3 信号处理与数据科学中的共轭对称性信号处理里DFT 矩阵 F 满足 F^{-1} \frac{1}{N} F^H也就是归一化后的 DFT 矩阵是酉矩阵。这个性质保证了帕塞瓦尔定理成立信号在时域和频域的能量相等。如果没有酉性你就不能随便在频域里做滤波操作然后逆变换回时域因为变换本身会引入能量畸变。数据科学里的主成分分析PCA用到的也是协方差矩阵 X^H X或 X^T X它天然是厄米矩阵特征值全为实数且特征向量构成正交基。你会发现从图像处理到推荐系统几乎所有降维算法最终都会归结到对某个厄米矩阵做特征分解。这些算法之所以稳定原因不在于数据多么干净而在于厄米矩阵的代数结构本身保证了良好的数值行为。6. 容易翻车的现场常见错误和排查思路6.1 正定性判定只顾着对称忘了共轭一个实数矩阵是正定的要求它是对称的且所有特征值为正。但复数矩阵的正定要求是厄米的且所有特征值为正。你检查一个复矩阵看起来对称就判断它正定那就大错特错了。前面举的矩阵 B \begin{pmatrix} 2 i \\ i 1 \end{pmatrix} 是对称但不是厄米的它的特征值甚至可能是复数根本谈不上正定。正确做法是检查 A^H 和 A 是否相等而不是 A^T 和 A 是否相等。6.2 数值库里的共轭转置函数选择Python NumPy 里有几个很接近的函数A.T 返回转置A.conj() 返回共轭A.getH() 返回共轭转置还有一个 A.H 在 numpy 新版本里也能用。很多人写代码时图省事直接用 A.T如果矩阵是复数整个计算就全错了。我踩过一次坑是忘记对复数矩阵的向量做共轭转置结果算出来的能量是个复数自己盯着屏幕看了半天没反应过来。后来只要是涉及复数数据的矩阵乘法我都先写一个断言验证一下 A.H 和 A.conj().T 是否一致确保没有搞混。6.3 矩阵不可逆的隐蔽情形有一类问题特别隐蔽A 本身是可逆的但 A^H A 的条件数变得极大导致求逆在数值上不可靠。条件数是最大奇异值和最小奇异值的比值如果这个比值达到 10^{16} 这个量级那逆矩阵的结果基本就是废的。这时就算理论上可逆实际算出来也是错的。遇到这种情况不能硬求逆得考虑正则化方法比如岭回归里用的就是 (A^H A \lambda I)^{-1} A^H b加一个 \lambda I 之后把最小的奇异值垫高条件数大幅度下降。这也是为什么你看机器学习教材里总在强调正则化不光是防止过拟合还有数值稳定性这个实际原因。6.4 排查清单我给自己总结了一个核对清单每次推导矩阵公式或者写矩阵代码之前都会过一遍复数矩阵是否用了共轭转置而不是普通转置常数是否取了共轭乘法取共轭转置/逆时因子顺序是否反了分块矩阵转置时子块位置是否同时翻折了是否在矩阵可逆的充分条件都满足时才用了逆矩阵数值结果如果有复数残留是不是没有用共轭转置导致的这套清单确实救过我很多次。有一次我在实现一个波束形成算法时推导了好久的公式怎么调试都不对最后就是靠第二条清单项发现的某个复增益在共轭转置时忘了取共轭导致波束指向偏了一个角度。7. 我自己的一点体会这些性质单独拎出来看都不难难的是它们交织在一起的时候能不能快速反应。我个人的方法是不要死记公式而是把每个公式都还原成为什么必须这样的逻辑推导。反序律是因为维度和复合顺序决定的共轭转置是为了定义内积才引入的酉矩阵是这两个概念碰撞出的自然产物。如果你能把这张网织起来后面学矩阵分解、特征值问题、优化算法都会顺畅非常多。这些看似基础的运算性质实际上是整个高等线性代数大厦的地基。地基稳了往上盖楼才不心虚。