9.6 矩阵的条件数

病态矩阵

  中国有句古话“差之毫厘,谬以千里”,说的可能是测量时一个小小的误差,方程组的解就差距非常大。比如以下方程组:
x 1 + x 2 = 20 x 1 + 1.999 x 2 = 19.99 x_1+x_2=20\\ x_1+1.999x_2=19.99\\ x1+x2=20x1+1.999x2=19.99
  解得 x 1 = 10 , x 2 = 10 x_1=10,x_2=10 x1=10,x2=10。假如这是一个实验场景,再一次测量得到了另一个方程:
x 1 + x 2 = 20 x 1 + 1.001 x 2 = 19.99 x 1 = 30 , x 2 = − 10 x_1+x_2=20\\ x_1+1.001x_2=19.99\\ x_1=30,x_2=-10 x1+x2=20x1+1.001x2=19.99x1=30,x2=10
  这时候方程组的解为 x 1 = 30 , x 2 = − 10 x_1=30,x_2=-10 x1=30,x2=10。一个小小的系数误差,方程组的解就变动如此巨大。对于这种系数矩阵,我们就叫它病态矩阵ill-conditioned matrix

误差分析

  当然,病态矩阵无论是系数变动一下还是常数项变动一下,结果都千差万别。所以只需要研究下常数项的变动就可以了。假设原方程如下:
A x = b Ax=b Ax=b
  常数项出了点误差,误差为 e e e,方程就变成了:
A y = b + e Ay=b+e Ay=b+e
  如果常数项只是一个数字,那么常数项的误差系数就是 e b \frac{e}b be。但是向量没有除法,所有怎么衡量误差呢?这个时候就需要用到范数,把向量变成一个非负实数。所以常数项的误差就这样衡量:
∥ e ∥ ∥ b ∥ \frac{\parallel e\parallel}{\parallel b\parallel} be
  同意,方程解的误差就这样衡量:
∥ y − x ∥ ∥ x ∥ \frac{\parallel y-x\parallel}{\parallel x\parallel} xyx

误差不等式

  方程组误差不等式:
1 ∥ A ∥ ∥ A − 1 ∥ ∥ e ∥ ∥ b ∥ ≤ ∥ y − x ∥ ∥ x ∥ ≤ ∥ A ∥ ∥ A − 1 ∥ ∥ e ∥ ∥ b ∥ \frac1{\parallel A\parallel\parallel A^{-1}\parallel}\frac{\parallel e\parallel}{\parallel b\parallel}\le\frac{\parallel y-x\parallel}{\parallel x\parallel}\le\parallel A\parallel\parallel A^{-1}\parallel\frac{\parallel e\parallel}{\parallel b\parallel} A∥∥A11bexyx≤∥A∥∥A1be
  怎么证明呢?首先,两个方程相减,得到了以下方程:
A ( y − x ) = e ⇒ y − x = A − 1 e A(y-x)=e\\ \Rightarrow y-x=A^{-1}e A(yx)=eyx=A1e
  根据范数的相容不等式,有:
∥ y − x ∥ ≤ ∥ A − 1 ∥ ∥ e ∥ \parallel y-x\parallel\le\parallel A^{-1}\parallel \parallel e\parallel yx∥≤∥A1∥∥e
  再根据 b = A x b=Ax b=Ax和范数相容不等式,有:
∥ b ∥ ≤ ∥ A ∥ ∥ x ∥ ⇒ 1 ≤ ∥ A ∥ ∥ x ∥ ∥ b ∥ ⇒ 1 ∥ x ∥ ≤ ∥ A ∥ ∥ b ∥ \parallel b\parallel \le \parallel A\parallel \parallel x\parallel\\ \Rightarrow 1 \le \frac{\parallel A\parallel \parallel x\parallel}{\parallel b \parallel}\\ \Rightarrow \frac{1}{\parallel x\parallel} \le \frac{\parallel A\parallel }{\parallel b \parallel} b∥≤∥A∥∥x1bA∥∥xx1bA
  将两个不等式相乘得到了:
∥ y − x ∥ 1 ∥ x ∥ ≤ ∥ A − 1 ∥ ∥ e ∥ ∥ A ∥ ∥ b ∥ ⇒ ∥ y − x ∥ ∥ x ∥ ≤ ∥ A ∥ ∥ A − 1 ∥ ∥ e ∥ ∥ b ∥ \parallel y-x\parallel \frac{1}{\parallel x\parallel}\le \parallel A^{-1}\parallel \parallel e\parallel \frac{\parallel A\parallel }{\parallel b \parallel}\\ \Rightarrow \frac{\parallel y-x\parallel}{\parallel x\parallel}\le \parallel A\parallel \parallel A^{-1}\parallel \frac{ \parallel e\parallel}{\parallel b \parallel} yxx1≤∥A1∥∥ebAxyx≤∥A∥∥A1be
  右边就证明完了。根据 e = A ( y − x ) e=A(y-x) e=A(yx),有:
