病态矩阵

  中国有句古话“差之毫厘,谬以千里”,说的可能是测量时一个小小的误差,方程组的解就差距非常大。比如以下方程组:
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} ∥b∥∥e∥​
  同意,方程解的误差就这样衡量:
∥ y − x ∥ ∥ x ∥ \frac{\parallel y-x\parallel}{\parallel x\parallel} ∥x∥∥y−x∥​

误差不等式

  方程组误差不等式:
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∥∥A−1∥1​∥b∥∥e∥​≤∥x∥∥y−x∥​≤∥A∥∥A−1∥∥b∥∥e∥​
  怎么证明呢?首先,两个方程相减,得到了以下方程:
A ( y − x ) = e ⇒ y − x = A − 1 e A(y-x)=e\\ \Rightarrow y-x=A^{-1}e A(y−x)=e⇒y−x=A−1e
  根据范数的相容不等式,有:
∥ y − x ∥ ≤ ∥ A − 1 ∥ ∥ e ∥ \parallel y-x\parallel\le\parallel A^{-1}\parallel \parallel e\parallel ∥y−x∥≤∥A−1∥∥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∥∥x∥⇒1≤∥b∥∥A∥∥x∥​⇒∥x∥1​≤∥b∥∥A∥​
  将两个不等式相乘得到了:
∥ 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} ∥y−x∥∥x∥1​≤∥A−1∥∥e∥∥b∥∥A∥​⇒∥x∥∥y−x∥​≤∥A∥∥A−1∥∥b∥∥e∥​
  右边就证明完了。根据 e = A ( y − x ) e=A(y-x) e=A(y−x),有:
∥ 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∥∥y−x∥⇒∥A∥∥e∥​≤∥y−x∥
  再根据 x = A − 1 b x=A^{-1}b x=A−1b,有:
∥ 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∥≤∥A−1∥∥b∥⇒∥A−1∥∥b∥≥∥x∥⇒∥A−1∥∥b∥1​≤∥x∥1​
  两个不等式合起来,得到:
∥ 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} ∥A∥∥e∥​∥A−1∥∥b∥1​≤∥y−x∥∥x∥1​⇒∥A∥∥A−1∥1​∥b∥∥e∥​≤∥x∥∥y−x∥​
  左边就证明出来。

条件数

  误差 ∥ y − x ∥ ∥ x ∥ \frac{\parallel y-x\parallel}{\parallel x\parallel} ∥x∥∥y−x∥​的最小值没有什么意义,因为随着 ∥ e ∥ \parallel e \parallel ∥e∥变得很小,误差也很小,重点看方程解误差的最大值。 ∥ A ∥ ∥ A − 1 ∥ \parallel A\parallel \parallel A^{-1}\parallel ∥A∥∥A−1∥决定了对方程组常数项误差的最大放大倍数,这个就是矩阵的条件数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=(11​10.999​)∣∣A∣∣F​=1.9995001875468779A−1=(−998.9999999999991999.9999999999991​999.9999999999991−999.9999999999991​)∣∣A−1∣∣F​=1999.500187546876∣∣A∣∣F​∣∣A−1∣∣F​=3998.000999999996
  所以这个矩阵的条件数是非常大的,一个微小的误差就会导致方程的解变化很大。

