• Moore-Penrose 广义逆
千次阅读
2018-02-04 23:22:33

# Moore-Penrose 广义逆

对于任意一个矩阵 Am×nCm×n, A m × n ∈ C m × n , $A_{m \times n} \in \mathbb C ^{m \times n},$ 若矩阵 Xn×mCn×m X n × m ∈ C n × m $X_{n \times m} \in \mathbb C ^{n \times m}$ 满足：
AXA=A(1) (1) A X A = A $AXA = A \tag {1}$
XAX=X(2) (2) X A X = X $XAX = X \tag {2}$
(AX)H=AX(3) (3) ( A X ) H = A X ${(AX)} ^H = AX \tag {3}$
(XA)H=XA(4) (4) ( X A ) H = X A ${(XA)} ^H = XA \tag {4}$
则称 X X $X$$A$$A$ 的 Moore-Penrose 广义逆，记为 A+ A + $A^+$

# 定理

对于任意一个矩阵 Am×nCm×n, A m × n ∈ C m × n , $A_{m \times n} \in \mathbb C ^{m \times n},$ A+ A + $A^+$ 存在并唯一。

## 证明

### 1. 存在性

A A $A$ 做奇异值分解：
$A=UB{V}^{H}$$A = U B V^H$
其中 Um×m,Vn×n U m × m , V n × n $U_{m \times m}, V_{n \times n}$ 均为酉矩阵，
B=(Λ0(mr)×(nr))m×n B = ( Λ 0 ( m − r ) × ( n − r ) ) m × n $B = \begin{pmatrix} \Lambda & \\ & {\mathbf {0}}_{(m - r) \times (n - r)} \end{pmatrix} _{m \times n}$
Λ=λ1λrr×r, Λ = ( λ 1 ⋱ λ r ) r × r , $\Lambda = \begin{pmatrix} \sqrt{\lambda_1} & & \\ & \ddots & \\ & & \sqrt{\lambda_r} \end{pmatrix} _{r \times r},$ 其中 {λi,iN,1ir} { λ i , i ∈ N , 1 ≤ i ≤ r } $\{\lambda_i , i \in \mathbb N, 1 \le i \le r\}$ AHA A H A $A^H A$ r r $r$ 个正特征值。
$C={\left(\begin{array}{cc}{\mathrm{\Lambda }}^{-1}& \\ & {\mathbf{0}}_{\left(m-r\right)×\left(n-r\right)}\end{array}\right)}_{m×n},D={\left(\begin{array}{cc}I& \\ & {\mathbf{0}}_{\left(m-r\right)×\left(n-r\right)}\end{array}\right)}_{m×n}$$C = \begin{pmatrix} \Lambda ^{-1} & \\ & {\mathbf {0}}_{(m - r) \times (n - r)} \end{pmatrix} _{m \times n}, D = \begin{pmatrix} I & \\ & {\mathbf {0}}_{(m - r) \times (n - r)} \end{pmatrix} _{m \times n}$
X=VCUH, X = V C U H , $X = VCU^H,$ 则：
AX=(UBVH)(VCUH)=UBCUH=UDUH A X = ( U B V H ) ( V C U H ) = U B C U H = U D U H $AX = (UBV^H) (VCU^H) = UBCU^H = UDU^H$
XA=(VCUH)(UBVH)=VCBVH=VDVH X A = ( V C U H ) ( U B V H ) = V C B V H = V D V H $XA = (VCU^H) (UBV^H) = VCBV^H = VDV^H$
因此：
(AX)H=(UDUH)H=UDUH=AX ( A X ) H = ( U D U H ) H = U D U H = A X ${(AX)}^H = {(UDU^H)}^H = UDU^H = AX$
(XA)H=(VDVH)H=VDVH=XA ( X A ) H = ( V D V H ) H = V D V H = X A ${(XA)}^H = {(VDV^H)}^H = VDV^H = XA$
XAX=(VDVH)(VCUH)=VDCUH=VCUH=X X A X = ( V D V H ) ( V C U H ) = V D C U H = V C U H = X $XAX = (VDV^H) (VCU^H) = VDCU^H = VCU^H = X$
AXA=(UBVH)(VDVH)=UBDVH=UBVH=A A X A = ( U B V H ) ( V D V H ) = U B D V H = U B V H = A $AXA = (UBV^H) (VDV^H) = UBDV^H = UBV^H = A$

