http://blog.csdn.net/pipisorry/article/details/52241141

本blog主要内容有:矩阵的奇异性、条件数与病态矩阵、矩阵求逆。

奇异矩阵和非奇异矩阵singular matrix&nonsingular matrix

概念和定义

若n阶矩阵A的行列式不为零,即 |A|≠0,则称A为非奇异矩阵或满秩矩阵,否则称A为奇异矩阵或降秩矩阵。

奇异矩阵是线性代数的概念,就是对应的行列式等于0的方阵。

奇异矩阵和非奇异矩阵的判断和性质

奇异矩阵一定是方阵吗

首先,看这个矩阵是不是方阵(即行数和列数相等的矩

阵。若行数和列数不相等,那就谈不上奇异矩阵和非奇异矩阵)。

不过限定在某个知识范围内是指方阵,例如线性代数当中只对方阵进行奇异矩阵的定义。正常来讲是不限定必须是方阵的,比如在奇异值分解当中,用作估计的时候会定义奇异值矩阵不满秩的矩阵为奇异阵,当然就不再限定是方阵。这种情况下矩阵不可求广义逆,即使求莫奈伪逆也要用特殊的方法,另外这种矩阵如果有物理意义的话,往往不满足正交核函数分解的条件。


一个矩阵A非奇异当且仅当:(等价的概念)
A的所有特征值都不为零(lambda=0则|A|=0,只要矩阵A有一个特征值为零,一定是奇异矩阵。即零特征值反映矩阵的奇异性)
或A的行列式不为零,即 |A|≠0(A 为可逆矩阵,也即A的行列式不为零)
或A可逆
或A的秩为n(非奇异矩阵 A满秩,Rank(A)=n;奇异矩阵 A的秩Rank(A)<n)
或A的列向量线性无关
或矩阵方程AX=b有唯一非零解(如果A为奇异矩阵,则AX=b有无穷解或者无解)
或矩阵方程AX=0有且仅有零解(如果A为奇异矩阵,则AX=0有无穷解)
一个非奇异矩阵可表示成若干个初等矩阵之积。
一个矩阵非奇异当且仅当它代表的线性变换是个自同构。Note: 若A为非奇异矩阵,其顺序主子阵Ai(i=1,...,n-1)不一定均非奇异。
如果n 阶方阵A奇异,则一定存在一个n*1阶非零向量X使: X'AX=0;成立。
[更详细的描述ref:张贤达: 矩阵分析与应用 1.7逆矩阵与伪逆矩阵]

注意事项

计量经济学中,当样本容量太少或是当变量间存在完全相关性时会提示“near singular matrix”,意为“近奇异矩阵”。
在信号处理中,当信号协方差矩阵不是奇异矩阵时,则信号不相关或者部分相关。

[百度百科:奇异矩阵]
[What is the difference between a discontinuity and a singularity? - Quora]
皮皮blog

优化有两大难题,一是:局部最小值,二是:ill-condition病态问题。前者俺就不说了,大家都懂吧,我们要找的是全局最小值,如果局部最小值太多,那我们的优化算法就很容易陷入局部最小而不能自拔,这很明显不是观众愿意看到的剧情。那下面我们来聊聊ill-condition。

条件数condition number与病态矩阵

ill-condition对应的是well-condition,分别代表什么?

假设我们有个方程组AX=b,我们需要求解X。如果A或者b稍微的改变,会使得X的解发生很大的改变,那么这个方程组系统就是ill-condition的,反之就是well-condition的。

举个例子

左边的那个。第一行假设是我们的AX=b,第二行我们稍微改变下b,得到的x和没改变前的差别很大。第三行我们稍微改变下系数矩阵A,可以看到结果的变化也很大。换句话来说,这个系统的解对系数矩阵A或者b太敏感了。又因为一般我们的系数矩阵A和b是从实验数据里面估计得到的,所以它是存在误差的,如果我们的系统对这个误差是可以容忍的就还好,但系统对这个误差太敏感了,以至于我们的解的误差更大,那这个解就太不靠谱了。所以这个方程组系统就是ill-conditioned病态的,不正常不稳定有问题的。

