矩阵|矩阵分析与应用+张贤达

第一章 矩阵与线性方程组(二十三) 1. Moore-Penrose逆矩阵的计算 假定 m × n m\times n m×n矩阵 A A A的秩为 r r r,其中, r ≤ m i n ( m , n ) r≤min(m,n) r≤min(m,n)。下面介绍求 M o o r e ? P e n r o s e Moore-Penrose Moore?Penrose逆矩阵 A + A^+ A+的四种方法。
1.1 方程求解法
Penrose在定义广义逆矩阵 A + A^+ A+时,提出了计算 A + A^+ A+的两步法如下:
第一步:分别求解矩阵方程
A A H X H = A AA^HX^H=A AAHXH=A
A H A Y = A H A^HAY=A^H AHAY=AH
得到 X H X^H XH和 Y Y Y。
第二步:计算广义逆矩阵 A + = X A Y A^+=XAY A+=XAY。
若矩阵 A A A为 H e r m i t i a n Hermitian Hermitian矩阵,则Penrose的上述方法可以简化,因为以上两个矩阵方程等价为一个矩阵方程
A 2 X H = A , 若 A H = A A^2X^H=A, 若A^H =A A2XH=A,若AH=A
并且Moore-Penrose逆矩阵可以计算为
A + = X A X H , 若 A H = A A^+=XAX^H, 若A^H=A A+=XAXH,若AH=A
虽然 A A A一般不会是Hermitian矩阵,但是 A H A A^HA AHA和 A A H AA^H AAH分别是Hermitian矩阵。
总结以上讨论,可以得到计算Moore-Penrose逆矩阵的两种算法如下
算法1
步骤1 计算矩阵 B = A A H B=AA^H B=AAH。
步骤2 求解矩阵方程 B 2 X H = B B^2X^H=B B2XH=B得到矩阵 X H X^H XH。
步骤3 计算 B B B的Moore-Penrose逆矩阵 B + = ( A A H ) + = X B X H B^+=(AA^H)^+=XBX^H B+=(AAH)+=XBXH
步骤4 计算矩阵 A A A的Moore-Penrose逆矩阵 A + = A H ( A A H ) + = A H B + A^+=A^H(AA^H)^+=A^HB^+ A+=AH(AAH)+=AHB+
算法2
步骤1 计算矩阵 B = A H A B=A^HA B=AHA。
步骤2 求解矩阵方程 B 2 x H = B B^2x^H=B B2xH=B得到矩阵 X H X^H XH。
步骤3 计算 B B B的Moore-Penrose逆矩阵 B + = ( A H A ) + = X B X H B^+=(A^HA)^+=XBX^H B+=(AHA)+=XBXH。
步骤4 计算矩阵 A A A的Moor-Penrose逆矩阵 A + = ( A H A ) + A H = B + A H A^+=(A^HA)^+A^H=B^+A^H A+=(AHA)+AH=B+AH
若矩阵 A m × n A_{m\times n} Am×n?的列数大于行数,则矩阵乘积 A A H AA^H AAH的维数比 A H A A^HA AHA的维数小,故选择算法1可花费较少的计算量。反之,若 A A A的行数大于列数,则选择算法2
举例
令矩阵
A = [ 1 0 ? 1 2 ? 1 1 0 1 1 ? 1 0 1 1 1 0 1 ? 1 0 ] A= \begin{bmatrix} 1 & 0 & -1 &2& -1 & 1\\ 0 & 1 & 1 &-1& 0 & 1\\ 1 & 1 & 0 & 1& -1 & 0 \end{bmatrix} A=? ??101?011??110?2?11??10?1?110?? ??
由于其列数大于行数,故选择算法1。
(1)计算 3 × 3 3\times 3 3×3矩阵 A A H AA^H AAH,得
A A H = [ 8 ? 2 3 ? 2 4 0 4 0 4 ] , ( A A H ) 2 = [ 84 ? 24 48 ? 24 20 ? 8 48 ? 8 32 ] AA^H= \begin{bmatrix} 8 & -2 & 3 \\ -2 & 4 & 0 \\ 4 & 0 & 4 \end{bmatrix},(AA^H)^2= \begin{bmatrix} 84 & -24 & 48 \\ -24 & 20 & -8 \\ 48 & -8 & 32 \end{bmatrix} AAH=? ??8?24??240?304?? ??,(AAH)2=? ??84?2448??2420?8?48?832?? ??
(2)求解 ( A A H ) 2 X H = A A H (AA^H)^2X^H=AA^H (AAH)2XH=AAH,等价求解以下三个方程:
[ 84 ? 24 48 ? 24 20 ? 8 48 ? 8 32 ] [ x 1 x 2 x 3 ] = [ 8 ? 2 4 ] ? [ x 1 x 2 x 3 ] = 1 6 [ 2 1 ? 1 ] \begin{bmatrix} 84 & -24 & 48 \\ -24 & 20 & -8 \\ 48 & -8 & 32 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix}= \begin{bmatrix} 8 \\ -2\\ 4 \end{bmatrix} \Rightarrow \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix}=\frac{1}{6}\begin{bmatrix} 2 \\ 1 \\ -1 \end{bmatrix} ? ??84?2448??2420?8?48?832?? ??? ??x1?x2?x3??? ??=? ??8?24?? ???? ??x1?x2?x3??? ??=61?? ??21?1?? ??
[ 84 ? 24 48 ? 24 20 ? 8 48 ? 8 32 ] [ x 1 x 2 x 3 ] = [ ? 2 4 0 ] ? [ x 1 x 2 x 3 ] = 1 6 [ 1 2 ? 1 ] \begin{bmatrix} 84 & -24 & 48 \\ -24 & 20 & -8 \\ 48 & -8 & 32 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix}= \begin{bmatrix} -2 \\ 4\\ 0 \end{bmatrix} \Rightarrow \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix}=\frac{1}{6}\begin{bmatrix} 1 \\ 2 \\ -1 \end{bmatrix} ? ??84?2448??2420?8?48?832?? ??? ??x1?x2?x3??? ??=? ???240?? ???? ??x1?x2?x3??? ??=61?? ??12?1?? ??
[ 84 ? 24 48 ? 24 20 ? 8 48 ? 8 32 ] [ x 1 x 2 x 3 ] = [ 4 0 4 ] ? [ x 1 x 2 x 3 ] = 1 12 [ ? 4 ? 2 7 ] \begin{bmatrix} 84 & -24 & 48 \\ -24 & 20 & -8 \\ 48 & -8 & 32 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix}= \begin{bmatrix} 4 \\ 0\\ 4 \end{bmatrix} \Rightarrow \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix}=\frac{1}{12}\begin{bmatrix} -4 \\ -2 \\ 7 \end{bmatrix} ? ??84?2448??2420?8?48?832?? ??? ??x1?x2?x3??? ??=? ??404?? ???? ??x1?x2?x3??? ??=121?? ???4?27?? ??