### 2. 唯一性

设存在两个矩阵 X,Y X , Y $X, Y$ 均满足条件，则
AX=(AYA)X=(AY)(AX)=(AY)H(AX)H=(AXAY)H=(AY)H=AY A X = ( A Y A ) X = ( A Y ) ( A X ) = ( A Y ) H ( A X ) H = ( A X A Y ) H = ( A Y ) H = A Y $AX = (AYA) X = (AY) (AX) = {(AY)}^H {(AX)}^H = {(AXAY)} ^H = {(AY)}^H = AY$
XA=X(AYA)=(XA)(YA)=(XA)H(YA)H=(YAXA)H=(YA)H=YA X A = X ( A Y A ) = ( X A ) ( Y A ) = ( X A ) H ( Y A ) H = ( Y A X A ) H = ( Y A ) H = Y A $XA = X(AYA) = (XA) (YA) = {(XA)}^H {(YA)}^H = {(YAXA)} ^H = {(YA)}^H = YA$
因此：
X=XAX=(XA)X=(YA)X=Y(AX)=Y(AY)=YAY=Y X = X A X = ( X A ) X = ( Y A ) X = Y ( A X ) = Y ( A Y ) = Y A Y = Y $X = XAX = (XA) X = (YA) X = Y(AX) = Y(AY) = YAY = Y$

# 性质

1. r(A+)=r(A) r ( A + ) = r ( A ) $r(A^+) = r(A)$
证明：由条件1，2可得。
2. rangeA+=rangeAH,kerA+=kerAH range ⁡ A + = range ⁡ A H , ker ⁡ A + = ker ⁡ A H $\operatorname {range} A^+ = \operatorname {range} A^H, \ker A^+ = \ker A^H$
证明：
AHα=ββ=AHα=(AXA)Hα=(XA)HAHα=(XA)AHα=X(AAHα)rangeAHrangeA+ A H α = β ⇒ β = A H α = ( A X A ) H α = ( X A ) H A H α = ( X A ) A H α = X ( A A H α ) ⇒ range ⁡ A H ⊆ range ⁡ A + $A^H\alpha = \beta \Rightarrow \beta = A^H\alpha = (AXA)^H \alpha = (XA)^H A^H\alpha = (XA) A^H\alpha = X(AA^H\alpha) \Rightarrow \operatorname {range} A^H \subseteq \operatorname {range} A^+$
Xα=ββ=Xα=(XAX)α=(XA)Xα=(XA)HXα=(AHXH)Xα=AH(XHXα)rangeA+rangeAH X α = β ⇒ β = X α = ( X A X ) α = ( X A ) X α = ( X A ) H X α = ( A H X H ) X α = A H ( X H X α ) ⇒ range ⁡ A + ⊆ range ⁡ A H $X\alpha = \beta \Rightarrow \beta = X\alpha = (XAX) \alpha = (XA) X\alpha = (XA)^H X\alpha = (A^HX^H) X\alpha = A^H ( X^H X\alpha ) \Rightarrow \operatorname {range} A^+ \subseteq \operatorname {range} A^H$
AHα=0⃗ Xα=(XAX)α=X(AX)Hα=X(XHAH)α=(XXH)(AHα)=0⃗ kerAHkerA+ A H α = 0 → ⇒ X α = ( X A X ) α = X ( A X ) H α = X ( X H A H ) α = ( X X H ) ( A H α ) = 0 → ⇒ ker ⁡ A H ⊆ ker ⁡ A + $A^H\alpha = \vec 0 \Rightarrow X \alpha = (XAX) \alpha = X(AX)^H \alpha = X(X^HA^H) \alpha = (XX^H) (A^H \alpha) = \vec 0 \Rightarrow \ker A^H \subseteq \ker A^+$
Xα=0⃗ AHα=(AXA)Hα=AH(AX)Hα=AH(AX)α=(AHA)(Xα)=0⃗ kerA+kerAH X α = 0 → ⇒ A H α = ( A X A ) H α = A H ( A X ) H α = A H ( A X ) α = ( A H A ) ( X α ) = 0 → ⇒ ker ⁡ A + ⊆ ker ⁡ A H $X \alpha = \vec 0 \Rightarrow A^H\alpha = (AXA)^H \alpha = A^H (AX)^H \alpha = A^H (AX) \alpha = (A^H A) (X \alpha) = \vec 0 \Rightarrow \ker A^+ \subseteq \ker A^H$
更多相关内容
• Moore-Penrose伪Moore-Penrose广义逆

