考虑线性方程组:
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+