X H = 1 12 [ 4 2 ? 4 2 4 ? 2 ? 4 ? 2 7 ] X^H= \frac{1}{12}\begin{bmatrix} 4 & 2 & -4 \\ 2 & 4 & -2 \\ -4 & -2 & 7 \end{bmatrix} XH=121?? ??42?4?24?2??4?27?? ??
(3)计算
( A A H ) + = X ( A A H ) X H = 1 12 [ 4 2 ? 4 2 4 ? 2 ? 4 ? 2 7 ] (AA^H)^+=X(AA^H)X^H= \frac{1}{12}\begin{bmatrix} 4 & 2 & -4 \\ 2 & 4 & -2 \\ -4 & -2 & 7 \end{bmatrix} (AAH)+=X(AAH)XH=121?? ??42?4?24?2??4?27?? ??
(4)矩阵A的Moore-Penrose逆矩阵由
A + = A H ( A A H ) + = 1 12 [ 1 0 1 0 1 1 ? 1 1 0 2 ? 1 1 ? 1 0 ? 1 1 1 0 ] [ 4 2 ? 4 2 4 ? 2 ? 4 ? 2 7 ] = 1 12 [ 0 0 3 ? 2 2 5 ? 2 2 2 2 ? 2 1 0 0 ? 3 6 6 ? 6 ] A^+=A^H(AA^H)^+=\frac{1}{12}\begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \\ -1 & 1 & 0\\ 2 & -1 & 1 \\ -1 & 0 & -1 \\ 1 & 1 & 0 \end{bmatrix} \begin{bmatrix} 4 & 2 & -4 \\ 2 & 4 & -2 \\ -4 & -2 & 7 \end{bmatrix} =\frac{1}{12}\begin{bmatrix} 0 & 0 & 3 \\ -2 & 2 &5 \\ -2 & 2 & 2\\ 2 & -2 & 1 \\ 0 & 0 & -3 \\ 6 & 6 & -6 \end{bmatrix} A+=AH(AAH)+=121?? ??10?12?11?011?101?1101?10?? ??? ??42?4?24?2??4?27?? ??=121?? ??0?2?2206?022?206?3521?3?6?? ??
给出。容易验证, A + A^+ A+满足Moore-Penrose逆矩阵的四个条件。
1.2 KL 分解法
若 A = K L A=KL A=KL是矩阵 A m × n A_{m\times n} Am×n?的满秩分解,则
G = L H ( K H A L H ) ? 1 K H G=L^H(K^HAL^H)^{-1}K^H G=LH(KHALH)?1KH
G G G是 A m × n A_{m\times n} Am×n?的Moore-Penrose逆矩阵。
1.3 递推法
对矩阵 A m × n A_{m\times n} Am×n?的前 k k k列进行分块 A k = [ A k ? 1 , a k ] A_k=[A_{k-1},a_k] Ak?=[Ak?1?,ak?],其中, a k a_k ak?是矩阵 A A A的第 k k k列。于是,分块矩阵 A k + A_k^+ Ak+?的Moore-Penrose逆矩阵 A A A可以由 A A A递推计算。当递推到 k = n k=n k=n时,即获得矩阵 A A A的Moore-Penrose逆矩阵 A + A^+ A+。
算法3 (求Moore-Penrose逆矩阵的列递推算法)
初始值 A 1 + = a 1 + = ( a 1 H a 1 ) ? 1 a 1 H A_1^+=a_1^+=(a_1^Ha_1)^{-1}a_1^H A1+?=a1+?=(a1H?a1?)?1a1H?。
递推
令 k = 2 , 3 , . . . , n k=2,3,...,n k=2,3,...,n,进行以下计算:
矩阵|矩阵分析与应用+张贤达
文章图片

