误差问题是不可避免的,在大量的数据样本中,如果能去掉部分可能造成误差很大的样本,那么对于应用矩阵得到的结果的可靠性则大大加强。例如有999个员工的月收入为 1 0 4 10^4 104元,马云的月收入为 1 0 9 {10^9} 109元,现在问这1000个人的平均月收入,显然将马云的这一数据去掉,更能反映出总体的平均月收入水平。研究矩阵计算 A x = b Ax=b Ax=b中的误差问题,研究方法是对b或者A施加微小的扰动,再通过计算x的变化,得出扰动对于x误差的影响。
方程 A x = b Ax=b Ax=b变化为:
A ( x + Δ x ) = b + Δ b A(x+\Delta x)=b+\Delta b A(x+Δx)=b+Δb
A Δ x = Δ b A\Delta x=\Delta b AΔx=Δb
Δ x = A − 1 Δ b \Delta x=A^{-1}\Delta b Δx=A−1Δb
如果 A A A接近奇艺矩阵,即 ∣ A ∣ ≈ 0 \left | A \right | \approx 0 ∣A∣≈0,则 ∣ A − 1 ∣ \left | A^{-1} \right | ∣∣A−1∣∣很大,这就说明当 Δ b \Delta b Δb取某些方向时, Δ x \Delta x Δx将会非常大。
为方便研究,假定 A A A是正定矩阵,且含有n个特征值: 0 < λ 1 ⩽ λ 2 ⩽ . . . ⩽ λ n , 0< \lambda_1\leqslant \lambda_2\leqslant...\leqslant\lambda_n, 0<λ1⩽λ2⩽...⩽λn,对应的特征向量为:
x 1 , x 2 , . . . , x n . x_1,x_2,...,x_n. x1,x2,...,xn.则任意向量都是特征向量的线性组合。
A A A是正定矩阵则 A − 1 A^{-1} A−1也是正定矩阵,且含有n个特征值:
0 < 1 λ n ⩽ 1 λ n − 1 ⩽ . . . ⩽ 1 λ 1 0<\frac{1}{\lambda_n} \leqslant \frac{1}{\lambda_{n-1}}\leqslant...\leqslant\frac{1}{\lambda_1} 0<λn1⩽λn−11⩽...⩽λ11
x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn同时也是 A − 1 A^{-1} A−1的特征向量。
现在设 Δ b = ϵ x i \Delta b=\epsilon x_i Δb=ϵxi,则
Δ x = A − 1 ϵ x i = ϵ x i λ i = Δ b λ i \Delta x=A^{-1} \epsilon x_i=\frac{\epsilon x_i}{\lambda_i}=\frac{\Delta b}{\lambda _i} Δx=A−1ϵxi=λiϵxi=λiΔb
这说明当 b b b取 x 1 x_1 x1方向时,为最坏的扰动,当 λ 1 \lambda_1 λ1接近于0时, x x x将异常灵敏。
上述分析过程中存在一个明显的缺陷:如果将 A A A扩大 1000 1000 1000倍,即 1000 A 1000A 1000A,则特征值 λ i \lambda_i λi变为 1000 λ i 1000\lambda_i 1000λi,看起来误差 Δ x \Delta x Δx也缩小了1000倍。如此简单的标量变化就能将一个病态矩阵变化为优良矩阵,明显是不可能的。所以接下来应当研究 x x x与 b b b的相对误差。即
Δ b b \frac{\Delta b}{b} bΔb 与 Δ x x \frac{\Delta x}{x} xΔx的关系.
对于正定矩阵 A A A, A x = b Ax=b Ax=b的解为 x = A − 1 b 和 误 差 Δ x = A − 1 Δ b x=A^{-1}b和误差\Delta x=A^{-1}\Delta b x=A−1b和误差Δx=A−1Δb永远满足不等式:
∥ x ∥ ≥ ∥ b ∥ λ n , ∥ Δ x ∥ ≤ ∥ Δ b ∥ λ 1 \left \| x \right \|\geq \frac{\left \|b\right\| }{\lambda_n},\left \| \Delta x \right \|\leq \frac{\left \|\Delta b\right\| }{\lambda_1} ∥x∥≥λn∥b∥,∥Δx∥≤λ1∥Δb∥
证:由于 A A A为正定矩阵,故存在正交矩阵Q,使得 Q − 1 A Q = Q T A Q = Λ Q^{-1}AQ=Q^{T}AQ=\Lambda Q−1AQ=QTAQ=Λ .设 b = Q y b=Qy b=Qy
A = Q Λ Q T , A − 1 = Q Λ − 1 Q T A=Q\Lambda Q^T,A^{-1}=Q\Lambda ^{-1}Q^T A=QΛQT,A−1=QΛ−1QT,
∥ b ∥ 2 = ( Q y ) T ( Q y ) = y T y = y 1 2 + y 2 2 + . . . + y n 2 . \left \|b\right \|^2=(Qy)^T(Qy)=y^Ty=y_1^2+y_2^2+...+y_n^2. ∥b∥2=(Qy)T(Qy)=yTy=y12+y22+...+yn2.
x T x = ∥ x ∥ 2 = ( A − 1 Q y ) T ( A − 1 Q y ) = ( Q Λ − 1 Q T Q y ) T ( Q Λ − 1 Q T Q y ) = ( Q Λ − 1 y ) T ( Q Λ − 1 y ) = y T Λ − 1 Q T Q Λ − 1 y = y T Λ − 2 y x^Tx=\left \|x\right \|^2=(A^{-1}Qy)^T(A^{-1}Qy)=(Q\Lambda ^{-1}Q^TQy)^T(Q\Lambda ^{-1}Q^TQy)=(Q\Lambda ^{-1}y)^T(Q\Lambda ^{-1}y)=y^T\Lambda ^{-1}Q^TQ\Lambda ^{-1}y=y^T\Lambda ^{-2}y xTx=∥x∥2=(A−1Qy)T(A−1Qy)=(QΛ−1QTQy)T(QΛ−1QTQy)=(QΛ−1y)T(QΛ−1y)=yTΛ−1QTQΛ−1y=yTΛ−2y
= [ y 1 λ 1 − 2 , y 2 λ 2 − 2 , . . . . , y n λ n − 2 ] [ y 1 , y 2 , . . . , y n ] T = y 1 2 λ 1 2 + y 2 2 λ 2 2 + . . . + y n 2 λ n 2 =[y_1\lambda _1^{-2},y_2\lambda _2^{-2},....,y_n\lambda _n^{-2}][y_1,y_2,...,y_n]^T=\frac{y_1^2}{\lambda_1^2}+\frac{y_2^2}{\lambda_2^2}+...+\frac{y_n^2}{\lambda_n^2} =[y1λ1−2,y2λ2−2,....,ynλn−2][y1,y2,...,yn]T=λ12y12+λ22y22+...+λn2yn2 ≥ y 1 2 λ n 2 + y 2 2 λ n 2 + . . . + y n 2 λ n 2 \geq \frac{y_1^2}{\lambda_n^2}+\frac{y_2^2}{\lambda_n^2}+...+\frac{y_n^2}{\lambda_n^2} ≥λn2y12+λn2y22+...+λn2yn2
= y 1 2 + y 2 2 + . . . + y n 2 λ n 2 = ∥ b ∥ 2 λ n 2 =\frac{y_1^2+y_2^2+...+y_n^2}{\lambda_n^2}=\frac{\left \|b\right\|^2}{\lambda_n^2} =λn2y12+y22+...+yn2=λn2∥b∥2
同理可得:
∥ Δ x ∥ 2 ≤ ∥ Δ b ∥ 2 λ 1 2 \left \|\Delta x\right \|^2 \leq \frac{\left \|\Delta b\right\|^2}{\lambda_1^2} ∥Δx∥2≤λ12∥Δb∥2
由这两个不等式,可以得到:
∥ Δ x ∥ ∥ x ∥ ≤ ∥ Δ b ∥ λ 1 λ n ∥ b ∥ = λ n λ 1 ∥ Δ b ∥ ∥ b ∥ \frac{\left \| \Delta x \right \|}{\left \| x \right \|} \leq \frac{\left \| \Delta b \right \|}{\lambda_1} \frac{\lambda_n}{\left \| b \right \|}=\frac{\lambda_n}{\lambda_1}\frac{\left \| \Delta b \right \|}{\left \| b \right \|} ∥x∥∥Δx∥≤λ1∥Δb∥∥b∥λn=λ1λn∥b∥∥Δb∥
等号当特征值都相等时取到。
比值 c = λ n λ 1 = λ m a x λ m i n c=\frac{\lambda_n}{\lambda_1}=\frac{\lambda_{max}}{\lambda_{min}} c=λ1λn=λminλmax称为矩阵A的条件数。
条件数也是一种度量病态矩阵的方法,c越大,误差可能就越大。
上述研究过程中 A A A要求是正定矩阵,对于一般的矩阵,应采用更普遍的度量方法。
回顾对于正定矩阵的研究思路, b b b的扰动,如果出现在矩阵某个特征向量方向上,则解 x x x的误差将会异常灵敏。对于一般的矩阵,同样可以定义一个矩阵 A A A对于 x x x的放大作用的最大值,即范数:
∥ A ∥ = m a x x ≠ 0 ( ∥ A x ∥ ∥ x ∥ ) \left \| A \right \|=max_{x\neq 0} (\frac{\left \| Ax \right \|}{\left \| x \right \|}) ∥A∥=maxx̸=0(∥x∥∥Ax∥)
A的范数即限制了矩阵A对于x的放大作用:
∥ A x ∥ ≤ ∥ A ∥ ∥ x ∥ \left \| Ax \right \| \leq \left \| A \right \|\left \| x \right \| ∥Ax∥≤∥A∥∥x∥
同样对 b b b施加扰动:
b = A x , Δ x = A − 1 Δ b , b=Ax,\Delta x=A^{-1}\Delta b, b=Ax,Δx=A−1Δb,
∥ b ∥ ≤ ∥ A ∥ ∥ x ∥ , \left \| b \right \| \leq \left \| A \right \| \left \| x \right \|, ∥b∥≤∥A∥∥x∥,
∥ Δ x ∥ ≤ ∥ A − 1 ∥ ∥ Δ b ∥ , \left \| \Delta x \right \| \leq \left \| A^{-1} \right \| \left \| \Delta b \right \|, ∥Δx∥≤∥∥A−1∥∥∥Δb∥,
则可以得到:
∥ Δ x ∥ ∥ x ∥ ≤ ∥ A ∥ ∥ A − 1 ∥ ∥ Δ b ∥ ∥ b ∥ , \frac{\left \| \Delta x \right \|}{\left \| x \right \|} \leq \left \| A \right \|\left \| A^{-1} \right \|\frac{\left \| \Delta b \right \|}{\left \| b \right \|}, ∥x∥∥Δx∥≤∥A∥∥∥A−1∥∥∥b∥∥Δb∥,
对比上面条件数的公式,可得条件数 c = ∥ A ∥ ∥ A − 1 ∥ c=\left \| A \right \|\left \| A^{-1} \right \| c=∥A∥∥∥A−1∥∥
∥ Δ x ∥ ∥ x ∥ ≤ c ∥ Δ b ∥ ∥ b ∥ \frac{\left \| \Delta x \right \|}{\left \| x \right \|} \leq c\frac{\left \| \Delta b \right \|}{\left \| b \right \|} ∥x∥∥Δx∥≤c∥b∥∥Δb∥
现在稍微研究一下对于矩阵 A A A的施加扰动 Δ A \Delta A ΔA,则
A x = b , ( A + Δ A ) ( x + Δ x ) = b , Ax=b,(A+\Delta A)(x+\Delta x)=b, Ax=b,(A+ΔA)(x+Δx)=b,
Δ A x + Δ A Δ x + A Δ x = 0 , \Delta Ax+\Delta A\Delta x+A\Delta x=0, ΔAx+ΔAΔx+AΔx=0,
Δ x = − A − 1 ( Δ A ) ( x + Δ x ) . \Delta x=-A^{-1}(\Delta A)(x+\Delta x). Δx=−A−1(ΔA)(x+Δx).
∥ Δ x ∥ ≤ ∥ A − 1 ∥ ∥ Δ A ∥ ∥ x + Δ x ∥ , \left \| \Delta x \right \| \leq \left \| A^{-1} \right \|\left \| \Delta A \right \|\left \| x+\Delta x \right \|, ∥Δx∥≤∥∥A−1∥∥∥ΔA∥∥x+Δx∥,
∥ Δ x ∥ ∥ x + Δ x ∥ ≤ ∥ A − 1 ∥ ∥ Δ A ∥ ∥ A ∥ ∥ A ∥ = c ∥ Δ A ∥ ∥ A ∥ \frac{\left \| \Delta x \right \|}{\left \| x+\Delta x \right \|} \leq \frac{\left \| A^{-1} \right \| \left \| \Delta A \right \|\left \| A \right \|}{\left \| A \right \|}=c\frac{\left \| \Delta A \right \|}{\left \| A \right \|} ∥x+Δx∥∥Δx∥≤∥A∥∥∥A−1∥∥∥ΔA∥∥A∥=c∥A∥∥ΔA∥
可见对于矩阵 A A A施加扰动,仍可以以条件数 c c c度量误差。误差分析的基础:1)由问题的自然灵敏度 c c c度量;2)在求解过程中的实际计算误差 Δ A \Delta A ΔA 或 Δ b \Delta b Δb。这就是维尔克逊误差分析的基础。如果采用“部分选主元法”则可以保证控制住 Δ A \Delta A ΔA或 Δ b \Delta b Δb,则误差均由条件数 c c c来承担。
上面只研究了范数和条件数的关系,接下来给出范数的计算公式。
∥ A ∥ 2 = m a x ( ∥ A x ∥ 2 ∥ x ∥ 2 ) = m a x ( x T A T A x x T x ) \left \| A \right \|^2=max(\frac{\left \| Ax \right \|^2}{\left \| x \right \|^2})=max(\frac{x^TA^TAx}{x^Tx}) ∥A∥2=max(∥x∥2∥Ax∥2)=max(xTxxTATAx)
右边表达式即是 A T A A^TA ATA的Rayleigh商,但有所不同的是 A T A A^TA ATA只是对称矩阵,而不一定是正定矩阵。此处求最大值显然是指其绝对值最大,类似于研究正定矩阵的方法可以得出右边式子的最大值即为 m a x ( ∣ λ A T A ∣ ) max(\left | \lambda _{A^TA} \right |) max(∣λATA∣)
矩阵 A A A的范数和条件数,在实际问题中只是估算出来,特征值的求解问题是求解高次方程,难度很大。 A T A A^TA ATA的条件数是 A A A的条件数的平方,这说明最小二乘法所用的方程 A T A x = A T b A^TAx=A^Tb ATAx=ATb,其计算误差比 A x = b Ax=b Ax=b大很多。