9.6 矩阵的条件数相关推荐

  1. 矩阵论(六):矩阵的条件数

    矩阵论专栏:专栏(文章按照顺序排序) 参考资料: 线性代数基础知识系列:1.2.3.4.5 矩阵分解-从Schur分解.特征值分解EVD到奇异值分解SVD(下) 矩阵的正定性 矩阵的条件数用于界定一个 ...

  2. cond--求矩阵的条件数

    [功能简介]求矩阵的条件数.矩阵的条件数用于衡量线性方程组的解对数据误差的敏感性,它反映出矩阵求逆及线性方程组解的精确程度. [语法格式] 1.c=cond(X) 求矩阵X的2-范数的条件数,即X的最 ...

  3. Matlab与线性代数 -- 矩阵的条件数

    本图文介绍了矩阵的条件数,以及Matlab中的求取方法.

  4. 矩阵的条件数、范数、奇异值、特征值

    矩阵的条件数 矩阵的条件数用来衡量一个矩阵是"良态的"还是"病态的". 条件数越大,矩阵越接近于奇异矩阵(不可逆矩阵),矩阵越"病态".在数 ...

  5. 2.3 matlab矩阵求值(矩阵的行列式值、矩阵的秩、矩阵的积、矩阵的范数和矩阵的条件数)

    1.方阵的行列式 把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为方阵所对应的行列式的值.det(A):求方阵A所对应的行列式的值. >> format rat; > ...

  6. 线性代数知识回顾:矩阵的秩,矩阵的范数,矩阵的条件数,矩阵的特征值和特征向量

    一.矩阵的秩 1.定义: 矩阵线性无关的行数或列数称为矩阵的秩 补充: 线性代数中的线性相关是指: 如果对于向量α1,α2,-,αn, 存在一组不全为0的实数k1.k2.-.kn, 使得:k1·α1+ ...

  7. 数值计算·第二集:矩阵的条件数(Matlab版)

    条件数的倒数:rcond(A):A为矩阵,rcond(A)为A的1范数的条件数的倒数的 估计值.如果A的条件数越好,那么其值在1.0附近:反之,则在无穷小附近. %%矩阵的条件数 A = [11,2, ...

  8. 数值计算---求希尔伯特矩阵的条件数

    这几天数值计算老师交给我们一个课程设计,计算希尔伯特矩阵的条件数,观察其随维数的变化情况. 下面是程序,主要用到幂法和反幂法. #include <iostream> #include & ...

  9. matlabnbsp;cond函数nbsp;矩阵的条件数

    Cond(A)称作矩阵A的条件数,为矩阵A的范数与A的逆矩阵的范数的乘积 定义 在MATLAB中,计算矩阵A的3种条件数的函数是: (1) cond(A,1) 计算A的1-范数下的条件数. (2) c ...

最新文章

  1. 一道并查集的(坑)题:关闭农场closing the farm
  2. NYOJ 658 字符串右移
  3. 分布式链路追踪框架的基本实现原理
  4. 如何成功构建大规模 Web 搜索引擎架构?
  5. 微信公众号怎么快速导出一个月的文章数据
  6. 自用java字符串工具类
  7. lua.c:82:10: fatal error: readline/readline.h: 没有那个文件或目录
  8. Python图书馆管理系统
  9. UZCMS镜像站群-v5.4旗舰版
  10. 组态王bitset用法_组态王使用问题解答8
  11. EEGLAB工具箱的下载与安装
  12. 加拿大MSB牌照简介
  13. logisim 数码管输出设计
  14. 手机usb共享计算机网络连接,手机如何通过USB共享电脑网络
  15. 西北工业大学计算机转专业,2021年西北工业大学大一新生转专业及入学考试相关规定...
  16. Linux系统搭建gitit wiki
  17. 记华为云服务器配置mysql-Navicat连接
  18. redis appendonly.aof文件损坏修复方法
  19. PCDMIS 零件坐标系创建技巧 4
  20. 电脑接口自动测试软件,通过多种接口总线与计算机实现自动检定/校准测试系统的设计...

热门文章

  1. 高职高专计算机b级,高职高专英语B级考试真题.docx
  2. JAVA毕业设计汽车美容管理计算机源码+lw文档+系统+调试部署+数据库
  3. debian usb android,Debian下挂载usb设备
  4. 京东手机webapp商城
  5. Arduino驱动oled显示动画
  6. 输出N阶方阵 ,输出该方阵及方阵主对角线的总和
  7. 2021年Java面试心得:java短信模板设计
  8. 好用的python打包软件_Python打包exe文件方法汇总【4种】
  9. 基于行人跟踪的例子(卡尔曼滤波+CAMShift)
  10. Java中if语句详解