∥ e ∥ ≤ ∥ A ∥ ∥ y − x ∥ ⇒ ∥ e ∥ ∥ A ∥ ≤ ∥ y − x ∥ \parallel e \parallel \le \parallel A\parallel \parallel y-x \parallel\\ \Rightarrow \frac{\parallel e \parallel}{\parallel A\parallel } \le \parallel y-x \parallel\\ e∥≤∥A∥∥yxAe≤∥yx
  再根据 x = A − 1 b x=A^{-1}b x=A1b,有:
∥ x ∥ ≤ ∥ A − 1 ∥ ∥ b ∥ ⇒ ∥ A − 1 ∥ ∥ b ∥ ≥ ∥ x ∥ ⇒ 1 ∥ A − 1 ∥ ∥ b ∥ ≤ 1 ∥ x ∥ \parallel x \parallel \le \parallel A^{-1}\parallel \parallel b \parallel \\ \Rightarrow \parallel A^{-1}\parallel \parallel b \parallel \ge \parallel x \parallel\\ \Rightarrow \frac1{\parallel A^{-1}\parallel \parallel b \parallel} \le \frac1{\parallel x \parallel} x∥≤∥A1∥∥b⇒∥A1∥∥b∥≥∥xA1∥∥b1x1
  两个不等式合起来,得到:
∥ e ∥ ∥ A ∥ 1 ∥ A − 1 ∥ ∥ b ∥ ≤ ∥ y − x ∥ 1 ∥ x ∥ ⇒ 1 ∥ A ∥ ∥ A − 1 ∥ ∥ e ∥ ∥ b ∥ ≤ ∥ y − x ∥ ∥ x ∥ \frac{\parallel e \parallel}{\parallel A\parallel }\frac1{\parallel A^{-1}\parallel \parallel b \parallel} \le \parallel y-x \parallel\frac1{\parallel x \parallel}\\ \Rightarrow \frac{1}{\parallel A\parallel \parallel A^{-1}\parallel}\frac{\parallel e \parallel}{ \parallel b \parallel} \le \frac{\parallel y-x \parallel}{\parallel x \parallel} AeA1∥∥b1≤∥yxx1A∥∥A11bexyx
  左边就证明出来。

条件数

  误差 ∥ y − x ∥ ∥ x ∥ \frac{\parallel y-x\parallel}{\parallel x\parallel} xyx的最小值没有什么意义,因为随着 ∥ e ∥ \parallel e \parallel e变得很小,误差也很小,重点看方程解误差的最大值。 ∥ A ∥ ∥ A − 1 ∥ \parallel A\parallel \parallel A^{-1}\parallel A∥∥A1决定了对方程组常数项误差的最大放大倍数,这个就是矩阵的条件数condition number,符号为 K ( A ) K(A) K(A)。一般来说向量2-范数和矩阵F范数相容,所以我们就用F-范数计算矩阵范数。
  再来看前面那个方程组的条件数是多少:
A = ( 1 1 1 0.999 ) ∣ ∣ A ∣ ∣ F = 1.9995001875468779 A − 1 = ( − 998.9999999999991 999.9999999999991 999.9999999999991 − 999.9999999999991 ) ∣ ∣ A − 1 ∣ ∣ F = 1999.500187546876 ∣ ∣ A ∣ ∣ F ∣ ∣ A − 1 ∣ ∣ F = 3998.000999999996 A=\begin{pmatrix}1 & 1\\ 1 & 0.999\\ \end{pmatrix}\\ ||A||_F=1.9995001875468779\\ A^{-1}=\begin{pmatrix}-998.9999999999991 & 999.9999999999991\\ 999.9999999999991 & -999.9999999999991\\ \end{pmatrix}\\ ||A^{-1}||_F=1999.500187546876\\ ||A||_F||A^{-1}||_F=3998.000999999996 A=(1110.999)∣∣AF=1.9995001875468779A1=(998.9999999999991999.9999999999991999.9999999999991999.9999999999991)∣∣A1F=1999.500187546876∣∣AF∣∣A1F=3998.000999999996
  所以这个矩阵的条件数是非常大的,一个微小的误差就会导致方程的解变化很大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醒过来摸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值