右边那个就叫well-condition的系统了。

对于一个ill-condition的系统,输入稍微改变下,输出就发生很大的改变,这表明我们的系统不能实用。例如对于一个回归问题y=f(x),我们是用训练样本x去训练模型f,使得y尽量输出我们期待的值,例如0。那假如我们遇到一个样本x’,这个样本和训练样本x差别很小,面对他,系统本应该输出和上面的y差不多的值的,例如0.00001,最后却给我输出了一个0.9999,这很明显不对呀。就好像,你很熟悉的一个人脸上长了个青春痘,你就不认识他了,那你大脑就太差劲了,哈哈。

奇异的本质原因在于矩阵有0特征值,x在对应特征向量的方向上运动不改变Ax的值。如果一个特征值比其它特征值在数量级上小很多,x在对应特征向量方向上很大的移动才能产生b微小的变化,这就解释了为什么这个矩阵为什么会有大的条件数,事实上,正规阵在二范数下的条件数就可以表示成 abs(最大特征值/最小特征值)。

病态的衡量标准:条件数condition number

所以如果一个系统是ill-conditioned病态的,我们就会对它的结果产生怀疑。那到底要相信它多少呢?我们得找个标准来衡量吧,因为有些系统的病没那么重,它的结果还是可以相信的。终于回来了,上面的condition number就是拿来衡量ill-condition系统的可信度的。

condition number的定义

条件数是线性方程组Ax=b的解对b中的误差或不确定度的敏感性的度量。数学定义为矩阵A的条件数等于A的范数与A的逆的范数的乘积,即cond(A)=‖A‖·‖A的逆‖,对应矩阵的3种范数,相应地可以定义3种条件数。

condition number衡量的是输入发生微小变化的时候,输出会发生多大的变化。也就是系统对微小变化的敏感度。

从线性代数的分析可知,矩阵的条件数总是大于1,正交矩阵的条件数等于1,奇异矩阵的条件数为无穷大,而病态矩阵的条件数则为比较大的数据(远大于1)。也就是说奇异矩阵一定是病态的!

如果方阵A是非奇异的,那么A的conditionnumber定义为:

也就是矩阵A的norm乘以它的逆的norm。所以具体的值是多少,就要看你选择的norm是什么了。

如果方阵A是奇异的,那么A的condition number就是正无穷大了。

实际上,每一个可逆方阵都存在一个condition number。但如果要计算它,我们需要先知道这个方阵的norm(范数)和Machine Epsilon(机器的精度)。

当然,这个定义依赖于范数的选取。

  • 若∥⋅∥{\displaystyle \|\cdot \|} 是 l2{\displaystyle l_{2}} 矩阵范数则
κ(A)=σmax(A)σmin(A){\displaystyle \kappa (A)={\frac {\sigma _{max}(A)}{\sigma _{min}(A)}}} 其中σmax(A){\displaystyle \sigma _{max}(A)}和σmin(A){\displaystyle \sigma _{min}(A)}分别是A{\displaystyle A}的极大和极小奇异值。因此

  • 若A{\displaystyle A}是正规矩阵则
κ(A)=|λmax(A)λmin(A)|{\displaystyle \kappa (A)=\left|{\frac {\lambda _{max}(A)}{\lambda _{min}(A)}}\right|} (λmax(A),λmin(A){\displaystyle \lambda _{max}(A),\ \lambda _{min}(A)}分别是A{\displaystyle A}的极大和极小(根据模数)特征值)
  • 若A{\displaystyle A}是酉矩阵则
κ(A)=1{\displaystyle \kappa (A)=1}
  • 若 ∥⋅∥{\displaystyle \|\cdot \|}是l∞{\displaystyle l_{\infty }} 矩阵范数而A{\displaystyle A}是下三角矩阵,非奇异(也即aii≠0∀i{\displaystyle a_{ii}\neq 0\;\forall i})则:κ(A)≥maxi(|aii|)mini(|aii|){\displaystyle \kappa (A)\geq {\frac {\max _{i}(|a_{ii}|)}{\min _{i}(|a_{ii}|)}}}

