数域上的线性方程组(或向量空间)的意义 在使用高斯消元法解方程组时, 大家有没有注意一个有意思的细节: 在整个解的过程中,只进行加减乘除四则运算, 没有涉及开方运算, 更没有涉及解二次以至更高次方程的计算。由此看来, 我们可以得到以下的推论:
假设线性方程组的增广矩阵的元素全部是有理数 (意思方程组的系数和常数项全部是有理数), 那么加、减、乘、除的消元计算结果只能是有理数。如果我们定义方程组的基础解系中的任意数为有理数, 则方程组的解集也是有理数, 从而我们可以完全在有理数的范围内讨论线性方程组。
类似地, 我们也可以把对方程组的讨论限制在实数域, 因为加、减、乘、除不会出现虚数。
对方程组的讨论可以限定在某个数域, 数域的定义是:
一个集合 K K K 是由一些数组成的,如果这些数中的任意两个数相加、减、乘、除的结果仍然属于 K K K ; 换句话讲, 集合里的全部数对加、减、乘、除四种运算是封闭的, 则我们称 K K K 为一个数域。
数域的例子有: 有理数域 Q \mathbf{Q} Q 、实数域 R \mathbf{R} R 、复数域 C \mathbf{C} C 等。
还有一个数域的例子是集合 { a + b i \{a+b \mathrm{i} { a + b i , ( a , b a, b a , b 是有理数) } \} } , 可以验证全体 a + b i a+b \mathrm{i} a + b i 对于加、减、乘、除封闭。
全体的整数集合不是数域, 因为对除法不封闭, 两整数相除会出现分数。
有了数域的概念后, 前面的讨论都可以限制在某一个数域上了。如以数域 K K K 的元素为系数和常数项的线性方程组, 就可以称之为数域 K K K 上的线性方程组。进一步, 对基础解系的任意数也可以限制在数域 K K K 内来。
如果以数域 K K K 的元素为分量的全体 n n n 维向量所组成的集合, 集合里的向量关于加法和数乘 (数乘的数也属于数域 K K K )封闭, 因此, 对这个向量集合的讨论就可以限制在数域 K K K 内进行,故称之为数域 K K K 上的 n n n 维向量空间。例如实数域 R \mathbf{R} R 的 n n n 维向量空间 R n \mathbf{R}^n R n , 复数域 C \mathbf{C} C 上的 n n n 维向量空间 C n \mathbf{C}^n C n 。
注:
原来俺在学习函数或映射时, 不太在意声明元素属于 ( ∈ ) (\in) ( ∈ ) 某个数域、定义域、值域之类,现在看来这个域不是随便叫的, 它和所讨论的具体问题的运算有关, 它和线性方程组甚至向量空间的运算有关! 比如, 欧几里得空间是定义在实数域上的, 而西空间就是定义在复数域上的。
超定方程组的最小二乘解的几何解释 最小二乘法的向量解的几何意义 到现在为止,一个线性方程组 A x = b \boldsymbol{A x}=\boldsymbol{b} Ax = b 可能有解也可能无解,如果 b \boldsymbol{b} b 不在 A \boldsymbol{A} A 的列空间中,则方程组是不相容的, 高斯消元法将无法使用。另外, 超定方程组也是不相容的。所谓的超定方程组是方程个数多于未知数个数的方程组, 而且每个方程都不能通过行变换化为其他的方程。在实践中由于测量误差的存在和多次测量, 超定方程组是很常见的。
尽管不相容的方程组在数学严格的意义上不可解, 但我们还要求必须解出来它们, 即使结果是个非精确的解。最小二乘法就是这样的一个求解方法。
对于线性方程组 A x = b \boldsymbol{A} \boldsymbol{x}=\boldsymbol{b} A x = b 无解,向量 b \boldsymbol{b} b 不在 A \boldsymbol{A} A 的列空间 H H H 中(见图 6-11 (a)), 那我们可以在列空间中找个替代向量来求解, 这个替代向量在误差要求的范围内可以接受。有一个寻找替代向量的方法就是把向量 b \boldsymbol{b} b 向列空间投影, 得到一个投影向量 b ′ \boldsymbol{b}^{\boldsymbol{\prime}} b ′ 作为替代向量。可以证明或看出, 这个投影 b ′ \boldsymbol{b}^{\boldsymbol{\prime}} b ′ 是所有列空间向量里最接近原向量 b \boldsymbol{b} b 的, 是误差最小的 , 因为在点 b \boldsymbol{b} b 到空间平面上任意一点的连线中只有到投影点是最近的,投影线正交(或垂直)于平面。比如,在空间平面上任找一个向量 b ′ ′ \boldsymbol{b}^{\prime \prime} b ′′ 或 b ′ ′ ′ \boldsymbol{b}^{\prime \prime \prime} b ′′′ (见图 6-11 (b)), 在直角三角形 Δ b b ′ b ′ ′ \Delta \boldsymbol{b} \boldsymbol{b}^{\prime} \boldsymbol{b}^{\prime \prime} Δ b b ′ b ′′ 或 Δ b b ′ b ′ ′ ′ \Delta \boldsymbol{b} \boldsymbol{b}^{\prime} \boldsymbol{b}^{\prime \prime \prime} Δ b b ′ b ′′′ 中,投影线 b b ′ \boldsymbol{b} \boldsymbol{b}^{\prime} b b ′ 作为直角边永远小于任意斜角边。也就是说, 作为误差的投影线, 其长度是最小的,亦即投影向量替代原向量的误差最小。
设向量的坐标式为 b = ( x b 1 , x b 2 , … , x b n ) , b ′ = ( x b 1 ′ , x b 2 ′ , ⋯ , x b n ′ ) \boldsymbol{b}=\left(x_{b 1}, x_{b 2}, \ldots, x_{b n}\right), \boldsymbol{b}^{\prime}=\left(x_{b 1}^{\prime}, x_{b 2}^{\prime}, \cdots, x_{b n}^{\prime}\right) b = ( x b 1 , x b 2 , … , x bn ) , b ′ = ( x b 1 ′ , x b 2 ′ , ⋯ , x bn ′ ) , 那么投影线向量是 b \boldsymbol{b} b 和 b ′ \boldsymbol{b}^{\prime} b ′ 相减的差 (就是误差向量):
b b ′ → = b − b ′ = ( x b 1 − x b 1 ′ , x b 2 − x b 2 ′ , ⋯ , x b n − x b n ′ ) \overrightarrow{\boldsymbol{b b}^{\prime}}=\boldsymbol{b}-\boldsymbol{b}^{\prime}=\left(x_{b 1}-x_{b 1}^{\prime}, x_{b 2}-x_{b 2}^{\prime}, \cdots, x_{b n}-x_{b n}^{\prime}\right) bb ′ = b − b ′ = ( x b 1 − x b 1 ′ , x b 2 − x b 2 ′ , ⋯ , x bn − x bn ′ ) 其长度的平方就是
∣ b b → ∣ 2 = ( x b 1 − x b 1 ′ ) 2 + ( x b 2 − x b 2 ′ ) 2 + ⋯ + ( x b n − x b n ′ ) 2 |\overrightarrow{b \boldsymbol{b}}|^2=\left(x_{b 1}-x_{b 1}^{\prime}\right)^2+\left(x_{b 2}-x_{b 2}^{\prime}\right)^2+\cdots+\left(x_{b n}-x_{b n}^{\prime}\right)^2 ∣ b b ∣ 2 = ( x b 1 − x b 1 ′ ) 2 + ( x b 2 − x b 2 ′ ) 2 + ⋯ + ( x bn − x bn ′ ) 2 长度最小等价于长度的平方最小。现在看来这个最小误差是以平方和最小的形式来评估的,因此称为最小二乘法 。
总结, 方程组 A x = b \boldsymbol{A x}=\boldsymbol{b} Ax = b 的最小二乘解 (近似解) 就是方程组 A x = b ′ \boldsymbol{A x}=\boldsymbol{b}^{\prime} Ax = b ′ 的解。
一般最小二乘解的公式推导 一般地, 方程组 A x = b \boldsymbol{A x}=\boldsymbol{b} Ax = b 的最小二乘解有一个公式, 我们给出推导的解释。
我们知道, 误差向量 b − b ′ \boldsymbol{b}-\boldsymbol{b}^{\prime} b − b ′ 与矩阵 A \boldsymbol{A} A 的列空间正交, 也就是与 A \boldsymbol{A} A 的每个列向量正交, 那么向量 b − b ′ \boldsymbol{b}-\boldsymbol{b}^{\prime} b − b ′ 与每个列向量的点积等于零; A \boldsymbol{A} A 转置一下, 列向量变成行向量, 仍然有内积等于零:
A T ( b − b ′ ) = 0 \boldsymbol{A}^{\mathrm{T}}\left(\boldsymbol{b}-\boldsymbol{b}^{\prime}\right)=\mathbf{0} A T ( b − b ′ ) = 0 把 A x = b ′ \boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}^{\prime} A x = b ′ 代入上式, 有 A T ( b − A x ) = 0 \boldsymbol{A}^{\mathrm{T}}(\boldsymbol{b}-\boldsymbol{A x})=\mathbf{0} A T ( b − Ax ) = 0 。化简得到所谓的正规方程或法方程:
A T A x = A T b \boldsymbol{A}^{\mathrm{T}} \boldsymbol{A} \boldsymbol{x}=\boldsymbol{A}^{\mathrm{T}} \boldsymbol{b} A T A x = A T b 这个方程组的解就是原方程组的最小二乘解。解出这个方程组, 问题就搞定了。
进一步, 如果 A T A \boldsymbol{A}^{\mathrm{T}} \boldsymbol{A} A T A 可逆 (注意, 不可逆上述正规方程也有解), 那么有解的公式为
x = ( A T A ) − 1 A T b \boldsymbol{x}=\left(\boldsymbol{A}^{\mathrm{T}} \boldsymbol{A}\right)^{-1} \boldsymbol{A}^{\mathrm{T}} \boldsymbol{b} x = ( A T A ) − 1 A T b 最小二乘解的例析 下面我们看一个例子, 由此了解最小二乘解的解析上的几何意义。
例在科学或工程中的一项任务就是分析或理解一些数量变化之间的联系, 其中一些数量的点列形成的图形近似接近于直线。比如在向火星发射探测器时, 我们每隔一段时间测量一下探测器到地球的距离。在这种情况下, t t t 是时间, y y y 是距离, 假设探测器发动机不再工作且地球对其的引力可忽略, 那么这个探测器应该是以近乎常数的速度 V V V 在运动: y = Y 0 + V t y=Y_0+V t y = Y 0 + V t 。经过 m m m 次测量后得到一组方程组:
{ Y 0 + V t 1 = y 1 Y 0 + V t 2 = y 2 ⋮ Y 0 + V t m = y m \left\{\begin{array}{c}
Y_0+V t_1=y_1 \\
Y_0+V t_2=y_2 \\
\vdots \\
Y_0+V t_m=y_m
\end{array}\right. ⎩ ⎨ ⎧ Y 0 + V t 1 = y 1 Y 0 + V t 2 = y 2 ⋮ Y 0 + V t m = y m 这是一个超定方程组, 因存在误差而无解 (如果不存在误差的话, 两次测量就可以搞定直线方程了)。因有两个未知数 Y 0 、 V Y_0 、 V Y 0 、 V 需要确定, 根据最小二乘法的图解, 这是在 m m m 维空间里, 一个 m m m 维向量向一个二维子空间投影的问题。把方程组写成向量形式:
[ 1 t 1 1 t 2 ⋮ ⋮ 1 t m ] ( Y 0 V ) = ( y 1 y 2 ⋮ y m ) \left[\begin{array}{cc}
1 & t_1 \\
1 & t_2 \\
\vdots & \vdots \\
1 & t_m
\end{array}\right]\left(\begin{array}{l}
Y_0 \\
V
\end{array}\right)=\left(\begin{array}{c}
y_1 \\
y_2 \\
\vdots \\
y_m
\end{array}\right) 1 1 ⋮ 1 t 1 t 2 ⋮ t m ( Y 0 V ) = y 1 y 2 ⋮ y m 假设测量了 4 组时间和距离的数据 ( t , y ) (t, y) ( t , y ) 为 ( 0 , 0 ) 、 ( 1 , 1 ) 、 ( 3 , 2 ) 、 ( 4 , 5 ) (0,0) 、(1,1) 、(3,2) 、(4,5) ( 0 , 0 ) 、 ( 1 , 1 ) 、 ( 3 , 2 ) 、 ( 4 , 5 ) , 则相应的方程组就是
[ 1 0 1 1 1 3 1 4 ] ( Y 0 V ) = ( 0 1 2 5 ) \left[\begin{array}{ll}
1 & 0 \\
1 & 1 \\
1 & 3 \\
1 & 4
\end{array}\right]\left(\begin{array}{l}
Y_0 \\
V
\end{array}\right)=\left(\begin{array}{l}
0 \\
1 \\
2 \\
5
\end{array}\right) 1 1 1 1 0 1 3 4 ( Y 0 V ) = 0 1 2 5 对应于 A x = b \boldsymbol{A} \boldsymbol{x}=\boldsymbol{b} A x = b , 如使用公式计算, 首先要计算 A T A \boldsymbol{A}^{\mathrm{T}} \boldsymbol{A} A T A 及其逆:
A T A = [ 1 1 1 1 0 1 3 4 ] [ 1 0 1 1 1 3 1 4 ] = [ 4 8 8 26 ] , ( A T A ) − 1 = 1 20 [ 13 − 4 − 4 2 ] \boldsymbol{A}^{\mathrm{T}} \boldsymbol{A}=\left[\begin{array}{llll}
1 & 1 & 1 & 1 \\
0 & 1 & 3 & 4
\end{array}\right]\left[\begin{array}{ll}
1 & 0 \\
1 & 1 \\
1 & 3 \\
1 & 4
\end{array}\right]=\left[\begin{array}{cc}
4 & 8 \\
8 & 26
\end{array}\right], \quad\left(\boldsymbol{A}^{\mathrm{T}} \boldsymbol{A}\right)^{-1}=\frac{1}{20}\left[\begin{array}{cc}
13 & -4 \\
-4 & 2
\end{array}\right] A T A = [ 1 0 1 1 1 3 1 4 ] 1 1 1 1 0 1 3 4 = [ 4 8 8 26 ] , ( A T A ) − 1 = 20 1 [ 13 − 4 − 4 2 ] 于是由最小二乘解公式
(6-9) 得
( Y 0 V ) = ( A T A ) − 1 A T b = 1 20 [ 13 − 4 − 4 2 ] [ 1 1 1 1 0 1 3 4 ] ( 0 1 2 5 ) = ( − 0.2 1.1 ) \left(\begin{array}{l}
Y_0 \\
V
\end{array}\right)=\left(\boldsymbol{A}^{\mathrm{T}} \boldsymbol{A}\right)^{-1} \boldsymbol{A}^{\mathrm{T}} \boldsymbol{b}=\frac{1}{20}\left[\begin{array}{cc}
13 & -4 \\
-4 & 2
\end{array}\right]\left[\begin{array}{llll}
1 & 1 & 1 & 1 \\
0 & 1 & 3 & 4
\end{array}\right]\left(\begin{array}{l}
0 \\
1 \\
2 \\
5
\end{array}\right)=\left(\begin{array}{c}
-0.2 \\
1.1
\end{array}\right) ( Y 0 V ) = ( A T A ) − 1 A T b = 20 1 [ 13 − 4 − 4 2 ] [ 1 0 1 1 1 3 1 4 ] 0 1 2 5 = ( − 0.2 1.1 ) 因此最佳拟合直线为 y = − 0.2 + 1.1 t y=-0.2+1.1 t y = − 0.2 + 1.1 t , 见图 6-12。其中, 所测量的数据 y i y_i y i 到直线的坚直距离的平方和最小。
[本章完]