1.1 不相容方程组概念理解
先解释一下什么是不相容方程组。当线性矩阵与其增广矩阵不等秩时,且系数矩阵的秩小于曾广矩阵的秩时,系数矩阵不相容。比如线性方程组
A
x
=
b
Ax=b
Ax=b,
A
A
A是系数矩阵,
[
A
∣
b
]
[A|b]
[A∣b]是增广矩阵,当
A
A
A的秩小于
[
A
∣
b
]
[A|b]
[A∣b]的秩不时,
A
A
A就称为不相容系数矩阵,
A
x
=
b
Ax=b
Ax=b就称为不相容方程组。明显可以可以看出:不相容方程组没有非零解。
再来解释一下超定方程组。超定方程组是指有效方程的个数大于未知量个数的方程组。对于方程组
B
x
=
c
Bx=c
Bx=c,
B
B
B为
n
×
m
n×m
n×m矩阵,如果
B
B
B列满秩,且
R
[
B
∣
c
]
>
n
R[B|c]>n
R[B∣c]>n,。则方程组没有精确解,此时称方程组为超定方程组。明显可以得出超定方程组没有非零解。
同时,可以明显得出,
R
(
B
)
=
m
<
R
[
B
∣
c
]
R(B)=m < R[B|c]
R(B)=m<R[B∣c],所以超定方程组一定是不相容方程组。而且不相容方程组的一个常见来源是超定方程组。
1.2 为什么会出现不相容方程组
按照正常的理解,数学是很严格的,两点确定一条直线,只要直到直线上的两个点的坐标,就能求得这条直线的方程。
例如:平面上有两个点的坐标分别为
(
1
,
5
)
(1,5)
(1,5)和
(
2
,
7
)
(2,7)
(2,7),直线的方程可以表示为
y
=
a
x
+
b
y=ax+b
y=ax+b。那么可以列出方程:
5
=
a
+
b
7
=
2
a
+
b
\begin{aligned} 5&=a+b \\ 7&=2a+b \end{aligned}
57=a+b=2a+b
很容易就能求解出
a
=
2
a=2
a=2和
b
=
3
b=3
b=3的值。而且如果再加一个点
(
3
,
9
)
(3,9)
(3,9),并列三个方程组
5
=
a
+
b
7
=
2
a
+
b
9
=
3
a
+
b
\begin{aligned} 5&=a+b \\ 7&=2a+b \\ 9&=3a+b \end{aligned}
579=a+b=2a+b=3a+b
很容易能求解。这个方程组很像超定方程组,但是其实不是的,因为其系数矩阵的秩等于曾广矩阵的秩。
但是,这是给出的点的坐标非常准确的情况,而实际情况中是无法得出非常准确的点的坐标的,比如测量误差的存在,无法得到准确的点的坐标。而且,为了能够收集更多的信息,通常情况会去测量尽量多的点。比如,为了得到某个直线的方程,工程师测量了直线上n个点的坐标,这些坐标都是有误差的。画图如下所示,所有蓝色的点都是测量得到的点,红色的直线是实际的直线。
此时,有n个测量点,会列出n个方程组,就是超定方程组了。
1.3 残差向量
残差在数理统计中是指实际观察值与估计值(拟合值)之间的差。与之类比,在不相容方程组中,残差向量就是实际观察向量(
b
b
b)与估计向量(
A
x
Ax
Ax)的差值向量。
举个例子:给点线性不相容方程组
A
x
=
b
Ax=b
Ax=b,没有非零解,退而求其次,我们找到了一个尽量满足方程组的解
x
∗
x^*
x∗,那么向量
A
x
∗
−
b
Ax^*-b
Ax∗−b就是残差向量。
可以这样理解,为了使所求得的
x
∗
x^*
x∗尽量满足真实值
x
x
x,应该使残差向量最小。也就是如果残差向量最小,就说明此时的
x
∗
x^*
x∗越准确。
在实际应用方面,任何最小化残差向量的方法,都可以用于寻找不相容方程的解。
1.4 超定方程组的最小二乘解
假设
A
x
=
b
Ax=b
Ax=b是超定方程组,其中
A
A
A是
n
×
m
n×m
n×m的矩阵且
n
>
m
n>m
n>m,增广矩阵
[
A
∣
b
]
[A|b]
[A∣b]的秩大于
m
m
m。
超定方程组是无解的,但是我们可以求得其最小二乘解,将等式左右两端乘上
A
A
A的转置。
A
T
A
x
∗
=
A
T
b
A^TAx^*=A^Tb
ATAx∗=ATb
可以通过上述方程组得到
A
x
=
b
Ax=b
Ax=b的最小二乘解。
A
T
A
x
∗
=
A
T
b
A^TAx^*=A^Tb
ATAx∗=ATb 是
A
x
=
b
Ax=b
Ax=b的关联方程组。
1.5 最小二乘解的定理
对于方程组 A x = b Ax=b Ax=b,其中 A ∈ m ∗ n A\in m*n A∈m∗n,有:
- 关联方程组: A T A x ∗ = A T b A^TAx^*=A^Tb ATAx∗=ATb总是相容的;
- A x = b Ax=b Ax=b的最小二乘解恰好是 A T A x = A T b A^TAx=A^Tb ATAx=ATb的解;
- 最小二乘解是唯一的,当且仅当矩阵 A A A的秩为 n n n;
1.6 解的公式推导
定义方程组
A
x
=
b
Ax=b
Ax=b,
A
A
A为矩阵,
x
x
x为变量,
b
b
b为向量。
先写两个线性代数定理:
- ∂ x T A ∂ x = A \frac{\partial x^TA}{\partial x}=A ∂x∂xTA=A
- ∂ x T A x ∂ x = A x + A T x \frac{\partial x^TAx}{\partial x}=Ax+A^Tx ∂x∂xTAx=Ax+ATx
最小二乘的优化目标:
min
x
∈
R
(
∣
∣
A
x
−
b
∣
∣
2
)
2
\min_{x\in R} (||Ax-b||_2)^2
x∈Rmin(∣∣Ax−b∣∣2)2
这是多变量的优化问题,所以要对变量进行求导。
先进行展开
(
∣
∣
A
x
−
b
∣
∣
2
)
2
=
(
A
x
−
b
)
T
(
A
x
−
b
)
=
x
T
A
T
A
x
−
b
T
A
x
−
x
T
A
T
b
+
b
T
b
\begin{aligned} (||Ax-b||_2)^2 &= (Ax-b)^T(Ax-b) \\ &=x^TA^TAx-b^TAx-x^TA^Tb+b^Tb \end{aligned}
(∣∣Ax−b∣∣2)2=(Ax−b)T(Ax−b)=xTATAx−bTAx−xTATb+bTb
由此得到:
∂
(
∣
∣
A
x
−
b
∣
∣
2
)
2
∂
x
=
2
A
T
A
x
−
2
A
T
b
\frac{\partial(||Ax-b||_2)^2}{\partial x}=2A^TAx-2A^Tb
∂x∂(∣∣Ax−b∣∣2)2=2ATAx−2ATb
让上式等于零可得
x
=
(
A
T
A
)
−
1
A
T
b
x=(A^TA)^{-1}A^Tb
x=(ATA)−1ATb