其它意义下的条件数

奇异值分解,多项式求根,特征值和其它许多问题的条件数也可以有定义。

通常,如果一个数值问题是适定的,它可以表达为一个函数f{\displaystyle f}映射它的数据(一个实数的m{\displaystyle m}元组x{\displaystyle x})到它的解(一个实数的n{\displaystyle n}元组y{\displaystyle y})。

它的条件数则定义为解中的相对误差的半径和数据中的相对误差的比的最大值,取遍整个问题的定义域:

max{|f(x)−f(x∗)f(x)|/|x−x∗x|:|x−x∗|<ϵ}{\displaystyle \max \left\{\left|{\frac {f(x)-f(x^{*})}{f(x)}}\right|\left/\left|{\frac {x-x^{*}}{x}}\right|\right.:|x-x^{*}|<\epsilon \right\}}

其中ϵ{\displaystyle \epsilon }是问题中的数据的偏差的某个合理的小数值。

如果f{\displaystyle f}也是可微的,这可以近似的表示为

|f′(x)f(x)|.|x|{\displaystyle \left|{\frac {f'(x)}{f(x)}}\right|.\left|x\right|}.

为什么要范数?

范数就相当于衡量一个矩阵的大小,我们知道矩阵是没有大小的,但上面不是要衡量一个矩阵A或者向量b变化的时候,我们的解x变化的大小吗?所以肯定得要有一个东西来度量矩阵和向量的大小吧?它就是范数,表示矩阵大小或者向量长度。对于AX=b,我们可以有以下的结论:

也就是我们的解x的相对变化和A或者b的相对变化是有像上面那样的关系的,其中k(A)的值就相当于倍率,相当于x变化的界。

一句话总结:condition number是一个矩阵(或者它所描述的线性系统)的稳定性或者敏感度的度量,如果一个矩阵的condition number在1附近,那么它就是well-conditioned的,如果远大于1,那么它就是ill-conditioned的,如果一个系统是ill-conditioned的,它的输出结果就不要太相信了。

[wikipedia: 条件数]

皮皮blog

矩阵求逆

非奇异正方矩阵A的逆矩阵A-1

m*n(m!=n)的长方形满列秩矩阵的左伪逆矩阵(A^HA)^-1A^H, 满行秩矩阵的右伪逆矩阵A^H(AA^H)^-1

秩亏缺矩阵的逆矩阵:Moore-Penrose逆矩阵

[张贤达: 矩阵分析与应用 1.7逆矩阵与伪逆矩阵]

奇异矩阵/病态矩阵的求逆

L2范数有助于处理条件数 condition number不好的情况下矩阵求逆很困难的问题。

如将下面的奇异矩阵XTX改造一下再求逆:

 

[最优化方法:范数和规则化 ]

还有SVD分解的方法?Moore-Penrose逆矩阵?

皮皮blog

from: http://blog.csdn.net/pipisorry/article/details/52241141

ref: [张贤达: 矩阵分析与应用]

数值分析:矩阵求逆-奇异性、条件数相关推荐

  1. java求矩阵条件数_数值分析:矩阵求逆-奇异性、条件数

    本blog主要内容有:矩阵的奇异性.条件数与病态矩阵.矩阵求逆. 奇异矩阵和非奇异矩阵singular matrix&nonsingular matrix 概念和定义 若n阶矩阵A的行列式不为 ...

  2. 矩阵奇异性和“病态”问题的解释与改善方法(简单易懂)

    文章目录 矩阵奇异性.'病态'问题描述: 常用改善条件数的方法: 关于条件数和正则化的概念补充: 矩阵奇异性.'病态'问题描述:   在实际工程应用中,求解线性方程组 AX=BAX=BAX=B 问题时 ...

  3. 【数学与算法】奇异矩阵、奇异值、奇异值分解、奇异性

    我们经常会碰到几个名词很相近的一些数学术语,例如奇异矩阵.奇异值.奇异值分解.奇异性,经常会混淆,这里把它们的定义放在一起,做一下总结: 1.奇异矩阵: 奇异矩阵是线性代数的概念,就是该矩阵的秩不是满 ...

  4. PRML第九章读书笔记——Mixture Models and EM K均值/K中心点、高斯混合奇异性、EM观点下的高斯混合/K-means/混合伯努利分布/贝叶斯线性回归、推广EM算法

    目录 9.1 K-means Clustering P429 K中心点算法K-medoids 9.2 Mixtures of Gaussians P433 高斯混合的奇异性 9.3 An Altern ...

  5. 数学概念 —— 奇异性(Singularity,Vertical tangent)

    0. 基本定义 Singularity (mathematics) 数学上的奇异性一般是指,函数在该点未定义(not defined,比如取值为无穷),或者不可微(fails to be well-b ...

  6. 欧拉角奇异性产生的原因

    1 欧拉角奇异性的原因. 1.1 奇异性的定义 奇异性,英文Singularity, wiki中的解释为 In mathematics, a singularity is in general a p ...

  7. comsol分析时总位移代表什么_网格剖分时识别并解决其中的奇异性

    阅读之前的一篇博客 "线性静态问题的网格剖分注意事项",我们发现,有限元模型的解将能在网格细化的限度内收敛至真实解.不仅如此,我们还了解到,在误差较高的区域,可以通过自适应网格细化 ...

  8. 机器人奇异性 奇异区域的判断 maketest

    通常来说,一个6轴机械臂有三种个奇异点 (对应三个奇异区域): Wrist Singularities - These happen when two of the robot's wrist axe ...

  9. 热力学函数奇异性——李杨定理

    需要注意的是,对于一般的经典模型,或者量子模型,想要严格的计算配分函数是比较困难的.所以研究配分函数的解析性质也比较困难.

最新文章

  1. java应用窗口大小_java 如何让程序窗口随屏幕大小改变 | 学步园
  2. iOS - Regex 正则表达式
  3. linux中if的作用域,【2017-02-21】分支语句if...else...、分支嵌套、变量的作用域
  4. 【蓝桥杯-第五届】 啤酒和饮料
  5. 最完美的Linux桌面软件
  6. python自动化运维快速入门-Python自动化运维快速入门
  7. 基于Apache POI 从xlsx读出数据
  8. nginx -- 安装配置Nginx
  9. 华尔街宫斗戏升温:银行巨头和纽交所争夺交易数据所有权
  10. 【论文】PathQG: 基于事实的神经问题生成
  11. kodi扫描时无法连接远程服务器,教你如何解决蓝光机/KODI无法打开局域网smb共享的问题...
  12. 阶段巨献 - centos+php-fpm+mariaDB+svn+nodejs+redis(开机启动及配置远程连接),配置linux的php和nodejs网站运行环境。
  13. clojure实现邮箱发送
  14. oracle:使用cmd命令在远程oracle服务器上执行sql语句
  15. 雷军:当CEO是因为被格式化了电脑
  16. 关于uniapp小程序发布新版本,小程序不及时更新问题记录
  17. Habse中Rowkey的设计原则——通俗易懂篇
  18. 敏感词过滤算法 为内容保驾护航 Java/.Net/C++/c/Python等语言是如何进行敏感词打码限制的 高效防范违规内容
  19. 对抗攻击方法及论文总结
  20. 百度之星2017资格赛 1003 度度熊与邪恶大魔王 完全背包

热门文章

  1. 服务器修改bios,DELL服务器利用OMSA修改BIOS
  2. Dell C系列(Cloud)服务器BIOS查看及修改方法介绍
  3. 借记卡和贷记卡有什么区别?
  4. 信息与信息化的基本概念
  5. 多元统计分析 图标表示法 数据可视化 python 代码实现
  6. python怎么算圆的面积公式_【Python】计算圆的面积
  7. 小米扫地机器人原地不动_扫地机在清扫过程中被卡住,如何进行有效脱困?
  8. R24DVD1人体存在雷达模块
  9. diy金丝楠木嵌宝耳机
  10. 每一个搞爬虫的人,都应该知道的神器!