定义
矩阵的极小范数广义逆Minimum Norm g-Inverse,是指矩阵的广义逆中拥有最小范数的逆,符号为
A
m
−
A_m^-
Am−.它的作用是指线性方程组
A
x
=
b
A\bold x=\bold b
Ax=b的解
A
m
−
b
A_m^-b
Am−b在所有的解中具有最小的二范数。它的定义是符合穆尔-彭罗斯四条要求里的第一条和第四条,所以也叫一四逆,符号为
A
{
1
,
4
}
A^{\{1,4\}}
A{1,4},也就是:
A
G
A
=
A
(
G
A
)
T
=
G
A
AGA=A\\ (GA)^T=GA
AGA=A(GA)T=GA
所以极小范数广义逆的全体叫做
A
{
1
,
4
}
A^{\{1,4\}}
A{1,4}.
计算方法
计算方法是如下公式:
A
m
−
=
A
T
(
A
A
T
)
−
A_m^-=A^T(AA^T)^-
Am−=AT(AAT)−
公式如此简单,那么代码也简单了。
# 极小范数广义逆
def min_norm_inverse(self):
a_t = self.transpose_matrix()
return a_t*(self * a_t).one_inverse()
比如以下矩阵:
A
=
(
2
1
2
2
−
2
2
1
3
3
)
G
=
(
1
−
0.25
−
0.5
0.333
−
0.333
0
−
0.667
0.417
0.5
)
G
A
=
(
1
0
0
0
1
0
0
0
1
)
A
G
A
=
(
2
1
2
2
−
2
2
1
3
3
)
A=\begin{pmatrix}2 & 1 & 2\\ 2 & -2 & 2\\ 1 & 3 & 3\\ \end{pmatrix}\\ G=\begin{pmatrix}1 & -0.25 & -0.5\\ 0.333 & -0.333 & 0\\ -0.667 & 0.417 & 0.5\\ \end{pmatrix}\\ GA=\begin{pmatrix}1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1\\ \end{pmatrix}\\ AGA=\begin{pmatrix}2 & 1 & 2\\ 2 & -2 & 2\\ 1 & 3 & 3\\ \end{pmatrix}
A=
2211−23223
G=
10.333−0.667−0.25−0.3330.417−0.500.5
GA=
100010001
AGA=
2211−23223
与最小二乘广义逆的区别
首先是定义的区别,最小二乘广义逆是1,3号逆,极小范数广义逆是1,4号逆。所以极小范数广义逆是
G
A
GA
GA为对称阵,而最小二乘广义逆是
A
G
AG
AG为对称阵。
再次是解的性质,极小范数解的性质是:
∥
x
0
∥
2
=
m
i
n
{
∥
x
∥
2
}
\parallel x_0 \parallel_2 = min \{ \parallel x\parallel_2\}
∥x0∥2=min{∥x∥2}
而最小二乘解的定义是系数矩阵作用后的结果和等号右边的值的距离最近:
∥
A
x
0
−
b
∥
2
=
m
i
n
{
∥
A
x
−
b
∥
2
}
\parallel Ax_0-b \parallel_2 = min \{ \parallel Ax-b\parallel_2\}
∥Ax0−b∥2=min{∥Ax−b∥2}
最后一个区别是计算方式的区别:
A
l
−
=
(
A
T
A
)
−
A
T
A
m
−
=
A
T
(
A
A
T
)
−
A_l^-=(A^TA)^-A^T\\ A_m^-=A^T(AA^T)^-
Al−=(ATA)−ATAm−=AT(AAT)−