跳转到内容

6.5 最小二乘问题

[美] David C. Lay、Steven R. Lay 等著,刘深泉等译机械工业出版社《线性代数及其应用(原书第5版)》大学本科 · 教材双语助读 (Alt+Y)

本章的介绍性实例中描述了一个解不存在的巨型方程组 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 是一个“最小二乘解”)。

图 6-23 对 x, b 与 Ahatx 的距离小于与 Ax 的距离

对上面给定的 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)会有多个解).

图 6-24 Rⁿ 中的最小二乘解 hatx

若 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 表示.

定理 13

方程 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 是一个最小二乘解。

例 1

求不相容方程组 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 是可逆的,但并不总是这样.下面例子中的矩阵出现于统计学中的方差分析问题中.

例 2

求 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 总是唯一的。)

定理 14

设 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 自身并没有在图中出现。

图 6-25

下面的例子表明,当 A 的列向量正交时,如何求出 Ax = b 的最小二乘解。这类矩阵常出现在下节要讨论的线性回归问题中。

例 4

求出 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节的描述)。

定理 15

给定一个 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 更快.

例 5

求出 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

练习题
  1. 令 A = 1 & -3 & -3 1 & 5 & 1 1 & 7 & 2 和 ±bb = 5 -3 -5 ,求 Ax = b 的一个最小二乘解,并且计算最小二乘解的误差.

  2. 当 b 与 A 的列正交时,对 Ax=b 的最小二乘解,你可得出什么结论?

习题6.5

在习题 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 ]
  1. 计算习题 3 中与最小二乘解相关的最小二乘误差.

在习题 5~6 中,求方程 Ax=b 的所有最小二乘解.

  1. 计算习题 4 中与最小二乘解相关的最小二乘误差.

在习题 9~12 中,求:(a)b 在 Col A 上的正交投影,(b)Ax = b 的最小二乘解.

  1. A=1 & 5 3 & 1 -2 & 4, b=4 -2 -3

  2. A=1&2 -1&4 1&2, b=3 -1 5

  3. A=4&0&1 1&-5&1 6&1&0 1&-1&-5, b=9 0 0 0

  4. A=1&1&0 1&0&-1 0&1&1 -1&1&-1, b=2 5 6 6

  5. 令 A = 3 & 4 -2 & 1 3 & 4 , ±bb = 11 -9 5 , ±bu = 5 -1 和 ±bv = 5 -2,计算 Au 和 Av,并与 b 相比较.u 是否为 Ax = b 的最小二乘解? (不用计算最小二乘解回答这个问题.)

  6. 令 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 的最小二乘解.

  1. 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
A = [ l l 1 & - 1 1 & 4 1 & - 1 1 & 4 ] = [ l l 1 / 2 & - 1 / 2 1 / 2 & 1 / 2 1 / 2 & - 1 / 2 1 / 2 & 1 / 2 ] [ l l 2 & 3 0 & 5 ], boldsymbol b = [ l - 1 6 5 7 ]

在习题 17~18 中,A 是 m × n 矩阵且 b 属于 R^(m) ,判断下列命题正确或错误,验证每一个答案.

  1. 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 只有一个最小二乘解.

  1. 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 .

  2. 设 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。

  3. 设 A 是一个 m × n 矩阵且 A^(T)A 是可逆的,证明

A 的列线性无关.(注意:不能假设 A 可逆,且更不一定是方阵.)

  1. 设 A 是 m × n 矩阵且列向量线性无关(注意:A 不一定是方阵). a. 利用习题 19 证明 A^(T)A 是可逆矩阵. b. 解释为什么 A 具有至少与行一样多的列. c. 确定 A 的秩.

  2. 利用习题 19 证明 rank A^(T)A = rank A . (提示: A^(T)A 有多少列?如何与 A^(T)A 的秩联系起来?)

  3. 假设 A 是 m × n 矩阵且有线性无关的列, b 属于 ℝ^m ,利用法方程给出一个计算 hatb 的公式, hatb 是 b 在 operatornameCol A 上的投影。(提示:首先求出 hatx ,这个公式不需要 operatornameCol A 的正交基。)

  4. 当 A 的列是单位正交时,找出方程 Ax=b 最小二乘解的一个公式.

  5. 列出下列方程组的所有最小二乘解:

l x + y = 2 x + y = 4
  1. [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 位相同的十进制位数)。

  1. 首先计算
A ^ T A = [ l l l 1 & 1 & 1 - 3 & 5 & 7 - 3 & 1 & 2 ] [ l l l 1 & - 3 & - 3 1 & 5 & 1 1 & 7 & 2 ] = [ l l l 3 & 9 & 0 9 & 8 3 & 2 8 0 & 2 8 & 1 4 ]A ^ T boldsymbol b = [ r r r 1 & 1 & 1 - 3 & 5 & 7 - 3 & 1 & 2 ] [ l 5 - 3 - 5 ] = [ l - 3 - 6 5 - 2 8 ]

下一步,行化简法方程 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 ,因此最小二乘误差为零.

  1. 如果 b 与 A 的列正交,那么 b 在 A 的列空间上的投影是 0。在这种情形下,Ax=b 的最小二乘解 hatx 满足 Ahatx=0 。
共 0 题