求解线性方程组(3)

矩阵的伪逆

这里所介绍的伪逆是Moore-Penrose逆矩阵,其定义为:给定矩阵A∈Rm∗nA\in R^{m*n},如果矩阵A†∈Rn∗mA^{\dagger}\in R^{n*m}满足AA†A=AAA^{\dagger}A=A,且存在两个矩阵U∈Rn∗n,V∈Rm∗mU\in R^{n*n},V\in R^{m*m}使得

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

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

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

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

对于矩阵A∈Rm∗n,m≤nA\in R^{m*n},m\le n且rank(A)=mrank(A)=m,同样根据以上定义验证得到AA的伪逆为

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

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

对于任意矩阵A∈Rm∗n,rank(A)=r,r≤min(m,n)A\in R^{m*n},rank(A)=r,r\le min(m,n),都可以将其分解为一个行满秩矩阵和列满秩矩阵的乘积: 即A=BC,B∈Rm∗r,c∈Rr∗n,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†=C†B†A^{\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,A∈Rm∗n,rank(A)=rAx=b,A\in R^{m*n},rank(A)=r,向量x∗=A†bx^{*}=A^{\dagger}b可在空间RnR^{n}中最小化∣∣Ax−b∣∣2||Ax-b||^{2};而且在RnR^{n}中所有能够最小化∣∣Ax−b∣∣2||Ax-b||^{2}的向量中,向量x∗=A†bx^{*}=A^{\dagger}b的范数最小,并且是唯一的。

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

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