问题定义
Ax=b(1)
在实际问题中,该方程组可能不存在真正的解,这时我们就希望可以求解它的一个近似解
x∗
,使得其能尽可能地接近 (1) 的真正解,其中
A∈Rk×n,b∈Rk
是已知的,而
x∈Rn
是未知量。
注意,这里假定
k≥n
且
ATA∈Rn×n
是可逆的。
在数学上,已经给出这类问题的解了:
x∗=(ATA)−1ATb
。
下面就来简单的推导下该解的由来:
argminxAx≈b⇒argminxf(x)=∥Ax−b∥2(2)
对于 (2) 式,将其展开:
f(x)=∥Ax−b∥2=(Ax−b)T(Ax−b)=(xTAT−bT)(Ax−b)=xTATAx−xTATb−bTAx+bTb=xTATAx−2bTAx+bTb=xT(ATA)1/2yT(ATA)1/2xy−2bTA(ATA)−1/2(ATA)1/2xy+bTb=yTy−2bTA(ATA)−1/2y+bTb=yTy−2((ATA)−1/2ATb)Ty+((ATA)−1/2ATb)T((ATA)−1/2ATb)+bTb−((ATA)−1/2ATb)T((ATA)−1/2ATb)d=(y−(ATA)−1/2ATb)T(y−(ATA)−1/2ATb)+d=∥∥y−(ATA)−1/2ATb∥∥2+d(3)
通过 (3) 式可知,当
y=(ATA)−1/2ATb
时,
f(x)
取得最小值
d
:
⇒⇒y=(ATA)−1/2ATb(ATA)1/2x=(ATA)−1/2ATbx=(ATA)−1ATb(4)
即当
x=(ATA)−1ATb
时,
f(x)
取最小值
d
。所以
x=(ATA)−1ATb
是式 (1) 的最近解。