zoukankan      html  css  js  c++  java
  • 线性代数之矩阵的特征值与特征向量

    数学上,线性变换的特征向量(本征向量)是一个非退化的向量,其方向在该变换下不变。该向量在此变换下缩放的比例称为其特征值(本征值)。 一个线性变换通常可以由其特征值和特征向量完全描述。特征空间是相同特征值的特征向量的集合。“特征”一词来自德语的eigen。1904年希尔伯特首先 在这个意义下使用了这个词,更早亥尔姆霍尔兹也在相关意义下使用过该词。eigen一词可翻译为”自身的”、“特定于……的”、“有特征的”、或者“个体 的”。这显示了特征值对于定义特定的线性变换有多重要。

    线性变换的特征向量是指在变换下方向不变,或者简单地乘以一个缩放因子的非零向量。
    特征向量对应的特征值是它所乘的那个缩放因子。
    特征空间就是由所有有着相同特征值的特征向量组成的空间,还包括零向量,但要注意零向量本身不是特征向量。
    线性变换的主特征向量是最大特征值对应的特征向量。
    特征值的几何重次是相应特征空间的维数。
    有限维向量空间上的一个线性变换的谱是其所有特征值的集合。
    例如,三维空间中的旋转变换的特征向量是沿着旋转轴的一个向量,相应的特征值是1,相应的特征空间包含所有和该轴平行的向量。该特征空间是一个一维空间,因而特征值1的几何重次是1。特征值1是旋转变换的谱中唯一的实特征值。

    REF:

    http://baike.baidu.com/link?url=Y2BO3icowW8sfhBYOT_C9ujaDu6r0mJWmbD8lNB4_r_ID7pMBq5PO1BfB8SJEzwtjX2TqGvT5SSRIRYM7_ZF7a

    直观性说明

    我们先看点直观性的内容。矩阵的特征方程式是:

    A * x = lamda * x

    这个方程可以看出什么?上次我们提到矩阵实际可以看作一个变换,方程左边就是把向量x变到另一个位置而已;右边就是把向量x作了一个拉伸,拉伸量是lamda。那么它的意义就很明显了,表达了矩阵A的一个特性就是这个矩阵可以把向量x拉长(或缩短)lamda倍,仅此而已。

    任意给定一个矩阵A,并不是对所有的x它都能拉长(缩短)。凡是能被A拉长(缩短)的向量称为A的特征向量(Eigenvector);拉长(缩短)量就为这个特征向量对应的特征值(Eigenvalue)。

    值得注意的是,我们说的特征向量是一类向量,因为任意一个特征向量随便乘以一个标量结果肯定也满足以上方程,当然这两个向量都可以看成是同一个特征向量,而且它们也都对应同一个特征值。

    如果特征值是负数,那说明了矩阵不但把向量拉长(缩短)了,而且让向量指向了相反的方向。

    一个矩阵可能可以拉长(缩短)好几个向量,所以它可能就有好多个特征值。有趣的是,如果A是实对称矩阵,那么那些不同的特征值对应的特征向量肯定是互相正交的,原因是(?)。

    我 们也可以说,一个变换矩阵的所有特征向量组成了这个变换矩阵的一组基。所谓基可以理解为坐标系的轴。我们平常用到的大多是直角坐标系,在线形代数中可以把 这个坐标系扭曲、拉伸、旋转,称为基的变换。我们可以按我们的需求去设定基,但是基的轴之间必须是线形无关的,也就是保证坐标系的不同轴不要指向同一个方 向或可以被别的轴组合而成,否则的话原来的空间就“撑”不起来了。在主成分分析(Principal Component Analysis)中我们通过在拉伸最大的方向设置基,忽略一些小的量,可以极大地压缩数据而减小失真。

    变换矩阵的所有特征向量作为空间的基之所以重要,是因为在这些方向上变换矩阵可以拉伸向量而不必扭曲和旋转它,使得计算大为简单。所以特征值固然重要,我们的终极目标却是特征向量。

    几个重要的抽象概念

    我们回到矩阵的意义上,先介绍几个抽象概念:

    :所有经过变换矩阵后变成了零向量的向量组成的集合,通常用Ker(A)来表示。假如你是一个向量,有一个矩阵要来变换你,如果你不幸落在了这个矩阵的核里面,那么很遗憾转换后你就变成了虚无的零。特别指出的是,核是“变换”(Transform)中的概念,矩阵变换中有一个相似的概念叫“零空间”。有的材料在谈到变换的时候使用T来表示,联系到矩阵时才用A,本文把矩阵直接看作“变换”。核所在的空间定义为V空间,也就是全部向量原来在的空间。

    值域:某个空间中所有向量经过变换矩阵后形成的向量的集合,通常用R(A)来表示。假设你是一个向量,有一个矩阵要来变换你,这个矩阵的值域表示了你将来可能的位置,你不可能跑到这些位置之外。值域的维度也叫做秩(Rank)。值域所在的空间定义为W空间。W空间中不属于值域的部分等会儿我们会谈到。

    空间:向量加上加、乘运算构成了空间。向量可以(也只能)在空间中变换。使用坐标系(基)在空间中描述向量。

    不管是核还是值域,它们都是封闭的。意思是如果你和你的朋友困在核里面,你们不管是相加还是相乘都还会在核里面,跑不出去。这就构成了一个子空间。值域同理。

    数学家证明了,V的维度一定等于它的任意一个变换矩阵的核的维度加上值域的维度。

    dim( V ) = dim( Ker( A ) ) + dim( R( A) )

    严格的证明过程可以参考教科书,这里说一个直观的证法:

    V的维度也就是V的基的数目,这些基分为两部分,一部分在核中,一部分是值域中非零象的原象(肯定可以分,因为核和值域都是独立的子空间)。如果把V中的任意向量用基的形式写出来,那么这个向量必然也是一部分在核中,另一部分在值域中非零象的原象里。现在对这个向量作变换,核的那部分当然为零了,另一部分的维度刚好等于值域的维度。

    变换矩阵行空间和零空间的关系

    另外我们根据矩阵的性质,变换矩阵的行数等于V的维度,变换矩阵的秩等于值域R的维度,所以也可以记成:

    A的行数= dim( A的零空间)+ A的秩

    因为A的秩又是A行空间的维度(注意在非满秩矩阵中这个数肯定小于行数):

    A的行数= dim( A的零空间)+ dim( A的行空间 )

    为什么要写成这个形式?因为从这里我们可以发现A的零空间和A的行空间是正交互补的。正交是因为零空间就是核,按定义乘以A的行向量当然为零。互补是因为它们加起来刚好张成整个V空间。

    这个正交互补导致了非常好的性质,因为A的零空间和A的行空间的基组合起来刚好可以凑成V的基。

    变换矩阵列空间和左零空间的关系

    如果把以上方程取转置,可得:

    A的列数= dim( A^T的零空间)+ dim( A的列空间 )

    因为A^T的实际意义是把值域和定义域颠倒了过来,所以A^T的零空间就是从值域以外的区域投向V中零点的所有向量的空间(有点拗口!),有人把它称为“左零空间”(LeftNull Space)。这样:

    A的列数= dim( A的左零空间)+ dim( A的列空间 )

    同样A的左零空间与A的列空间也正交互补,它们加起来刚好可以张成W空间。它们的基也构成了W的基。

    变换矩阵行空间和列空间的关系

    不要忘了变换矩阵实际上是把目标向量从行空间转化到列空间。

    矩阵的行空间,列空间,零空间,左零空间构成了我们在线形代数研究中的所有空间,把它们的关系弄清楚,对于分别的基的转换非常重要。

    特征方程的秘密

    我们试图构造一个这样的变换矩阵A:它把向量变换到一个值域空间,这个值域空间的基是正交的;不仅如此,还要求任意一个基v都有A* u = lamda * v的形式,u是原来空间的一个已知的基。这样我们就能把复杂的向量问题转化到一个异常简单的空间中去。

    如果u的数量不等于v,那么用A^T*A取代A,可以变为一个对称且半正定矩阵,它的特征向量正是要求的基v

    再次说明,矩阵不等于变换,把矩阵看成变换只是提供一个理解变换矩阵的方法。或者说矩阵只是变换的其中一种表现形式。

    REF:

    http://blog.csdn.net/wangxiaojun911/article/details/6737933

    矩 阵乘法对应了一个变换,是把任意一个向量变成另一个方向或长度都大多不同的新向量。在这个变换的过程中,原向量主要发生旋转、伸缩的变化。如果矩阵对某一 个向量或某些向量只发生伸缩变换,不对这些向量产生旋转的效果,那么这些向量就称为这个矩阵的特征向量,伸缩的比例就是特征值。

    实际上,上述的一段话既讲了矩阵变换特征值及特征向量的几何意义(图形变换)也讲了其物理含义。物理的含义就是运动的图景:特征向量在一个矩阵的作用下作伸缩运动,伸缩的幅度由特征值确定。特征值大于1,所有属于此特征值的特征向量身形暴长;特征值大于0小于1,特征向量身形猛缩;特征值小于0,特征向量缩过了界,反方向到0点那边去了。

        注意:常有教科书说特征向量是在矩阵变换下不改变方向的向量,实际上当特征值小于零时,矩阵就会把特征向量完全反方向改变,当然特征向量还是特征向量。我 赞同特征向量不改变方向的说法:特征向量永远不改变方向,改变的只是特征值(方向反转特征值为负值了)。这有点类似地说冬天深圳的室外“温度是10℃,哈尔滨室外的“温度”是-30℃(称温度而不温);也类似说无人飞机在海拔“高度”100米处飞行而核潜艇在海拔“高度”-50米(称高度而不高)处游弋一样。

    关于特征值和特征向量,这里请注意两个亮点。这两个亮点一个是线性不变量的含义,二个是振动的谱含义。

    特征向量是线性不变量

    所 谓特征向量概念的亮点之一是不变量,这里叫线性不变量。因为我们常讲,线性变换啊线性变换,不就是把一根线(向量)变成另一根线(向量),线的变化的地方 大多是方向和长度一块变。而一种名叫“特征向量”的向量特殊,在矩阵作用下不变方向只变长度。不变方向的特性就被称为线性不变量。

    如 果有读者坚持认为负方向的特征向量就是改变了向量的方向的想法的话,你不妨这样看线性不变量:特征向量的不变性是他们变成了与其自身共线的向量,他们所在 的直线在线性变换下保持不变;特征向量和他的变换后的向量们在同一根直线上,变换后的向量们或伸长或缩短,或反向伸长或反向缩短,甚至变成零向量(特征值 为零时)

    REF:

    http://blog.163.com/renguangqian@126/blog/static/1624014002011711114526759/

    一个变换的特征向量是这样一种向量,它经过这种特定的变换后保持方向不变,只是进行长度上的伸缩而已。

    矩阵是一种线性变化,特征向量就是在这个变化当中不变的向量。

    REF:

    http://www.cnblogs.com/isabelincoln/archive/2009/06/18/1504623.html

    维基百科之特征向量

    直到今天看到这个网页, 才看见有人一语道破线性代数的真谛(这也是我终于决定写成此文的直接原因)。我终于找到了我那一个学期企图寻找的东西。就好像把 x 变成 2 x 一样,我们经常需要把 (x, y) 变成 (2 x + y, x – 3 y) 之类的东西,这就叫做线性变换。于是才想到定义矩阵乘法,用于表示一切线性变换。几何上看,把平面上的每个点 (x, y) 都变到 (2 x + y, x – 3 y) 的位置上去,效果就相当于对这个平面进行了一个“线性的拉扯”。

          

        矩阵的乘法,其实就是多个线性变换叠加的效果,它显然满足结合律,但不满足交换律。主对角线全是 1 的矩阵所对应的线性变换其实就是不变的意思,因此它叫做单位矩阵。矩阵 A 乘以矩阵 B 得单位矩阵,就是做完线性变换 A 后再做一次线性变换 B 就又变回去了的意思,难怪我们说矩阵 B 是矩阵 A 的逆矩阵。课本上对行列式的定义千奇百怪,又是什么递归,又是什么逆序对,还编写口诀帮助大家记忆。其实,行列式的真正定义就一句话:每个单位正方形在线 性变换之后的面积。因此,单位矩阵的行列式当然就为 1,某行全为 0 的行列式显然为 0 (因为某一维度会被无视掉,线性变换会把整个平面压扁), |A·B| 显然等于 |A|·|B| 。行列式为 0 ,对应的矩阵当然不可逆,因为这样的线性变换已经把平面压成一条线了,什么都不能把它变回去了。当然,更高阶的矩阵就对应了更高维的空间。一瞬间,所有东 西都解释清楚了。

    REF:

    http://www.matrix67.com/blog/archives/4294

    https://zh.wikipedia.org/wiki/%E7%89%B9%E5%BE%81%E5%90%91%E9%87%8F

  • 相关阅读:
    避免Node.js中回调地狱
    XSS和CSRF攻击
    浅析SPDY
    移动端的图片优化
    js中的事件委托技术
    js的5种继承方式——前端面试
    深入理解前端跨域问题的解决方案——前端面试
    javascript中“use strict”的好处和坏处
    Http请求中POST与GET的区别——前端面试
    滚动条离底部的距离小于某个值
  • 原文地址:https://www.cnblogs.com/emanlee/p/5372288.html
Copyright © 2011-2022 走看看