上述列递推算法原则上适用于所有矩阵,但是当矩阵 A A A的行比列少的时候,为了减少递推次数,宜先使用列递推算法求出 A H A^H AH的Moore-Penrose逆矩阵 ( A H ) + = A H + (A^H)^+=A^{H+} (AH)+=AH+,再利用KaTeX parse error: Double superscript at position 9: A^+=(A^H^?+)^H之关系得到 A + A^+ A+。
举例
A = [ 1 0 ? 1 ? 1 1 ? 1 0 ? 1 2 1 1 1 ] A= \begin{bmatrix} 1 & 0 & -1 \\ -1 & 1 & -1 \\ 0 & -1 & 2\\ 1 & 1 & 1 \end{bmatrix} A=? ??1?101?01?11??1?121?? ??
的Moore-Penrose逆矩阵。

(1)令 A 2 = [ A 1 , a 2 ] A_2=[A_1,a_2] A2?=[A1?,a2?],其中
A 1 = a 1 = [ 1 ? 1 01 ] , a 2 = [ 0 1 ? 1 1 ] A_1=a_1= \begin{bmatrix} 1\\ -1 \\ 0 \ 1 \end{bmatrix} ,a_2= \begin{bmatrix} 0 \\ 1 \\ -1 \\ 1 \end{bmatrix} A1?=a1?=? ??1?10 1?? ??,a2?=? ??01?11?? ??
则有
A 1 + = a 1 + = ( a 1 T a 1 ) ? 1 a 1 T = 1 3 [ 1 , ? 1 , 0 , 1 ] A_1^+ =a_1^+ =(a_1^Ta_1)^{-1}a_1^T =\frac{1}{3}[1,-1,0, 1] A1+?=a1+?=(a1T?a1?)?1a1T?=31?[1,?1,0,1]
(2) d 2 = A 1 + a 2 = 0. d_2=A_1^+a_2=0. d2?=A1+?a2?=0.
(3) b 2 = ( a 2 ? A 1 d 2 ) + = a 2 + = 1 3 0 , 1 , ? 1 , 1 ] T b_2 = (a_2- A_1d_2)^+ =a_2^+=\frac{1}{3}0,1, -1, 1]^T b2?=(a2??A1?d2?)+=a2+?=31?0,1,?1,1]T。
(4)计算
A 2 + = [ A 1 + ? d 2 b 2 b 2 ] = 1 3 [ 1 ? 1 0 1 0 1 ? 1 1 ] A_2^+= \begin{bmatrix} A_1^+-d_2b_2 \\ b_2 \end{bmatrix} =\frac{1}{3} \begin{bmatrix} 1 & -1 & 0 & 1 \\ 0 & 1 & -1 & 1 \end{bmatrix} A2+?=[A1+??d2?b2?b2??]=31?[10??11?0?1?11?]
(5)d 3 = A 2 + a 3 = 1 3 [ 1 ? 2 ] d_3=A_2^+a_3=\frac{1}{3} \begin{bmatrix} 1 \\ -2 \end{bmatrix} d3?=A2+?a3?=31?[1?2?]
(6) b 3 = ( a 3 ? A 2 d 3 ) + = 1 4 [ ? 1 , 0 , 1 , 1 ] T b_3=(a_3-A_2d_3)^+ =\frac{1}{4}[-1,0,1,1]^T b3?=(a3??A2?d3?)+=41?[?1,0,1,1]T。
(7)最后,得到 A A A的Moore-Penrose逆矩阵为
A + = [ A 2 + ? d 3 b 3 b 3 ] = 1 12 [ 5 ? 4 ? 1 3 ? 2 4 ? 2 6 ? 3 0 3 3 ] A^+= \begin{bmatrix} A_2^+-d_3b_3 \\ b_3 \end{bmatrix} =\frac{1}{12} \begin{bmatrix} 5 & -4 &-1 &3 \\ -2 & 4 & -2 & 6 -3 & 0 & 3 & 3 \end{bmatrix} A+=[A2+??d3?b3?b3??]=121?[5?2??44??1?2?36?3?0?3?3?]
1.4 迹方法
已知矩阵 A m × n A_{m\times n} Am×n?的秩为 r o r_o ro?
算法4(求Moore-Penrose逆矩阵的迹方法)
步骤1 计算 B = A A T B=AA^T B=AAT。
步骤2 令 C 1 = I C_1=I C1?=I。
步骤3 计算
C i + 1 = 1 i t r ( C i B ) I ? C i B , i = 1 , 2 … , r ? 1 C_{i+1}=\frac{1}{i}tr(C_iB)I-C_iB,i=1,2…,r-1 Ci+1?=i1?tr(Ci?B)I?Ci?B,i=1,2…,r?1
步骤4 计算
A + = r t r C i B C i A T A^+=\frac{r}{tr{C_iB}}C_iA^T A+=trCi?Br?Ci?AT
注意, C i + 1 B = 0 C_{i+1}B=0 Ci+1?B=0, t r ( C i B ) ≠ 0 tr(C_iB)≠0 tr(Ci?B)=0。
【矩阵|矩阵分析与应用+张贤达】举例
解 易知 r a n k ( A ) = 3 rank(A)=3 rank(A)=3。
(1)计算
B = A T A [ 3 0 1 0 3 ? 2 1 ? 1 7 ] B=A^TA \begin{bmatrix} 3 & 0 &1 \\ 0 & 3 &-2\\ 1 & -1 & 7 \end{bmatrix} B=ATA? ??301?03?1?1?27?? ??
(2) 令
C 1 = [ 1 0 0 0 1 0 0 0 1 ] C_1= \begin{bmatrix} 1 & 0 &0 \\ 0 & 1 &0\\ 0 & 0 &1 \end{bmatrix} C1?=? ??100?010?001?? ??
(3)计算
C 2 = t r ( C 1 B ) I ? C 1 B [ 3 0 1 0 3 ? 2 1 ? 1 7 ] C_2=tr(C_1B)I-C_1B \begin{bmatrix} 3 & 0 &1 \\ 0 & 3 &-2\\ 1 & -1 & 7 \end{bmatrix} C2?=tr(C1?B)I?C1?B? ??301?03?1?1?27?? ??
(4)计算
C 3 = 1 2 t r ( C 2 B ) I ? C 2 B [ 17 ? 2 ? 3 ? 3 20 6 ? 3 6 9 ] C_3=\frac{1}{2}tr(C_2B)I-C_2B \begin{bmatrix} 17 & -2 &-3 \\ -3 & 20 &6\\ -3 & 6 & 9 \end{bmatrix} C3?=21?tr(C2?B)I?C2?B? ??17?3?3??2206??369?? ??
(5)矩阵 A A A的Moore-Penrose逆矩阵
A + = 3 C 3 A T t r ( C 3 B ) = 1 48 [ 20 ? 16 ? 4 12 ? 8 16 ? 8 24 ? 12 0 12 12 ] = 1 12 [ 5 ? 4 ? 1 3 ? 2 4 ? 2 6 ? 3 0 3 3 ] A^+=\frac{3C_3A^T}{tr(C_3B)}=\frac{1}{48} \begin{bmatrix} 20 & -16 &-4 & 12 \\ -8 & 16 &-8 & 24\\ -12 & 0 & 12 & 12 \end{bmatrix} =\frac{1}{12} \begin{bmatrix} 5 & -4 & -1 & 3\\ -2 & 4 -2 & 6\\ -3 & 0& 3 & 3 \end{bmatrix} A+=tr(C3?B)3C3?AT?=481?? ??20?8?12??16160??4?812?122412?? ??=121?? ??5?2?3??44?20??163?33?? ??

    推荐阅读