精华内容
下载资源
问答
  • 矩阵特征值求法实例

    万次阅读 2018-10-30 21:45:08
    矩阵特征值 设 A 是n阶方阵,如果存在数m和非零n维列向量 x,使得 Ax=mx 成立,则称 m 是矩阵A的一个特征值(characteristic value)或本征值(eigenvalue)。 矩阵特征值方法 对于矩阵A,由...

    矩阵特征值

    设 A 是n阶方阵,如果存在数m和非零n维 列向量 x,使得 Ax=mx 成立,则称 m 是矩阵A的一个特征值(characteristic value)或 本征值(eigenvalue)。
    矩阵特征值方法
    对于矩阵A,由AX=λ 0X,λ 0EX=AX,得[λ 0E-A]X=θ即齐次线性方程组
    有非零解的充分必要条件是:
    即说明特征根是特征多项式|λ 0E-A| =0的根,由代数基本定理
    有n个复根λ 12,…,λ n,为A的n个特征根。当特征根λ i(I=1,2,…,n)求出后,(λ iE-A)X=θ是齐次方程,λ i均会使|λ iE-A|=0,(λ iE-A)X=θ必存在非零解,且有无穷个解向量,(λ iE-A)X=θ的基础解系以及基础解系的线性组合都是A的特征向量。

    矩阵特征值示例

    求矩阵
    的特征值与特征向量。
    解:由特征方程
    解得A有2重特征值λ 12=-2,有单特征值λ 3=4。
    对于特征值λ 12=-2,解方程组(-2E-A)x=θ
    得同解方程组x 1-x 2+x 3=0,解为x 1=x 2-x 3(x 2,x 3为自由未知量)。分别令自由未知量
    得基础解系
    所以A的对应于特征值λ 12=-2的全部特征向量为x=k 1ξ 1+k 2ξ 2(k 1,k 2不全为零),可见,特征值λ=-2的特征向量空间是二维的。注意,特征值在重根时,特征向量空间的维数是特征根的 重数
    对于特征值λ 3=4,方程组(4E-A)x=q
    得同解方程组为
    通解为
    令自由未知量x 3=2得基础解系ξ 3
    ,所以A的对于特征值λ 3=4得全部特征向量为x= k 3ξ 3。 [1] 
    展开全文
  • c语言实现求一个矩阵特征值和特征向量

    万次阅读 多人点赞 2018-11-09 18:22:42
    求矩阵特征值,主要是用的QR分解,在我的有次博客里,我已经详细地给出了计算的过程,大家有兴趣可以去看下,经过几天的钻研,终于完成了整个的eig算法。下面我将把我的整个代码附上,有不懂的可以问我,欢迎...

     

    前言

          求矩阵的特征值,主要是用的QR分解,在我的有一次博客里,我已经详细地给出了计算的过程,大家有兴趣可以去看下,经过几天的钻研,终于完成了整个的eig算法。下面我将把我的整个代码附上,有不懂的可以问我,欢迎一起讨论学习!

           这是对上一次的修改版,上一次写的程序是在C++编译环境下编译的,所以放在c里面编译有些会出错。

           最后,如果有不对的地方希望大家不吝赐教,谢谢!

    #include<stdio.h>
    #include<stdlib.h>
    #include <math.h>
    #include <stdbool.h>
    
    //定义一个结构体,用来表示一个二维的矩阵
    typedef struct 
    {
    	int row;
    	int column;
    	double *data;//用来存放矩阵的元素
    }Matrix;
    
    /************************************************************************
    函数功能:初始化一个矩阵
    输入:要初始化的矩阵matrix、矩阵的行row、矩阵的列column
    输出:初始化成功:true;初始化失败:false
    ************************************************************************/
    bool InitMatrix(Matrix *matrix, int row, int column)
    {
    	int matrix_size = row*column*sizeof(double);
    	if (matrix_size <= 0)
    展开全文
  • 矩阵特征值和特征向量的

    万次阅读 2018-10-11 22:39:53
    最近项目中有一个模块需要求矩阵的最大特征值特征值对应的特征向量,无奈,又重新将以前学习的这方面的知识重新温习了一遍,感觉还是当时学的不够深,所以谢谢感悟,顺便对知识点进行一个总结。 首先特征值和特征...

    最近项目中有一个模块需要求矩阵的最大特征值和特征值对应的特征向量,无奈,又重新将以前学习的这方面的知识重新温习了一遍,感觉还是当时学的不够深,所以谢谢感悟,顺便对知识点进行一个总结。

    首先特征值和特征向量的求解根据项目的需求或者是矩阵的具体形式,主要可以分成如下三种形式:

    1. 自己只需要获得矩阵的最大特征值和特征值所对应的特征向量
    2. 需要求取矩阵的所有特征值
    3. 需要求取特征值和特征向量的矩阵为实对称矩阵,则可以通过另一种方法进行求解

    现在我们来分析这三种形式特征值和特征向量的求取:

    1.如果自己仅仅要求最大特征值的话肯定采用形式1的算法,该算法的优点是时间复杂度较低,计算量相对较小,该方法不但能够求取特征值和特征向量,而且只要特征值不全为0,该方法都能获得想要的结果。

    2.如果需要获得一个矩阵的所有特征值,则通过形式2可以很好的解决该问题,但是该方法的缺点是仅仅能够获得特征值,获得特征值之后利用其它方法进行求解,这样做自然而然计算量就大了起来。

    3.如果矩阵为实对称矩阵,那么可以通过形式3对其进行特征值和特征向量的求取,该方法相对于形式2的好处就是能够一次性将特征值和特征向量求取出来,缺点就是矩阵必须是实对称矩阵,至于算法复杂度方面我没有进行测试,不过猜测一下应该形式3复杂度相对来说要低一点(不然这种算法毫无有点怎么可能存活下来)。

    下面对上面三种形式采用的算法进行说明:

    乘幂法

    乘幂法主要针对求取矩阵的最大特征值和特征向量,原理就是迭代求极限,推导过程如下:

    首先我们不妨假设矩阵A的n个特征值的关系如下:

                                                                      (1)

    且矩阵有相应的n个线性无关的特征向量x1,x2,x3.....xn,如果学过矩阵论就会知道,上述n个线性无关特征向量构成了n为线性空间的一组基,通俗的讲就是任意一个n维的一个向量都可以用上面n个向量进行表示,例如n维向量z0表示形式如下:

                                                                                 (2)

    在矩阵两边同时乘以矩阵A,则有: 

                                                                (3)

    当矩阵两边连乘n个矩阵A,则有:

                                                  (4)

    将上式进行变换后可得:

                                          (5)

    由假设可知,,所以可以得到:

                                                                                                   (6)

                                                                                              (7)

    由式(6)(7)联立可得矩阵最大特征值,结果如下:

                                                                                                               (8)

    已知特征值由式(7)可得相应的特征向量:

                                                                                                                              (9)

    由乘幂法的迭代过程容易看出,如果,那么迭代向量zk的各个非零的分量将随着而趋于无穷(或趋于零),这样在计算机上实现时就可能上溢(或下溢). 为了克服这个缺点,需将每步迭代向量进行规范化,过程如下:

                                                            (10)

                                                                                                        (11)

    定理

    设A是n阶实矩阵,取初始向量z0,通常取z0={1,1,.....,1},其迭代过程是:对k=1,2......,有:

                                                                                                          (12)

    通过迭代,有:

                                                          (13)

    证明过程如下:

                                             (14)

    (15)

    由式(14)和(15)联立可得:

                                                                                                                       (16)

    由式(4)可知:

                                                    (17)

    则有:

                                                              (18)

    定理第一个式子得证,下面证明第二个式子:

                               (19)

                                                     (20)

    由此定理得证。

    由定理可知乘幂算法步骤如下:

    (1)首先寻找任意向量z0,一般情况去z0={1,1,.....1}。

    (2)由z0计算得到y1,而后寻找y1向量中的最大值m1。

    (3)由y1和m1得到z1,判断迭代次数是否达到,如果达到则跳到步骤4,然否则跳到步骤2循环。

    (4)此时获得的mk即矩阵A的特征值,zk即为相应的特征向量,算法结束。

    注:这里迭代结束判断可以是迭代次数,也可以是特征值mi前后两次的误差,我写程序的时候采用的是误差判断。

    至于具体的程序,目前还未整理好,注释啥的都没写,所以暂时先不放上,等把注释写好了再贴上来。

    QR算法

    QR算法是针对解决形式2的算法,要看懂该算法需要一点矩阵论里面的知识,我尽量讲的通俗一点,如果还看不懂请翻翻矩阵论第四章矩阵分解的知识点。

    1.QR分解

    任意一个矩阵A可以分解成如下两个矩阵表达的形式:

                                                                                                                                 (21)

    其中矩阵Q为正交矩阵,矩阵R为上三角矩阵,至于QR分解到底是怎么回事,矩阵Q和矩阵R是怎么得到的,你们还是看矩阵论吧,如果我把这些都介绍了,感觉这篇文章要写崩,或者你可以先认可我是正确的,然后往下看。

    首先我们有A1=A=QR,则令A2=RQ,则有:

                                                                                                              (22)

    由式(22)可知,A1和A2相似,相似矩阵具有相同的特征值,说明A1和A2的特征值相同,我们就可以通过求取A2的特征值来间接求取A1的特征值。

    定理

    , {Ak}是由QR算法产生的矩阵序列,其中 ,若满足如下条件:

    (1)矩阵A的特征值满足

    (2),其中,而且P有三角分解P=LU,(L是单位下三角矩阵,U是上三角矩阵)。

    则有:

                                                                                      (23)

    上面的定理我就不证明了,因为我也不会,本人矩阵论学的也是二把刀,请见谅,但是看到上面的定理的两个条件是否能引起你的注意,首先是条件1,该条件严重限制了该方法的使用范围,矩阵的特征值不能相同且不能为0,条件2表明矩阵A能够对角化。

    其大概原理就是如此,下面我们来说明QR算法的具体步骤:

    (1)首先矩阵Ai进行QR分解,根据得到矩阵Qi和Ri

    (2)根据矩阵Qi和Ri,得到Ai+1=Ri*Qi

    (3)判断是否跳出循环条件,如果跳出循环条件则跳到步骤4,否则跳到步骤1进行循环

    (4)由得到的矩阵Ai+1,该矩阵对角线上元素为矩阵A的特征向量。

    Jacobi方法

    Jacobi方法主要针对实对称矩阵,首先要对实对称矩阵的性质进行说明,实对称矩阵的特征向量都为正交向量,并且存在如下关系:

                                                                

    上式中Q为正交矩阵,由此可见,Jacobi方法的实质和关键就是找一个正交矩阵Q,将矩阵A化为对角矩阵。

    矩阵中存在两种线性变换,Givens变换和Householder变换,两种变换的共同点就是变换矩阵为正交阵。由此我们可以通过Givens变换或者Householder变换将矩阵A化为对角阵,而相应的变换矩阵的列向量即为特征向量,变换后的对角阵元素即为特征值。下面来介绍一波Givens变换:

    Givens变换

    设矩阵A是n阶实对称矩阵,称n阶矩阵,存在矩阵G

    上面矩阵G为Givens变换对应的变换矩阵(其本质是将向量逆时针旋转一定角度后的新向量),通过改变左乘该矩阵可以将第i行第j列的元素变成0,通过(n-1)(n-2)/2次变换即可将n*n矩阵变换成对角阵,这就是Jacobi方法的原理。

    注:左乘矩阵G只会改变原来矩阵第i行,第i列;第j行;第j列中的元素,所以通过下面式子可以很快利用原矩阵获得新矩阵的各个元素,计算式子如下:

    不知道你们对上面的说的算法原理之后会不会产生一个疑问,如果我经过一次变换将一个元素变成0之后下一次变换后会不会该元素会不会又不为0了??答案是肯定会的,但是为啥这样的算法还能用呢??下面定理解决了这个疑问:

    上述定理可知,Givens变换后矩阵各个元素的总和是不变的,而可以证明,我们每次变换之后,非对角线上的元素的总和都变小了,相应的对角线上的元素都变大了,所以当非对角线上元素总和小于某个误差值时,我们可以认为对角线上的元素即为特征值,这就是上述定理的理论依据。

    Jacobi算法步骤:

    (1)找到矩阵Ai中非对角线上最大的元素,将利用Givens变换将该元素变换成0

    (2)利用公式可以得到变换后的矩阵Ai+1。

    (3)获得左乘矩阵Gi。

    (4)计算变换后矩阵Ai+1的非对角线元素和,如果满足小于误差值的要求即跳到步骤5,否则跳到步骤1进行循环

    (5)变换后矩阵Ak对角线元素即为特征值,变换矩阵Gk*Gk-1........G1连乘得到矩阵G,G的列向量即为特征向量。

    至于代码,整理好再贴出来。

     

    展开全文
  • 矩阵特征值

    千次阅读 2017-01-28 16:44:53
    矩阵特征值

    矩阵特征值就是那个矩阵所对应的一元多次方程组的根。设A是n阶方阵,如果数λ和n维非零列向量x使关系式AX=λX成立,那么这样的数λ称为矩阵A特征值。特征值表示一个矩阵的向量被拉伸或压缩的程度。量子力学中,矩阵代表力学量,矩阵的特征向量代表定态波函数,矩阵的特征值代表力学量的某个可能的观测值。一个向量(或函数),被矩阵相乘,表示对这个向量做了一个线性变换,如果变换后还是这个向量本身乘以一个常数,这个常数就叫特征值。矩阵的特征值还要从线性变换入手,把一个矩阵当作一个线性变换在某一组基下的矩阵。

    设 A 是n阶方阵,如果存在数m和非零n维列向量 x,使得 Ax=mx 成立,则称 m 是A的一个特征值(characteristic value)或本征值(eigenvalue)。非零n维列向量x称为矩阵A的属于(对应于)特征值m的特征向量或本征向量,简称A的特征向量或A的本征向量。

    展开全文
  • java版求矩阵特征值

    热门讨论 2009-04-01 22:10:04
    雅克比迭代式法求实对称矩阵特征值特征向量
  • 深入整理了雅克比方法求解特征值和特征向量,包括公式推导,最后介绍了opencv中的算法流程和实现。
  • 用于矩阵特征值的带双步位移的QR分解法!
  • 矩阵特征值和特征向量详细计算过程

    万次阅读 多人点赞 2018-05-07 12:22:13
    1.矩阵特征值和特征向量定义 A为n阶矩阵,若数λ和n维非0列向量x满足Ax=λx,那么数λ称为A的特征值,x称为A的对应于特征值λ的特征向量。式Ax=λx也可写成( A-λE)x=0,并且|λE-A|叫做A 的特征多项式。当特征...
  • 矩阵的特征值及相关矩阵特征值和特征向量共识
  • 2.矩阵A的所有特征值的积等于A的行列式。3.关于A的矩阵多项式f(A)的特征值为f(μ)。4.若A可逆,则A−1的特征值为1/μ。5.若A与B相似,则A与B有相同特征多项式,即A与B特征值相同。6.属于A的不同特征值的特征向量线性...
  • QR分解求矩阵特征值、特征向量 C语言

    万次阅读 多人点赞 2014-08-13 20:08:17
    QR分解求矩阵特征值、特征向量   最近在看一个高光谱图像压缩算法,其中涉及到正交变换,计算正交变换时,需要对普通矩阵其特征向量。想要在网上找一个现成的程序,可能是我百度的能力不强吧,居然真的没找见。...
  • QR算法求矩阵特征值的matlab实现
  • numpy求矩阵特征值与特征向量

    千次阅读 2020-04-29 08:25:53
    numpy求矩阵特征值与特征向量 import numpy as np a = np.array([[1, 3, 8, 6, 9, 0], [5, 4, 2, 7, 5, 2], [2, 6, 7, 4, 1, 3], [0, 7, 2, 7, 4, 9], [7, 6, 4, 6, ...
  • python — numpy计算矩阵特征值,特征向量

    千次阅读 多人点赞 2020-04-21 11:10:01
    文章目录numpy计算矩阵特征值,特征向量、示例:二、numpy实现: numpy计算矩阵特征值,特征向量 、示例: 首先借参考百度demo的来看一下矩阵的特征值和特征向量的解题过程及结果。 可知矩阵A:特征值为1对应的...
  • QR分解求矩阵全部特征值

    热门讨论 2013-10-29 22:16:44
    一个矩阵转化为上Hessenberg矩阵后,再使用QR分解求解矩阵 的全部特征值
  • 矩阵特征值和特征向量求解

    千次阅读 2018-05-11 13:42:27
    下面以Matlab为例进行讲解矩阵特征值和特征向量求解。(Python和C/C++的相应代码在博客的最后给出)当一个计算机专业的人放下手头的工作,转而写博客时。说明他的CSDN账号积分所剩无几了。。。。。。基于Matlab...
  • 灰度共生矩阵特征值灰度共生矩阵特征值灰度共生矩阵特征值灰度共生矩阵特征值灰度共生矩阵特征值灰度共生矩阵特征值灰度共生矩阵特征值灰度共生矩阵特征值
  • matlab如何求矩阵特征值

    万次阅读 多人点赞 2015-03-17 11:03:00
    根据线性代数理论,特征值与特征向量只存在于方阵。...查阅matlab help可以知道,利用eig函数可以快速求解矩阵特征值与特征向量。 格式:[V,D] = eig(A) 说明:其中D为特征值构成的对角阵,
  • python 求矩阵特征值和特征向量

    千次阅读 2020-12-23 12:51:01
    python 求矩阵特征值和特征向量
  • 矩阵特征值和特征向量求解——特征值分解

    万次阅读 多人点赞 2017-04-27 16:48:10
    工程数学中,非常关键的一个地方,充分的理解矩阵值矩阵向量的概念和物理意义对于理解机器学习中的,比如主成分分析算法的矩阵向量运算有很好的的帮助作用。
  • 矩阵特征值和特征向量详细计算过程(转载)

    万次阅读 多人点赞 2018-09-02 09:43:47
    1.矩阵特征值和特征向量定义&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A为n阶矩阵,若数λ和n维非0列向量x满足Ax=λx,那么数λ称为A的特征值,x称为A的对应于特...
  • hessian矩阵特征值

    万次阅读 2016-12-11 19:50:11
    研究hessian矩阵去噪的过程中想了解下hessian矩阵特征值的意义及用法 Hessian矩阵的特征值:就是形容其在该点附近特征向量方向的凹凸性,特征值越大,凸性越强。 对于二维图像的某点的hessian矩阵,其最大特征值和...
  • 求矩阵特征值的方法和性质

    千次阅读 2017-03-09 16:56:02
    求矩阵特征值的方法 Ax=mx,等价于m,使得(mE-A)x=0,其中E是单位矩阵,0为零矩阵。 |mE-A|=0,求得的m值即为A的特征值。|mE-A| 是一个n次多项式,它的全部根就是n阶方阵A的全部特征值,这些根有可能相重复,也...
  • java求矩阵特征值和特征向量

    热门讨论 2012-05-25 11:18:29
    这几天做一个项目,需要用到 求矩阵特征值特征向量。我c++学的不好,所以就去网站找了很多java的源代码,来实现这个功能。很多都不完善,甚至是不准确。所以自己参考写了一个。这个用于我一个朋友的毕业设计。结果...
  • 雅克比法矩阵特征值和特征向量 考虑线性方程组Ax = b时,一般当A为低阶稠密矩阵时,用主元消去法解此方程组是有效方法。但是,对于由工程技术中产生的大型稀疏矩阵方程组,利用迭代法求解此方程组就是合适的,在...
  • java语言编写的一个求特征值和特征向量,算法是:先采用正交分解进行QR分解,然后进行迭代N次后求出对角矩阵和正交矩阵,对角矩阵即为特征值,正交矩阵即为特征向量。
  • 零基础求矩阵特征值和特征向量

    千次阅读 2014-10-22 13:55:29
    阅读本文。 ...令det(A−λE)=0(det为行列式,A为矩阵,E为单位矩阵)的λ,为矩阵A的特征值(有多)。 对于N阶矩阵,有N个特征值,可能重复。对于每个特征值λi,令(A−λiE)X=0的Xi,
  • C++中的矩阵特征值

    万次阅读 2015-05-04 17:03:11
    最近需要在C++环境下矩阵的特征值和特征向量,根据任务需求有两种思路可供选择: ...这里有篇博客调查了各种C++矩阵算法包在VisualStudio2005中求解实对称矩阵特征值算法包调查,建议使用LAPACK/CLAP
  • 矩阵特征值的物理意义

    千次阅读 2015-12-24 15:45:47
    矩阵分解中,特征向量可以看作坐标向量,特征值就是矩阵在该坐标方向上的分量大小值,特征分析相当于提取矩阵的信息出来,较大的...值得提的是当特征值为负数时,说明矩阵在特征向量方向上不仅有伸缩,还有旋转。
  • 矩阵特征值和特征向量

    千次阅读 2018-01-02 17:02:35
    特征向量和特征值一个有趣应用在我的另一篇有关误差椭圆的博文中提到。此外,特征值分解形成协方差矩阵几何解释的基础。在这篇文章中,我将简单的介绍这个数学概念,并且展示如何手动获取二维方形矩阵特征值分解...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 182,446
精华内容 72,978
关键字:

一个矩阵的特征值怎么求