# Moore-Penrose伪逆（Moore-Penrose广义逆）

对于非方矩阵而言，其逆矩阵没有定义。假设在下面的问题中，我们希望通过矩阵A的左逆B来求解线性方程：
A x = y Ax=y
等式两边左乘 A − 1 A^{-1} 后，我们得到：
x = A − 1 y x=A^{-1}y
是否存在一个唯一的映射，将A映射到B，取决于问题的形式。
如果矩阵A的行数大于列数，那么上述方程可能没有解；如果矩阵A的行数小于列数，那么上述矩阵可能有很多解。

Moore-Penrose伪逆使我们能够解决这类问题。矩阵A的伪逆定义为：
A + = lim ⁡ x → 0 ( A T A + x I ) − 1 A T A^{+}=\lim_{x \to 0}(A^{T}A+xI)^{-1}A^{T}
但是在实际中计算伪逆是使用下面的式子：
A + = V D + U H A^{+}=VD^{+}U^{H}
其中 V 、 D + 、 U H V、D^{+}、U^{H} 都是矩阵A按照奇异值分解后得到的。

• 矩阵右上角 A H A^{H} H H 是什么呢？

这是一种转置，但是能应用更广泛的范围，被称作共轭转置。当出现复数的时候，才会体现它的不同，在为实数的时候和普通转置的操作是一样的。下面我们举一个共轭转置的例子。
A = [ 1 + i 3 2 − 3 i 6 ] A=\left[ \begin{matrix} 1+i & 3 \\ 2-3i & 6\\ \end{matrix} \right]
A A 的共轭转置 A H A^{H} 为：
A H = [ 1 − i 2 + 3 i 3 6 ] A^{H}=\left[ \begin{matrix} 1-i & 2+3i\\ 3 & 6\\ \end{matrix} \right]

倘若学了矩阵论，那肯定会想起广义逆，没错，伪逆就是广义逆的一种，从它的定义以及描述来看，不能说毫无关系，只能说是一模一样。

## 如何求解Moore-Penrose伪逆（Moore-Penrose广义逆）

要想求解伪逆，我们要经过以下两步

1. 求解矩阵的奇异值分解
1. 按照求解的奇异值分别进行变换
1. 按照伪逆公式求解公式求解该矩阵的伪逆

我们通过一个小例子进行引入：

求解矩阵 A = [ 0 0 0 0 0 0 1 0 0 0 1 0 ] A=\left[\begin{matrix} 0 & 0 & 0\\ 0 & 0 & 0\\ 1 & 0 & 0\\ 0 & 1 & 0\\ \end{matrix}\right] 的伪逆 A + A^{+}

我们通过这个很简单的例题来引入。

### 1.矩阵的奇异值分解

首先，我们先进行矩阵 A A 的奇异值分解。

奇异值分解的公式是怎样的呢？它的各个元素和我们的最终目的求解矩阵的伪逆很像，这也是为什么我们要先求解奇异值分解。奇异值分解公式为：
A = U D V H A=UDV^{H}

其实在矩阵论这本书上是 A = U Σ V H A=U\Sigma V^{H} ,但是在我查找资料，推测其定义应该是一样的，所以在这里以伪逆的定义形式来命名。（当然也有可能是我出错了，倘若如此，希望指正，谢谢！）

由之前的讲解我们可以得出：
A H = [ 0 0 1 0 0 0 0 1 0 0 0 0 ] A^{H}=\left[\begin{matrix} 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1\\ 0 & 0 & 0 & 0\\ \end{matrix}\right]
则有
A H A = [ 1 0 0 0 1 0 0 0 0 ] A^{H}A=\left[\begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \\ \end{matrix}\right]
接下来求解 A H A A^{H}A 的特征值,通过下面的公式求解：
∣ λ I − A H A ∣ = ( λ − 1 ) 2 λ |\lambda I-A^{H}A|=(\lambda-1)^{2}\lambda
求解可得特征值分别为：
λ 1 = 1 , λ 2 = 1 , λ 3 = 0 \lambda_{1}=1,\lambda_{2}=1,\lambda_{3}=0

