如何求解矩阵方程$X^{T}AX=B$中的非方阵$X$?
好问题!这个方程属于矩阵方程里的二次型匹配问题,因为$m>n$,$X$是长方矩阵,解的存在性和构造方法得先从方程的结构和矩阵的性质入手,我给你拆解一下:
首先明确解的存在性前提
- 首先,左边$X^T A X$的转置是$X^T A^T X$,所以要等于$B$的话,$B$必须是对称矩阵,否则直接无解。
- 其次,根据Sylvester惯性定理,二次型$X^T A X$的惯性指数(正、负、零特征值的个数)必须和$B$完全匹配。举个常见的例子:如果$A$是正定矩阵(所有特征值>0),那$B$必须是半正定矩阵(所有特征值≥0),否则没有解;如果$A$是不定矩阵,那$B$的正、负特征值个数不能超过$A$的对应个数。
构造解的简洁方法(基于矩阵分解)
最常用的思路是通过矩阵分解把原方程转化为更容易求解的形式,这里分两种常见场景:
场景1:A是对称正定矩阵
这是最容易处理的情况,步骤清晰明了:
- 对$A$做Cholesky分解:$A = L L^T$,其中$L$是$m×m$的下三角正定矩阵(这种分解在正定矩阵下唯一存在)。
- 原方程转化为:$(L^T X)^T (L^T X) = B$。令$Y = L^T X$($Y$是$m×n$矩阵),问题瞬间简化为求$Y$满足$Y^T Y = B$。
- 对$B$做SVD分解:$B = U \Sigma U^T$,其中$U$是$n×n$正交矩阵,$\Sigma$是$n×n$对角矩阵,对角元是$B$的非负特征值$\sigma_1, \sigma_2, ..., \sigma_n$。
- 构造$Y$:取$Y = \begin{bmatrix} U \Sigma^{1/2} U^T \ 0_{(m-n)×n} \end{bmatrix}$,其中$\Sigma{1/2}$是$\Sigma$的元素开平方后的对角矩阵。你可以验证一下:$YT Y = (U \Sigma^{1/2} UT)T (U \Sigma^{1/2} U^T) = U \Sigma^{1/2} U^T U \Sigma^{1/2} U^T = U \Sigma U^T = B$,完全符合要求。
- 最后求$X$:因为$Y = L^T X$,所以$X = (LT){-1} Y = (L{-1})T Y$。$L$是下三角阵,求逆非常高效,不用算全矩阵逆。
场景2:A是对称矩阵(不一定正定)
这时候用特征分解更灵活:
- 对$A$做特征分解:$A = Q \Lambda Q^T$,其中$Q$是$m×m$正交矩阵,$\Lambda$是对角矩阵,对角元是$A$的特征值$\lambda_1, \lambda_2, ..., \lambda_m$。
- 令$Z = Q^T X$($Z$是$m×n$矩阵),原方程转化为:$Z^T \Lambda Z = B$。
- 把$\Lambda$拆成$\Lambda = \Lambda_+ - \Lambda_- + \Lambda_0$,其中$\Lambda_+$是正特征值的对角阵,$\Lambda_-$是负特征值的绝对值对角阵,$\Lambda_0$是零特征值对角阵。对应的$Z$也分成$Z = [Z_+^T, Z_-^T, Z_0T]T$,分别对应$\Lambda_+$、$\Lambda_-$、$\Lambda_0$的行。
- 方程变为:$Z_+^T \Lambda_+ Z_+ - Z_-^T \Lambda_- Z_- = B$。这时候必须满足:$B$的正特征值个数≤$A$的正特征值个数,负特征值个数≤$A$的负特征值个数,否则无解。
- 构造$Z_+$和$Z_-$:先对$B$做特征分解$B = U \Sigma U^T$,其中$\Sigma = \Sigma_+ - \Sigma_-$($\Sigma_+$是正特征值对角阵,$\Sigma_-$是负特征值绝对值对角阵)。令$Z_+ = \Lambda_+^{-1/2} U \Sigma_+^{1/2}$,$Z_- = \Lambda_-^{-1/2} U \Sigma_-^{1/2}$,$Z_0$可以取任意$k×n$矩阵($k$是$A$的零特征值个数)。
- 最后$X = Q Z$,把$Z_+$、$Z_-$、$Z_0$组合起来代入即可。
补充:解的不唯一性
因为$m>n$,$X$是长方矩阵,所以解不是唯一的。比如在场景1中,$Y$的后面$m-n$行不一定全为零,只要满足$Y^T Y = B$就行;甚至可以在$Y$左边乘一个$m×m$的正交矩阵$O$,因为$(O Y)^T (O Y) = Y^T O^T O Y = Y^T Y = B$,所以$X = (L{-1})T O Y$也是合法解。
内容的提问来源于stack exchange,提问作者Mathnoob
相关产品推荐
相关产品推荐

