求解线性方程组(3)

矩阵的伪逆

这里所介绍的伪逆是Moore-Penrose逆矩阵,其定义为:给定矩阵ARmnA\in R^{m*n},如果矩阵ARnmA^{\dagger}\in R^{n*m}满足AAA=AAA^{\dagger}A=A,且存在两个矩阵URnn,VRmmU\in R^{n*n},V\in R^{m*m}使得

A=UAT,A=ATVA^{\dagger}=UA^{T},A^{\dagger}=A^{T}V

那么则称AA^{\dagger}是矩阵AA伪逆,可以通过证明得到,矩阵的伪逆是唯一的。

对于矩阵ARmn,mnA\in R^{m*n},m\ge nrank(A)=nrank(A)=n,可以根据以上定义验证得到AA的伪逆为

A=(ATA)1ATA^{\dagger}=(A^{T}A)^{-1}A^{T}

对于矩阵ARmn,mnA\in R^{m*n},m\le nrank(A)=mrank(A)=m,同样根据以上定义验证得到AA的伪逆为

A=AT(AAT)1A^{\dagger}=A^{T}(AA^{T})^{-1}

以上两种情况是当矩阵为列满秩或者行满秩情况下的伪逆,而对于一般矩阵ARmn,rank(A)=r,rmin(m,n)A\in R^{m*n},rank(A)=r,r\le min(m,n),我们可以采用满秩分解的方法来求得其伪逆。

对于任意矩阵ARmn,rank(A)=r,rmin(m,n)A\in R^{m*n},rank(A)=r,r\le min(m,n),都可以将其分解为一个行满秩矩阵和列满秩矩阵的乘积: 即A=BC,BRmr,cRrn,rank(A)=rank(B)=rank(C)=rA=BC,B\in R^{m*r},c\in R^{r*n},rank(A)=rank(B)=rank(C)=r

可以通过证明得到: A=CBA^{\dagger}=C^{\dagger}B^{\dagger},而其中B=(BTB)1BT,C=CT(CCT)1B^{\dagger}=(B^{T}B)^{-1}B^{T},C^{\dagger}=C^{T}(CC^{T})^{-1},即为一般矩阵的伪逆求法。

##一般情况下线性方程组的解法 某线性方程组为Ax=b,ARmn,rank(A)=rAx=b,A\in R^{m*n},rank(A)=r,向量x=Abx^{*}=A^{\dagger}b可在空间RnR^{n}中最小化Axb2||Ax-b||^{2};而且在RnR^{n}中所有能够最小化Axb2||Ax-b||^{2}的向量中,向量x=Abx^{*}=A^{\dagger}b的范数最小,并且是唯一的。

r=mr=m时,AA是行满秩矩阵,此时x=Ab=AT(AAT)1bx^{*}=A^{\dagger}b=A^{T}(AA^{T})^{-1}b,即为方程组Ax=bAx=b最小范数解

r=nr=n时,AA是列满秩矩阵,此时x=Ab=(ATA)1ATbx^{*}=A^{\dagger}b=(A^{T}A)^{-1}A^{T}b,即为方程组Ax=bAx=b最小二乘解