1. 第一步，根据特征值求解 D D

由特征值我们可以求解出 D D ,那么 D D 的求解公式是咋样的呢？
在这里我给出求解不为零部分的通式：
Δ = [ σ 1 σ 2 ⋱ σ n ] \Delta=\left[\begin{matrix} \sigma_{1} & & &\\ & \sigma_{2} & &\\ & & \ddots &\\ & & & & \sigma_{n}\\ \end{matrix}\right]
其中的参数 σ \sigma λ \lambda 关系如下(只求不为零的)：
σ i = λ i \sigma_{i}=\sqrt{\lambda_{i}}
而在该题中 D D 应该为多少呢？维度是怎样的呢？我们需要根据 D D 的左右矩阵来判断，也就是必须满足矩阵的运算规则。所以它的 Δ = [ 1 0 0 1 ] \Delta=\left[\begin{matrix} 1 & 0 \\ 0 & 1 \\ \end{matrix}\right]

D D 的通式为：
D = [ Δ 0 0 0 ] D=\left[\begin{matrix} \Delta & 0 \\ 0 & 0 \\ \end{matrix}\right]
D D 中， 0 0 表示的不是单个0，而是 0 0 矩阵，具体大小，视左右矩阵而论。

1. 第二步，求解变量 V V

要想求解 V V ,首先需要求解出 A H A A^{H}A 特征值对应的特征向量。根据特征向量求解公式：
( λ i I − A ) x = 0 (\lambda_{i}I-A)x=0

注意，上面公式是指 λ i \lambda_{i} A A 的特征值，而在本题中， λ i \lambda_{i} A H A A^{H}A 的特征值，所以在计算时应该是：
( λ i I − A H A ) x = 0 (\lambda_{i}I-A^{H}A)x=0

求解对应的基础解系选取一个简单的作为特征向量,求解的各特征值对应的特征向量为： α 1 = ( 1 , 0 , 0 ) T , α 2 = ( 0 , 1 , 0 ) T , α 3 = ( 0 , 0 , 1 ) T \alpha_{1}=(1,0,0)^T,\alpha_2=(0,1,0)^T,\alpha_3=(0,0,1)^T ,然后需要将得到的特征向量进行标准正交化，这里将标准正交化后的结果用 v 1 , v 2 , v 3 v_1,v_2,v_3 表示，其实对于当前例子我们可以看出求得的特征向量标准正交化后也是一样的，也就是 v 1 = ( 1 , 0 , 0 ) T , v 2 = ( 0 , 1 , 0 ) T , v 3 = ( 0 , 0 , 1 ) T v_{1}=(1,0,0)^T,v_2=(0,1,0)^T,v_3=(0,0,1)^T

V V 的求解公式如下：
V = ( v 1 , v 2 , ⋯   , v n ) V=(v_1,v_2,\cdots,v_n)

所以， V = ( v 1 , v 2 , v 3 ) = [ 1 0 0 0 1 0 0 0 1 ] V=(v_1,v_2,v_3)=\left[\begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{matrix}\right]

1. 第三步，求解变量 U U

求解 U U 按照以下规则,首先求解特征值不为零的。按照下面的公式进行求解：
u i = 1 σ i A v i u_i=\frac{1}{\sigma_i}Av_i
根据公式可得: u 1 = 1 σ 1 A v 1 = ( 0 , 0 , 1 , 0 ) T , u 2 = 1 σ 2 A v 2 = ( 0 , 0 , 0 , 1 ) T u_1=\frac{1}{\sigma_1}Av_1=(0,0,1,0)^T,u_2=\frac{1}{\sigma_2}Av_2=(0,0,0,1)^T ,再通过已得到的 v 1 , v 2 v_1,v_2 来求解，根据性质， U U 中的子列向量必须两两正交，所以剩下的列向量必须满足下面要求：
u i = { β ∣ u 1 T β = 0 , u 2 T β = 0 } u_i=\lbrace{\beta}|u_1^T\beta=0,u_2^T\beta=0\rbrace
最终求解可得 β = ( k 1 , k 2 , 0 , 0 ) \beta=(k_1,k_2,0,0) ,其中 k 1 , k 2 k_1,k_2 为任意实数。
所以可得 u 3 = ( 1 , 0 , 0 , 0 ) , u 4 = ( 0 , 1 , 0 , 0 ) u_3=(1,0,0,0),u_4=(0,1,0,0)

