本章的介绍性实例中描述了一个解不存在的巨型方程组 Ax=b,实际应用中常出现这类不相容问题,尽管不会出现如此巨大的系数矩阵。当方程组的解不存在但又需要求解时,最好的方法是寻找 x,使得 Ax 尽可能接近 b。
考虑 Ax 作为 b 的一个近似. b 和 Ax 之间的距离越小,|b-Ax| 近似程度越好.一般的最小二乘问题就是找出使 |b-Ax| 尽量小的 x,术语 “最小二乘” 来源于这样的事实,即 |b-Ax| 是平方和的平方根.
定义 如果 m × n 矩阵 A 和向量 ±bb 属于 ℝ^m ,则 Ax = b 的最小二乘解是 ℝⁿ 中的 hatx ,使得
| boldsymbol b - A hat boldsymbol x | ≤slant | boldsymbol b - A boldsymbol x |对所有 x ∈ Rⁿ 成立.
最小二乘问题最重要的特征是无论怎么选取 x,向量 Ax 必然属于列空间 Col A。因此我们寻求 x,使得 Ax 是 Col A 中最接近 b 的点,见图 6-23(当然,如果 b 恰好在 Col A 中,那么对于某个 x,b 等于 Ax,且这样的 x 是一个“最小二乘解”)。
一般最小二乘问题的解
Section titled “一般最小二乘问题的解”对上面给定的 A 和 b,应用 6.3 节的最佳逼近定理于子空间 Col A.取
hat boldsymbol b = operatornameproj _ Col A boldsymbol b由于 hat±bb 属于 A 的列空间,故方程 Ax = hatb 是相容的且存在一个属于 ℝⁿ 的 hatx 使得
A hat boldsymbol x = hat boldsymbol b (1)由于 hat±bb 是Col A 中最接近 ±bb 的点,因此一个向量 hat±bx 是 Ax = ±bb 的一个最小二乘解的充分必要条件是 hat±bx 满足(1).这个属于 ℝⁿ 的 hat±bx 是一系列由 A 的列构造的 hat±bb 的权,见图 6-24(如果方程(1)有自由变量,则方程(1)会有多个解).
若 hat±bx 满足 Ahat±bx = hat±bb ,则由6.3节的正交分解定理,投影 hat±bb 具有性质 ±b b - hat±bb 与Col A 正交,即 ±b b - Ahat±bx 正交于 A 的每一列.如果 ±baⱼ 是 A 的任意列,那么 ±baⱼ· (±b b - Ahat±bx) = 0 且 ±baⱼ^(T)· (±b b - Ahat±bx) = 0 .由于每一个 ±baⱼ^(T) 是 A^(T) 的行,因此
A ^ T (boldsymbol b - A hat boldsymbol x) = mathbf 0 (2)(方程(2)也可由6.1节中的定理3推出。)故有
A ^ T boldsymbol b - A ^ T A hat boldsymbol x = mathbf 0 A ^ T A hat boldsymbol x = A ^ T boldsymbol b此计算表明 Ax = b 的每个最小二乘解满足方程
A ^ T A boldsymbol x = A ^ T boldsymbol b (3)矩阵方程(3)表示的线性方程组常称为 Ax=b 的法方程,(3)的解通常用 hatx 表示.
方程 Ax = b 的最小二乘解集和法方程 A^(T)Ax = A^(T)b 的非空解集一致.
证明
如上所述,最小二乘解集是非空的,且每个最小二乘解 hatx 满足法方程。相反,假若 hatx 满足 A^(T)Ahatx = A^(T)b ,那么 hatx 满足上面的方程(2),从而说明 ±b b - Ahat±bx 与 A^(T) 的行正交,因此与 A 的列正交。因为 A 的列生成Col A ,故向量 ±b b - Ahat±bx 与所有Col A 的向量正交,因此方程 ±b b = Ahat±bx +(±b b - Ahat±bx) 是将 ±bb 分解成Col A 中的一个向量与正交于Col A 的一个向量之和。根据正交分解的唯一性, Ahatx 必须是将 ±bb 投影到Col A 上的正交投影。所以, Ahatx = b 成立,且 hatx 是一个最小二乘解。
求不相容方程组 Ax = b 的最小二乘解,其中
A = [ l l 4 & 0 0 & 2 1 & 1 ], boldsymbol b = [ l 2 0 1 1 ]解
利用法方程(3)计算
A ^ T A = [ l l l 4 & 0 & 1 0 & 2 & 1 ] [ l l 4 & 0 0 & 2 1 & 1 ] = [ l l 1 7 & 1 1 & 5 ]A ^ T boldsymbol b = [ l l l 4 & 0 & 1 0 & 2 & 1 ] [ c 2 0 1 1 ] = [ l 1 9 1 1 ]那么方程 A^(T)Ax = A^(T)b 变成
[ l l 1 7 & 1 1 & 5 ] [ l x _ 1 x _ 2 ] = [ l 1 9 1 1 ]行变换可用于解此方程组,但由于 A^(T)A 是 2× 2 可逆矩阵,因此很快可计算出
(A ^ T A) ^ - 1 = frac 18 4 [ c c 5 & - 1 - 1 & 1 7 ]那么可解 A^(T)Ax = A^(T)b 如下:
r l hat boldsymbol x & = (A ^ T A) ^ - 1 A ^ T boldsymbol b & = frac 18 4 [ l l 5 & - 1 - 1 & 1 7 ] [ l 1 9 1 1 ] = frac 18 4 [ l 8 4 1 6 8 ] = [ l 1 2 ]在许多计算中, A^(T)A 是可逆的,但并不总是这样.下面例子中的矩阵出现于统计学中的方差分析问题中.
求 Ax = b 的最小二乘解,其中
A = [ c c c c 1 & 1 & 0 & 0 1 & 1 & 0 & 0 1 & 0 & 1 & 0 1 & 0 & 1 & 0 1 & 0 & 0 & 1 1 & 0 & 0 & 1 ], boldsymbol b = [ c - 3 - 1 0 2 5 1 ]解
计算
A ^ T A = [ c c c c c c 1 & 1 & 1 & 1 & 1 & 1 1 & 1 & 0 & 0 & 0 & 0 0 & 0 & 1 & 1 & 0 & 0 0 & 0 & 0 & 0 & 1 & 1 ] [ c c c c 1 & 1 & 0 & 0 1 & 1 & 0 & 0 1 & 0 & 1 & 0 1 & 0 & 1 & 0 1 & 0 & 0 & 1 1 & 0 & 0 & 1 ] = [ c c c c 6 & 2 & 2 & 2 2 & 2 & 0 & 0 2 & 0 & 2 & 0 2 & 0 & 0 & 2 ]A ^ T boldsymbol b = [ c c c c c c 1 & 1 & 1 & 1 & 1 & 1 1 & 1 & 0 & 0 & 0 & 0 0 & 0 & 1 & 1 & 0 & 0 0 & 0 & 0 & 0 & 1 & 1 ] [ c - 3 - 1 0 2 5 1 ] = [ c 4 - 4 2 6 ]矩阵方程 A^(T)Ax = A^(T)b 的增广矩阵是
[ c c c c c 6 & 2 & 2 & 2 & 4 2 & 2 & 0 & 0 & - 4 2 & 0 & 2 & 0 & 2 2 & 0 & 0 & 2 & 6 ] ∼ [ c c c c c 1 & 0 & 0 & 1 & 3 0 & 1 & 0 & - 1 & - 5 0 & 0 & 1 & - 1 & - 2 0 & 0 & 0 & 0 & 0 ]通解是 x₁=3-x₄ , x₂=-5+x₄ , x₃=-2+x₄ , x₄ 是自由变量。所以,Ax=b 的最小二乘通解具有下面形式:
hat boldsymbol x = [ c 3 - 5 - 2 0 ] + x _ 4 [ c - 1 1 1 1 ]下面的定理给出判定准则:在什么条件下,方程 Ax=b 的最小二乘解是唯一的。(当然,正交投影 hatb 总是唯一的。)
设 A 是 m × n 矩阵.下面的条件是逻辑等价的:
a)对于 ℝ^m 中的每个 b ,方程 Ax = b 有唯一最小二乘解.
b)A 的列是线性无关的.
c)矩阵 A^(T)A 是可逆的.
当这些条件成立时,最小二乘解 hatx 有下面的表示:
hat boldsymbol x = (A ^ T A) ^ - 1 A ^ T boldsymbol b (4)定理14 证明的主要部分在习题 19~21 中给出,证明的同时也复习了第 4 章的概念。用公式(4)计算 hatx 的方法主要具有理论意义,当 A^(T)A 是 2 × 2 可逆矩阵时可用手工计算。
当最小二乘解 hatx 用于产生 b 的近似 Ahatx 时,从 b 到 Ahatx 的距离称为这个近似的最小二乘误差.例3如例1给出的 A 和 b ,确定 Ax = b 最小二乘解的最小二乘误差
解
从例1可知,
boldsymbol b = [ l 2 0 1 1 ], A hat boldsymbol x = [ l l 4 & 0 0 & 2 1 & 1 ] [ l 1 2 ] = [ l 4 4 3 ]因此
boldsymbol b - A hat boldsymbol x = [ l 2 0 1 1 ] - [ l 4 4 3 ] = [ l - 2 - 4 8 ]| boldsymbol b - A hat boldsymbol x | = sqrt (- 2) ^ 2 + (- 4) ^ 2 + 8 ^ 2 = sqrt 8 4最小二乘误差是 √(84) 。对任意属于 ℝ² 的 x ,从 b 到向量 Ax 的最小距离是 √(84) ,见图 6-25。注意最小二乘解 hatx 自身并没有在图中出现。
最小二乘解的另一个计算
Section titled “最小二乘解的另一个计算”下面的例子表明,当 A 的列向量正交时,如何求出 Ax = b 的最小二乘解。这类矩阵常出现在下节要讨论的线性回归问题中。
求出 Ax = b 的最小二乘解,其中
A = [ c c 1 & - 6 1 & - 2 1 & 1 1 & 7 ], boldsymbol b = [ c - 1 2 1 6 ]解
由于 A 的列 a₁ 和 a₂ 相互正交,因此 b 在 Col A 上的正交投影如下:
hat ±b b = frac ±b b · ±b a _ 1±b a _ 1 · ±b a _ 1 · ±b a _ 1 + frac ±b b · ±b a _ 2±b a _ 2 · ±b a _ 2 · ±b a _ 2 = frac 84 ±b a _ 1 + frac 4 59 0 ±b a _ 2 (5)= [ l 2 2 2 2 ] + [ l - 3 - 1 1 / 2 7 / 2 ] = [ c - 1 1 5 / 2 1 1 / 2 ]既然 hat±bb 已知,我们可以解 Ahat±bx = hat±bb 。这个很容易,因为我们已经知道 hat±bb 用 A 的列线性表示时的权。从(5)立刻得到
hat boldsymbol x = [ l 8 / 4 4 5 / 9 0 ] = [ l 2 1 / 2 ]某些时候,最小二乘解问题的法方程可能是病态的,也就是 A^(T)A 的元素在计算中出现的小误差有时可导致解 hatx 中出现较大的误差。如果 A 的列线性无关,则最小二乘解常常可通过 A 的QR分解更可靠地求出(见6.4节的描述)。
给定一个 m × n 矩阵 A,它具有线性无关的列,取 A = QR 是 A 类似定理12 的 QR 分解,那么对每一个属于 R^(m) 的 b,方程 Ax = b 有唯一的最小二乘解,其解为
hat boldsymbol x = R ^ - 1 Q ^ T boldsymbol b (6)证明
取 hat±bx = R⁻1Q^(T)±bb ,那么 Ahat±bx = QRhat±bx = QRR⁻1Q^(T)±bb = QQ^(T)±bb
由定理12 的列形成 Col A 的标准正交基,因此,由定理10, Q 的列形成 Col A 的标准正交基,因此,由定理 10, QQ^(T)b 是 b 在 Col A 上的正交投影 hatb ,那么 Ahatx = hatb 的唯一性可从定理14 得出。hatx 是 Ax = b 的最小二乘解。 hatx 的唯一性可从定理 14 得出。
数值计算的注解 由于定理15中的 R 是上三角形矩阵,故 hatx 可从方程
R boldsymbol x = Q ^ T boldsymbol b (7)计算得到.求解方程(7)时,通过回代过程或行变换比利用(6)计算 R⁻1 更快.
求出 Ax = b 的最小二乘解,其中
A = [ l l l 1 & 3 & 5 1 & 1 & 0 1 & 1 & 2 1 & 3 & 3 ], boldsymbol b = [ c 3 5 7 - 3 ]解
利用 6.4 节可得 A 的 QR 分解.
A = Q R = [ c c c 1 / 2 & 1 / 2 & 1 / 2 1 / 2 & - 1 / 2 & - 1 / 2 1 / 2 & - 1 / 2 & 1 / 2 1 / 2 & 1 / 2 & - 1 / 2 ] [ c c c 2 & 4 & 5 0 & 2 & 3 0 & 0 & 2 ]那么
Q ^ T ±b b = [ c c c c 1 / 2 & 1 / 2 & 1 / 2 & 1 / 2 1 / 2 & - 1 / 2 & - 1 / 2 & 1 / 2 1 / 2 & - 1 / 2 & 1 / 2 & - 1 / 2 ] [ c 3 5 7 - 3 ] = [ c 6 - 6 4 ]满足 Rx = Q^(T)b 的最小二乘解是 hatx ,也就是说,
[ l l l 2 & 4 & 5 0 & 2 & 3 0 & 0 & 2 ] [ l x _ 1 x _ 2 x _ 3 ] = [ c 6 - 6 4 ]这个方程很容易解出,得 hatx=10 -6 2
-
令 A = 1 & -3 & -3 1 & 5 & 1 1 & 7 & 2 和 ±bb = 5 -3 -5 ,求 Ax = b 的一个最小二乘解,并且计算最小二乘解的误差.
-
当 b 与 A 的列正交时,对 Ax=b 的最小二乘解,你可得出什么结论?
在习题 1~4 中,求 Ax=b 的最小二乘解. (a) 通过构造法方程求 hatx ,(b) 直接解 hatx .
A = [ c c - 1 & 2 2 & - 3 - 1 & 3 ], boldsymbol b = [ l 4 1 2 ]A = [ l l l 1 & 1 & 0 1 & 1 & 0 1 & 0 & 1 1 & 0 & 1 ], boldsymbol b = [ l 1 3 8 2 ]A = [ c c 2 & 1 - 2 & 0 2 & 3 ], boldsymbol b = [ c - 5 8 1 ]A = [ l l l 1 & 1 & 0 1 & 1 & 0 1 & 1 & 0 1 & 0 & 1 1 & 0 & 1 1 & 0 & 1 ], boldsymbol b = [ l 7 2 3 6 5 4 ]3. A = [ c c 1 & - 2 - 1 & 2 0 & 3 2 & 5 ], boldsymbol b = [ c 3 1 - 4 2 ]A = [ c c 1 & 3 1 & - 1 1 & 1 ], boldsymbol b = [ c 5 1 0 ]- 计算习题 3 中与最小二乘解相关的最小二乘误差.
在习题 5~6 中,求方程 Ax=b 的所有最小二乘解.
- 计算习题 4 中与最小二乘解相关的最小二乘误差.
在习题 9~12 中,求:(a)b 在 Col A 上的正交投影,(b)Ax = b 的最小二乘解.
-
A=1 & 5 3 & 1 -2 & 4, b=4 -2 -3
-
A=1&2 -1&4 1&2, b=3 -1 5
-
A=4&0&1 1&-5&1 6&1&0 1&-1&-5, b=9 0 0 0
-
A=1&1&0 1&0&-1 0&1&1 -1&1&-1, b=2 5 6 6
-
令 A = 3 & 4 -2 & 1 3 & 4 , ±bb = 11 -9 5 , ±bu = 5 -1 和 ±bv = 5 -2,计算 Au 和 Av,并与 b 相比较.u 是否为 Ax = b 的最小二乘解? (不用计算最小二乘解回答这个问题.)
-
令 A = 2 & 1 -3 & -4 3 & 2 , ±bb = 5 4 4 , ±bu = 4 -5 和 ±bv = 6 -5,计算 Au 和 Av,并与 b 相比较.是否有可能至少有一个 u 或 v 是 Ax = b 的最小二乘解?(不用计算最小二乘解回答这个问题。)
在习题 15~16 中,利用分解 A=QR 求 Ax=b 的最小二乘解.
- A=2&3 2&4 1&1=2/3&-1/3 2/3&2/3 1/3&-2/33&5 0&1, b=7 3 1
在习题 17~18 中,A 是 m × n 矩阵且 b 属于 R^(m) ,判断下列命题正确或错误,验证每一个答案.
- a.一般最小二乘问题是求出 x 使得 Ax 尽可能接近 b. b. 方程 Ax = b 的最小二乘解是满足方程 Ahatx = hatb 的向量 hatx ,其中 hatb 是 b 在 Col A 上的正交投影. c. 方程 Ax = b 的最小二乘解是向量 hatx ,对所有属于 Rⁿ 的 x 满足 |b-Ax|≤slant|b-Ahatx|
d.方程 A^(T)Ax = A^(T)b 的任意解是方程 Ax = b 的最小二乘解.
e.如果 A 的列线性无关,那么方程 Ax = b 只有一个最小二乘解.
-
a.如果 b 属于 A 的列空间,那么方程 Ax=b 的每个解都是最小二乘解. b. 方程 Ax=b 的最小二乘解是 A 的列空间中最接近 b 的点. c. 方程 Ax=b 的最小二乘解是一系列的权,当它们作用在 A 的列时,产生 b 在 Col A 上的正交投影. d. 如果 hatx 是 Ax=b 的一个最小二乘解,那么 hatx = (A^(T)A)⁻1A^(T)hatb . e. 法方程计算最小二乘解的方法总是可靠的. f. 如果 A 有一个 QR 分解,如 A=QR,那么求 Ax=b 最小二乘解的最好方法是计算 hatx=R⁻1Q^(T)b .
-
设 A 是一个 m × n 矩阵,利用下面的步骤说明,向量 x 属于 Rⁿ 且满足 Ax = 0 的充分必要条件是 A^(T)Ax = 0 。这将证明 Nul A = Nul A^(T)A 。 a. 证明:如果 Ax = 0 ,那么 A^(T)Ax = 0 。 b. 假若 A^(T)Ax = 0 ,解释为什么 x^(T)A^(T)Ax = 0 并利用此式证明 Ax = 0。
-
设 A 是一个 m × n 矩阵且 A^(T)A 是可逆的,证明
A 的列线性无关.(注意:不能假设 A 可逆,且更不一定是方阵.)
-
设 A 是 m × n 矩阵且列向量线性无关(注意:A 不一定是方阵). a. 利用习题 19 证明 A^(T)A 是可逆矩阵. b. 解释为什么 A 具有至少与行一样多的列. c. 确定 A 的秩.
-
利用习题 19 证明 rank A^(T)A = rank A . (提示: A^(T)A 有多少列?如何与 A^(T)A 的秩联系起来?)
-
假设 A 是 m × n 矩阵且有线性无关的列, b 属于 ℝ^m ,利用法方程给出一个计算 hatb 的公式, hatb 是 b 在 operatornameCol A 上的投影。(提示:首先求出 hatx ,这个公式不需要 operatornameCol A 的正交基。)
-
当 A 的列是单位正交时,找出方程 Ax=b 最小二乘解的一个公式.
-
列出下列方程组的所有最小二乘解:
- [M] 4.8 节的例3 显示了一个低通线性滤波器,将信号 {yₖ} 过滤为 {yₖ+1} ,并将高频信号 {wₖ} 过滤为零信号,其中 yₖ = cos(π k / 4) , wₖ = cos(3π k / 4) 。下面的计算将设计一个滤波器近似满足此特性。滤波器方程为
a₀yₖ+2+a₁yₖ+1+a₂yₖ=zₖ ,对所有k成立(8)因为信号是周期性的,且周期为8,故对方程(8)只需研究 k=0,…,7 即可.滤波器的作用是将上面描述的两个信号转化为两个8
个方程的集合.
y _ k + 2 y _ k + 1 y _ k y _ k + 1l l k = 0 & [ c c c 0 & 0. 7 & 1 - 0. 7 & 0 & 0. 7 - 1 & - 0. 7 & 0 - 0. 7 & - 1 & - 0. 7 0 & - 0. 7 & - 1 0. 7 & 0 & - 0. 7 1 & 0. 7 & 0 0. 7 & 1 & 0. 7 ] [ l a _ 0 a _ 1 a _ 2 ] = [ l 0. 7 0 - 0. 7 - 1 - 0. 7 0 0. 7 1 ] k = 7 &l l & w _ k + 2 w _ k + 1 w _ k k = 0 & [ c c c 0 & - 0. 7 & 1 0. 7 & 0 & - 0. 7 - 1 & 0. 7 & 0 0. 7 & - 1 & 0. 7 0 & 0. 7 & - 1 - 0. 7 & 0 & 0. 7 1 & - 0. 7 & 0 - 0. 7 & 1 & - 0. 7 ] [ c a _ 0 a _ 1 a _ 2 ] = [ c 0 0 0 0 0 0 0 0 ] k = 7 &写出一个方程 Ax=b,其中 A 是一个 16 × 3 矩阵,由上面两个系数矩阵组成,b 属于 R¹6 ,由上面两个方程右边的向量组成。求由 Ax=b 的最小二乘解确定的 a₀, a₁, a₂ (上面数据中的 0.7 是 √(2)/2 的一个近似值,用以说明典型的实际问题中如何进行计算。如果用 0.707 代替,所得过滤系数与精确的算术计算结果 √(2)/4, 1/2, √(2)/4 相比至少有 7 位相同的十进制位数)。
- 首先计算
下一步,行化简法方程 A^(T)Ax = A^(T)b 的增广矩阵:
[ c c c c 3 & 9 & 0 & - 3 9 & 8 3 & 2 8 & - 6 5 0 & 2 8 & 1 4 & - 2 8 ] ∼ [ c c c c 1 & 3 & 0 & - 1 0 & 5 6 & 2 8 & - 5 6 0 & 2 8 & 1 4 & - 2 8 ] ∼ … ∼ [ c c c c 1 & 0 & - 3 / 2 & 2 0 & 1 & - 1 / 2 & - 1 0 & 0 & 0 & 0 ]一般最小二乘解是 x₁ = 2 + 3/2 x₃ , x₂ = -1 - 1/2 x₃ , x₃ 是自由变量.对一个特解,例如取 x₃ = 0 ,可得
hat boldsymbol x = [ c 2 - 1 0 ]为得到最小二乘误差,计算
hat boldsymbol b = A hat boldsymbol x = [ c c c 1 & - 3 & - 3 1 & 5 & 1 1 & 7 & 2 ] [ c 2 - 1 0 ] = [ c 5 - 3 - 5 ]结果出现 hat±bb = ±bb ,所以 | ±b b - hat±bb| = 0 .由于 ±bb 恰好属于Col A ,因此最小二乘误差为零.
- 如果 b 与 A 的列正交,那么 b 在 A 的列空间上的投影是 0。在这种情形下,Ax=b 的最小二乘解 hatx 满足 Ahatx=0 。