求解线性方程组
最小二乘分析
考虑线性方程组:
A
x
=
b
Ax=b
Ax=b
若
b
b
b不属于矩阵
A
A
A的值域空间,则称该方程是矛盾的或过定的。在这种情况下,方程组无解。求解该方程就变成了寻找一个(组)向量
x
x
x,使得
∣
∣
A
x
−
b
∣
∣
2
||Ax-b||^2
∣∣Ax−b∣∣2达到最小。
如果向量
x
∗
x^*
x∗能够使得
∣
∣
A
x
−
b
∣
∣
2
||Ax-b||^2
∣∣Ax−b∣∣2达到最小,即对于所有
x
∈
R
n
x\in R^n
x∈Rn,都有
∣
∣
A
x
−
b
∣
∣
2
⩾
∣
∣
A
x
∗
−
b
∣
∣
2
||Ax-b||^2\geqslant||Ax^*-b||^2
∣∣Ax−b∣∣2⩾∣∣Ax∗−b∣∣2
则称 x ∗ x^* x∗为 A x = b Ax=b Ax=b的最小二乘解。
矩阵 A ∈ R m ∗ n , m ≥ n A\in R^{m*n},m\geq n A∈Rm∗n,m≥n,当且仅当 r a n k A T A = n rankA^TA=n rankATA=n(即方阵 A T A A^TA ATA非奇异)时, r a n k A = n rankA=n rankA=n。
能够最小化 ∣ ∣ A x − b ∣ ∣ 2 ||Ax-b||^2 ∣∣Ax−b∣∣2的向量 x ∗ x^* x∗具有唯一性,可通过求解方程组 A T A x = A T b A^TAx=A^Tb ATAx=ATb得到,即 x ∗ = ( A T A ) − 1 A T b x^*=(A^TA)^{-1}A^Tb x∗=(ATA)−1ATb。
递推最小二乘算法
某个优化问题使得
∣
∣
A
0
x
−
b
(
0
)
∣
∣
2
||A_0x-b^{(0)}||^2
∣∣A0x−b(0)∣∣2最小,已知这一问题的解为
x
(
0
)
=
G
0
−
1
A
0
T
b
(
0
)
x^{(0)}={G_0}^{-1}{A_0}^{T}b^{(0)}
x(0)=G0−1A0Tb(0),其中,
G
0
=
A
0
T
A
0
G_0={A_0}^TA_0
G0=A0TA0。如果添加了新的数据,用矩阵
A
1
A_1
A1和
b
(
1
)
b^{(1)}
b(1)表示,则问题变为寻找
x
x
x,使得:
∣
∣
[
A
0
A
1
]
x
−
[
b
(
0
)
b
(
1
)
]
∣
∣
2
||\left[ \begin{matrix} A_0\\ A_1\\ \end{matrix} \right]x-\left[ \begin{matrix} b^{(0)}\\ b^{(1)}\\ \end{matrix} \right]||^2
∣∣[A0A1]x−[b(0)b(1)]∣∣2
达到最小。
迭代公式:
G
k
+
1
=
G
k
+
A
k
+
1
T
A
k
+
1
x
(
k
+
1
)
=
x
(
k
)
+
G
k
+
1
−
1
A
k
+
1
T
(
b
(
k
+
1
)
−
A
k
+
1
x
(
k
)
)
G_{k+1}=G_k+A_{k+1}^TA_{k+1}\\ x^{(k+1)}=x^{(k)}+{G_{k+1}}^{-1}A_{k+1}^T(b^{(k+1)}-A_{k+1}x^{(k)})
Gk+1=Gk+Ak+1TAk+1x(k+1)=x(k)+Gk+1−1Ak+1T(b(k+1)−Ak+1x(k))
考虑一种特殊情况————每次只新来一行新数据,即矩阵
A
k
+
1
A_{k+1}
Ak+1只有一行,
A
k
+
1
=
a
k
+
1
T
A_{k+1}={a_{k+1}}^T
Ak+1=ak+1T,
b
(
k
+
1
)
b^{(k+1)}
b(k+1)是标量,
b
(
k
+
1
)
=
b
k
+
1
b^{(k+1)}=b_{k+1}
b(k+1)=bk+1,此时有:
P
k
+
1
=
P
k
−
P
k
a
k
+
1
a
k
+
1
T
P
k
1
+
a
k
+
1
T
P
k
a
k
+
1
x
(
k
+
1
)
=
x
(
k
)
+
P
k
+
1
a
k
+
1
(
b
k
+
1
−
a
k
+
1
T
x
(
k
)
)
P_{k+1}=P_k-\frac{P_ka_{k+1}{a_{k+1}}^TP_k}{1+{a_{k+1}}^TP_ka_{k+1}}\\ x^{(k+1)}=x^{(k)}+P_{k+1}a_{k+1}(b_{k+1}-{a_{k+1}}^Tx^{(k)})
Pk+1=Pk−1+ak+1TPkak+1Pkak+1ak+1TPkx(k+1)=x(k)+Pk+1ak+1(bk+1−ak+1Tx(k))
线性方程组的最小范数解
x ∗ = A T ( A A T ) − 1 b x^*=A^T(AA^T)^{-1}b x∗=AT(AAT)−1b
一般意义下的线性方程组的求解
考虑一般意义下的线性方程组
A
x
=
b
Ax=b
Ax=b
其中,
A
∈
R
m
∗
n
,
r
a
n
k
A
=
r
A\in R^{m*n},rankA=r
A∈Rm∗n,rankA=r,且有
r
≤
min
{
m
,
n
}
r\leq\min\{m,n\}
r≤min{m,n}。
满秩分解
一个秩为 r r r的矩阵可以表示一个列满秩(秩 r r r)的矩阵和一个行满秩(秩r)的矩阵的乘积。
存在矩阵
B
∈
R
m
∗
r
B\in R^{m*r}
B∈Rm∗r和矩阵
C
∈
R
r
∗
n
C\in R^{r*n}
C∈Rr∗n,使得:
A
=
B
C
A=BC
A=BC
其中
r
a
n
k
A
=
r
a
n
k
B
=
r
a
n
k
C
rankA=rankB=rankC
rankA=rankB=rankC。
伪逆
A A A的伪逆矩阵 A + A^+ A+中的每一行,都是矩阵 A T A^T AT中所有行向量的线性组合, A + A^+ A+中的每一列都是矩阵 A T A^T AT中所有列向量的线性组合。
对于矩阵 A ∈ R m ∗ n , m ≥ n A\in R^{m*n},m\geq n A∈Rm∗n,m≥n,且 r a n k A = n rankA=n rankA=n,可以得到左伪逆 A + = ( A T A ) − 1 A T A^+=(A^TA)^{-1}A^T A+=(ATA)−1AT
对于矩阵 A ∈ R m ∗ n , m ≤ n A\in R^{m*n},m\leq n A∈Rm∗n,m≤n,且 r a n k A = m rankA=m rankA=m,可以得到右伪逆 A + = A T ( A A T ) − 1 A^+=A^T(AA^T)^{-1} A+=AT(AAT)−1
A + = C + B + A^+=C^+B^+ A+=C+B+