从而可知：
U = ( u 1 , u 2 , u 3 , u 4 ) = [ 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 ] U=(u_1,u_2,u_3,u_4)=\left[\begin{matrix} 0& 0 & 1 & 0 \\ 0& 0 & 0 & 1 \\ 1& 0 & 0 & 0 \\ 0& 1 & 0 & 0 \\ \end{matrix}\right]

1. 第四步 确定 D D ，得出最后结果

从上面我们已经知道如下结果：
U = [ 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 ] U=\left[\begin{matrix} 0& 0 & 1 & 0 \\ 0& 0 & 0 & 1 \\ 1& 0 & 0 & 0 \\ 0& 1 & 0 & 0 \\ \end{matrix}\right]
V = [ 1 0 0 0 1 0 0 0 1 ] V=\left[\begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{matrix}\right]
现在我们就需要来确定 D D 了，我们已知：
Δ = [ 1 0 0 1 ] \Delta=\left[\begin{matrix} 1 & 0 \\ 0 & 1 \\ \end{matrix}\right]

D = [ Δ 0 0 0 ] D=\left[\begin{matrix} \Delta & 0 \\ 0 & 0 \\ \end{matrix}\right]
而矩阵 A A 的奇异值分解为下面公式， A = U D V H A=UDV^{H}

所以我们可得 D D 的维度，也就是 D 4 × 3 D_{4\times3} ,所以最终我们确定 D D
D = [ 1 0 0 0 1 0 0 0 0 0 0 0 ] D=\left[\begin{matrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 0\\ 0 & 0 & 0\\ \end{matrix}\right]

到这里，矩阵的奇异值分解就结束了，我们可以通过公式： A = U D V H A=UDV^{H} 来进行验证。

虽然奇异值分解结束了，但是伪逆计算却还没开始，不过当你已经求解出了奇异值分解之后，伪逆也就不难了。

### 2. 矩阵伪逆的计算

这里我们还是需要摆出伪逆的计算公式。
A + = V D + U H A^{+}=VD^{+}U^{H}

而我们刚才奇异值分解的是： A = U D V H A=UDV^{H}

这里有一个很不幸消息，如果你直接这样看的话你会发现，我们所求的 D D 其实也是个不可逆矩阵，也就是说如果这样的话，也是要求伪逆的。而且你会有更惊人的发现，它的和 A A 是很相似的。所以这里我们需要分解。

也就是真正使用的公式：

A = U D V H = U ( Δ 0 0 0 ) V H A=UDV^{H}=U\left(\begin{matrix} \Delta & 0 \\ 0 & 0 \\ \end{matrix}\right)V^{H}
A + = V D + U H = V ( Δ − 1 0 0 0 ) U H A^+=VD^+U^{H}=V\left(\begin{matrix} \Delta^{-1} & 0 \\ 0 & 0 \\ \end{matrix}\right)U^{H}

这样你就会发现很容易求解，由于 Δ = [ 1 0 0 1 ] \Delta=\left[\begin{matrix} 1 & 0 \\ 0 & 1 \\ \end{matrix}\right] ，所以
Δ − 1 = [ 1 0 0 1 ] \Delta^{-1}=\left[\begin{matrix} 1 & 0 \\ 0 & 1 \\ \end{matrix}\right]

那么就可以得出： D + = ( Δ − 1 0 0 0 ) = [ 1 0 0 0 0 1 0 0 0 0 0 0 ] D^+=\left(\begin{matrix} \Delta^{-1} & 0 \\ 0 & 0 \\ \end{matrix}\right)=\left[\begin{matrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0\\ \end{matrix}\right]

所以可得 A A 的伪逆，亦即广义逆为：
A + = V D + U H = V ( Δ − 1 0 0 0 ) U H = [ 1 0 0 0 1 0 0 0 1 ] [ 1 0 0 0 0 1 0 0 0 0 0 0 ] [ 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 ] = [ 0 0 1 0 0 0 0 1 0 0 0 0 ] A^+=VD^+U^{H}=V\left(\begin{matrix} \Delta^{-1} & 0 \\ 0 & 0 \\ \end{matrix}\right)U^{H}=\left[\begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{matrix}\right]\left[\begin{matrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0\\ \end{matrix}\right]\left[\begin{matrix} 0& 0 & 1 & 0 \\ 0& 0 & 0 & 1 \\ 1& 0 & 0 & 0 \\ 0& 1 & 0 & 0 \\ \end{matrix}\right]=\left[\begin{matrix} 0& 0 & 1 & 0 \\ 0& 0 & 0 & 1 \\ 0& 0 & 0 & 0 \\ \end{matrix}\right]

至此，我们求解完毕，其实在本文中，我们最最主要了解的是，我们一般不使用原始公式，而是使用下面的：

A = U ( Δ 0 0 0 ) V H A=U\left(\begin{matrix} \Delta & 0 \\ 0 & 0 \\ \end{matrix}\right)V^{H}
A + = V ( Δ − 1 0 0 0 ) U H A^+=V\left(\begin{matrix} \Delta^{-1} & 0 \\ 0 & 0 \\ \end{matrix}\right)U^{H}

展开全文
• 矩阵求运算一般是对于方阵而言，矩阵求没有对非方阵定义。非方阵求会给我们带来很多便捷，假设我们得到矩阵A的左矩阵B，对于线性方程组Ax=y，我们可以这样求得：x=...在这些情况下，Moore-Penrose允许我...

矩阵求逆运算一般是对于方阵而言，矩阵求逆没有对非方阵定义。非方阵求逆会给我们带来很多便捷，假设我们得到矩阵A的左逆矩阵B，对于线性方程组Ax=y，我们可以这样求得：x=By；根据问题的结构，有可能无法设计一个从A到B的单一映射。

如果矩阵A更高（行数m大于列数n，即未知数的约束方程可能大于未知数的数目），那么这个方程就有可能没有解。如果矩阵A更宽（行数m小于列数n，即未知数的约束方程一定大于未知数的数目），那么就有多种解 。在这些情况下，Moore-Penrose伪逆允许我们取得一些进展。矩阵A的伪逆定义如下：

$A^{+}=\lim_{\alpha \rightarrow 0}(A^{T}A+\alpha I)^{-1}A^{T}$

用上述定义计算伪逆是不实用的，计算伪逆的实用算法基于如下公式：

$A^{+}=VD^{+}U^{T}$

其中矩阵U、D、V是矩阵A的奇异值分解（上篇文章所讲）；对角矩阵D的伪逆$D^{+}$是通过取其非零元素的倒数,然后所得矩阵进行转置得到的。当A的列数多于行数时，那么使用伪逆解线性方程组就提供了许多可能的解之一，具体地说，它提供了在所有可能的解中具有最小欧氏范数$||x||_{2}$的解$x=A^{+}y$。当A的行数多于列数时，可能方程组是没有解的，在这种情况下，根据欧式范数$\left \| Ax-y \right \|_{2}$，使用伪逆给出了使Ax尽可能接近y的解x。

展开全文
• 氏距离不受量纲影响, 能描述和处理相关性数据的性能优势, 利用加权Moore-Penrose (WMP) 广义逆定义了WMP马 氏距离, 并通过奇异值分解及矩阵的谱分解理论构造其数学形式和计算方法. 理论分析和仿真实验表明, 所...
• 这里写自定义目录标题Moore-Penrose广义逆一. 定义二. 定理 Moore-Penrose广义逆 摩尔－彭若斯广义 A+（Moore–Penrose pseudoinverse）是最著名的广义阵，也是该词的通俗意思。 1903年，埃里克伊姆（Erik Ivar ...

# Moore-Penrose广义逆

摩尔－彭若斯广义逆 A+（Moore–Penrose pseudoinverse）是最著名的广义逆阵，也是该词的通俗意思。

1903年，埃里克伊姆（Erik Ivar Fredholm）提出积分算子的伪逆的概念。摩尔－彭若斯广义逆先后被以利亚金·黑斯廷斯·摩尔（Eliakim Hastings Moore）（1920年）、阿恩·布耶哈马（Arne Bjerhammar）（1951年）、罗杰·彭罗斯（1955年）发现或描述。

它常被用于求得或简化非一致线性方程组的最小范数最小二乘解（最小二乘法）。

矩阵的摩尔－彭若斯广义逆在实数域和复数域上都是唯一的，并且可以通过奇异值分解求得。

（来自维基百科）

## 一. 定义

设 A∈Cm*n,若存在矩阵G∈Cn*m（C为复数域）,使得
(1) AGA = A;
(2) GAG = G;
(3) (AG)H = AG;
(4) (GA)H = GA;
则称 G 为 A 的Moore-Penrose广义逆加号广义逆，简称为A的M-P逆。A的任意M-P逆记为A+

## 二. 定理

定理一：
若矩阵A∈Cm*n存在M-P广义逆，则A的M-P逆是唯一的。

证明: 设G1,G2都是A的M-P广义逆，则G1,G2均满足M-P逆的定义中的四个条件，于是

G1=(G1A)G1 = (G1A)HG1 = AHG1HG1=(AHG2HAH）G1HG1=(G2A)H(G1A)HG1=G2AG1AG1=G2AG1;
G2=G2(AG2)=G2(AG2)H=G2G2HAH=G2G2H(AHG1HAH）=G2(AG2)H(AG1)H=G2AG2AG1=G2AG1
所以 G1=G2

定理二：
任意矩阵A∈Cm*n都存在M-P广义逆A+，设rank（A）= r，A的一个满秩分解为A=BC,B∈Cm*r,C∈Cr*n,rank(B)=rank(C )=r,则A+=CH(CCH)-1(BHB)-1BH

定理三
设矩阵A∈Cm*n，rank(A)=r,A的奇异值分解为

其中Δ为对角线由A的正奇异值所构成的对角矩阵，Δ∈Cr*r

定理四
设A∈Cm*n，λ∈Cn，则A+满足以下性质：
(1) (A+)+ = A
(2) (A+)H = (AH)+

(3) (λA)+ = λ+A+，其中 λ+ ={ 0，λ=0；1/λ，λ≠0}
(4) A∈Cm*n是列满秩的，则 A+ = (AHA)-1AH;
若A是行满秩的，则 A+ = AH(AAH)-1
(5) 若A有满秩分解A=BC,则A+ = C+B+

参考资料：
[1]https://en.wikipedia.org/wiki/Moore%E2%80%93Penrose_inverse
[2] 《矩阵论》（第二版）杨明，刘先忠.华中科技大学出版社，2005年3月 ISBN 978-7-5609-3046-6

展开全文
• 研究用一种叫分而治之的算法以计算上双对角阵的Moore-Penrose广义逆。同时给出一个数值例子和一个关于并行效率的定理。
• 本文给出了使用基于矩阵分裂A=M-N的迭代格式Xk+l：M+NXk+M+（k=0，1，2，…）计算矩阵A∈Cm x n的Moore-Penrose广义逆A+的迭代法收敛的充要条件以及满足收敛性条件的矩阵M的取法。
• 本文借用Moore-Penrose广义逆来解决这个问题，帮助大家理解带奇异矩阵的病态方程组如何解决。9 n5 m% D/ x2 t) E; F% u5 K 1 q% }- r( g" j 首先我们先来看下mldivide, \在MATLAB中的含义：2 H, y% F9 S6 L3 ?6 A , ...
• >> clear A=[16 2 3 13; 5 11 10 8; 9 7 6 12;...伪和奇异值之间有关系的，S,V,D刚好反过来的就可得到广义逆 A=V*S*D'; pinv(A)=D*s*V'; 其中s是S的倒数（其中S的非零项取倒数，零项保持不变，得到小s
• 起源设AA是n×nn\times n可逆方正，bb是任意一个nn维向量，则方程组Ax=bAx=b总有解，且解xx可表示为x=A−1b.x=A^{-1}b. 现在设AA是m×nm\times n可逆方正，bb是一个mm维向量，是否存在m×nm\...广义逆也叫伪，一般是
• 上一篇博文讲到：《方程AX=b的解的讨论（特解、通解、零空间...或者A是奇异矩阵（即det(A)=0，不可逆），没法求，用不了inv(A)方法只能用A\b，此时MATLAB会报错“矩阵接近奇异值，或者缩放错误。结果可能不准确”...
• Moore-Penrose逆
• Moore-Penrose广义逆矩阵与线性方程组的解
• 考虑广义线性回归模型Y=X...，当设计矩阵Xnxp呈现病态时，定义广义线性回归模型的Moore-Penrose逆阵岭估计为?（k）=（X∑-1X+kI）+X+KI）+X∑-ly，k>0，讨论了广义线性回归模型的Moore-Penrose逆阵岭估计具有的性质。
• 讨论带有对合?...Penrose , 给出了具有满单分解态射的加权Moore-Penrose 存在的几个充要条件以及具有满单分解的加权Moore-Penrose逆的表达式, 所得结论和公式包括了关于广义Moore-Penrose 中的结果.
• 研究环上矩阵A＝GDFP(其中G为右高矩阵,H为左高矩阵)的广义逆,给出了其存在的充要条件和表达式。
• 设A为C* -代数,a,a- =a +δa∈A并且a+存在,‖a+‖‖δa‖<1。定义a-是a的稳定扰动,当且仅当a- A∩...对于B-D广义逆ap+,在给出一般表达式的前提下,对于一类具有“p-零”性质的B-D广义逆,得到了‖a- p+‖的一个上界。
• 研究除环上矩阵集合具有一个任意对合函数ρ的弱Moore-Penrose广义逆的问题.得出了弱ρ・M-P广义的存在性及其表式;还给出了某些固定秩的弱ρ・M-P的表式.
• 矩阵  矩阵的定义：如果对于一个方阵AA，存在一个方阵BB，使得AB=BA=IAB=BA=I，那么我们称BB为AA的矩阵，记做：A−1=B=1|A|A∗A^{-1}=B=\frac{1}{\vert A\vert}A^*，这里A∗A^*代表伴随矩阵。   一个n∗...
• 给出了计算无圈二分图的对应的矩阵的广义逆的求解方法,求所有最大匹配与所有 SDR的算法,并给出了单圈二分图或者共圈二分图的矩阵广义逆的计算公式 。
• 本文研究环上矩阵的广义逆,得到其存在的充要条件,给出它的表达式,推广了以往文献的相应结果。
• 转载于:https://www.cnblogs.com/Phileasfogg-STU-edu/p/10677193.html
• 希尔伯特空间中Moore-Penrose广义逆的二层条件数，刁怀安，魏益民，条件数理论是数值分析中的一个重要研究课题，它能揭示问题对于输入数据的敏感性。当一个问题的条件数很大时，该问题称为不适定问
• 1.定义 ...4.投影矩阵与广义逆矩阵 to be continued（没看懂） A X A = A → A X = P R ( A ) , N ( A X ) AXA=A\rightarrow AX=P_{R(A),N(AX)} A X A = A → A X = P R ( A ) , N ( A X ) ​
• 前面讲了矩阵的, 例如矩阵A的用Aˉ1表示, 使用solve(A)可与计算A的. 并且满足A %*%Aˉ1==Aˉ1%*% A== diag(min(ncol(A), nrow(A))) == Identity matrix 如下 : ...
• ## 广义逆矩阵 C++实现

热门讨论 2009-03-07 22:20:36
广义逆矩阵 C++实现 求矩阵 求转置等内容
• 其中最著名的伪要属摩尔－彭若斯广义逆 A+（MoorePenrose pseudoinverse）。早在1903年，埃里克伊姆（Erik Ivar Fredholm）就引入了积分算子的伪的概念。之后摩尔－彭若斯广义逆先后被以利亚金·黑斯廷斯·...
• Matlab 的 PINV(X) 计算 X 的 Moore-Penrose 广义逆，这是唯一的。 相反，GINV(X) 计算 X 的任何 g-inverse。事实上，GINV 在每次绘制中返回不同的 g-inverse。
• 原理： 代码： Eigen::MatrixXd MainWindow::pinv(Eigen::MatrixXd A) { Eigen::JacobiSVD<Eigen::MatrixXd> svd(A, Eigen::ComputeFullU | Eigen::ComputeFullV);//M=USV* ... int col = A.co

...