精华内容
下载资源
问答
  • matlab计算矩阵特征值的源码,拿出来与大家共享一下,呵呵 matlab计算矩阵特征值的源码,拿出来与大家共享一下,呵呵
  • MATLAB实现矩阵分解

    2021-04-18 11:35:55
    MATLAB求解线性方程的过程基于三种分解法则:(1)Cholesky分解,针对对称正定矩阵;(2)高斯消元法, 针对一般矩阵;(3)正交化, 针对一般矩阵(行数≠列数)这三种分解运算分别由chol, lu和 qr三个函数来分解.1. ...

    MATLAB求解线性方程的过程基于三种分解法则:

    (1)Cholesky分解,针对对称正定矩阵;

    (2)高斯消元法,  针对一般矩阵;

    (3)正交化,      针对一般矩阵(行数≠列数)

    这三种分解运算分别由chol, lu和 qr三个函数来分解.

    1. Cholesky分解(Cholesky Decomposition)

    仅适用于对称和上三角矩阵

    例:cholesky分解。

    a=pascal(6)

    b=chol(a)

    a =

    1     1     1     1     1     1

    1     2     3     4     5     6

    1     3     6    10    15    21

    1     4    10    20    35    56

    1     5    15    35    70   126

    1     6    21    56   126   252

    b =

    1     1     1     1     1     1

    0     1     2     3     4     5

    0     0     1     3     6    10

    0     0     0     1     4    10

    0     0     0     0     1     5

    0     0     0     0     0     1

    CHOL   Cholesky factorization.

    CHOL(X) uses only the diagonal and upper triangle of X. The lower triangular is assumed to be the (complex conjugate) transpose of the upper.  If X is positive definite, then R = CHOL(X) produces an upper triangular R so that R'*R = X. If X is not positive definite, an error message is printed.

    [R,p] = CHOL(X), with two output arguments, never produces an

    error message.  If X is positive definite, then p is 0 and R is the same as above.   But if X is not positive definite, then p is a positive integer.

    When X is full, R is an upper triangular matrix of order q = p-1

    so that R'*R = X(1:q,1:q). When X is sparse, R is an upper triangular matrix of size q-by-n so that the L-shaped region of the first q rows and first q columns of R'*R agree with those of X.

    2. LU分解(LU factorization).

    用lu函数完成LU分解,将矩阵分解为上、下两个三角阵,其调用格式为:

    [l,u]=lu(a)  l代表下三角阵,u代表上三角阵。

    例:

    LU分解。

    a=[47  24  22; 11  44  0;30  38  41]

    [l,u]=lu(a)

    a =

    47    24    22

    11    44     0

    30    38    41

    l =

    1.0000         0         0

    0.2340    1.0000         0

    0.6383    0.5909    1.0000

    u =

    47.0000   24.0000   22.0000

    0   38.3830   -5.1489

    0         0   30.0000

    LU     LU factorization.

    [L,U] = LU(X) stores an upper triangular matrix in U and a "psychologically lower triangular matrix" (i.e. a product of lower triangular and permutation matrices) in L, so that X = L*U. X can be rectangular.

    [L,U,P] = LU(X) returns unit lower triangular matrix L, upper triangular matrix U, and permutation matrix P so that  P*X = L*U.

    3. QR分解(Orthogonal-triangular decomposition).

    函数调用格式:[q,r]=qr(a), q代表正规正交矩阵,r代表三角形矩阵。原始阵a不必一定是方阵。如果矩阵a是m×n阶的,则矩阵q是m×m阶的,矩阵r是m×n阶的。

    例:QR分解.

    A=[22  46  20  20; 30  36  46  44;39  8  45  2];

    [q,r]=qr(A)

    q =

    -0.4082   -0.7209   -0.5601

    -0.5566   -0.2898    0.7786

    -0.7236    0.6296   -0.2829

    r =

    -53.8981  -44.6027  -66.3289  -34.1014

    0  -38.5564    0.5823  -25.9097

    0         0   11.8800   22.4896

    QR     Orthogonal-triangular decomposition.

    [Q,R] = QR(A) produces an upper triangular matrix R of the same

    dimension as A and a unitary matrix Q so that A = Q*R.

    [Q,R,E] = QR(A) produces a permutation matrix E, an upper

    triangular R and a unitary Q so that A*E = Q*R.  The column

    permutation E is chosen so that abs(diag(R)) is decreasing.

    [Q,R] = QR(A,0) produces the "economy size" decomposition. If A is m-by-n with m > n, then only the first n columns of Q are computed.

    4. 特征值与特征矢量(Eigenvalues and eigenvectors).

    MATLAB中使用函数eig计算特征值和 特征矢量,有两种调用方法:

    *e=eig(a), 其中e是包含特征值的矢量;

    *[v,d]=eig(a), 其中v是一个与a相同的n×n阶矩阵,它的每一列是矩阵a的一个特征值所对应的特征矢量,d为对角阵,其对角元素即为矩阵a的特征值。

    例:计算特征值和特征矢量。

    a=[34  25  15; 18  35  9; 41  21  9]

    e=eig(a)

    [v,d]=eig(a)

    a =

    34    25    15

    18    35     9

    41    21     9

    e =

    68.5066

    15.5122

    -6.0187

    v =

    -0.6227   -0.4409   -0.3105

    -0.4969    0.6786   -0.0717

    -0.6044   -0.5875    0.9479

    d =

    68.5066         0         0

    0   15.5122         0

    0         0   -6.0187

    EIG    Eigenvalues and eigenvectors.

    E = EIG(X) is a vector containing the eigenvalues of a square matrix X.

    [V,D] = EIG(X) produces a diagonal matrix D of eigenvalues and a full matrix V whose columns are the corresponding eigenvectors so that X*V = V*D.

    [V,D] = EIG(X,'nobalance') performs the computation with balancing

    disabled, which sometimes gives more accurate results for certain

    problems with unusual scaling. If X is symmetric, EIG(X,'nobalance')

    is ignored since X is already balanced.

    5. 奇异值分解.( Singular value decomposition).

    如存在两个矢量u,v及一常数c,使得矩阵A满足:Av=cu,  A’u=cv

    称c为奇异值,称u,v为奇异矢量。

    将奇异值写成对角方阵∑,而相对应的奇异矢量作为列矢量则可写成两个正交矩阵U,V, 使得: AV=U∑, A‘U=V∑  因为U,V正交,所以可得奇异值表达式:

    A=U∑V’。

    一个m行n列的矩阵A经奇异值分解,可求得m行m列的U, m行n列的矩阵∑和n行n列的矩阵V.。

    奇异值分解用svd函数实现,调用格式为;

    [u,s,v]=svd(a)

    SVD    Singular value decomposition.

    [U,S,V] = SVD(X) produces a diagonal matrix S, of the same dimension as X and with nonnegative diagonal elements in decreasing order, and unitary matrices U and V so that X = U*S*V'.

    S = SVD(X) returns a vector containing the singular values.

    [U,S,V] = SVD(X,0) produces the "economy size" decomposition. If X is m-by-n with m > n, then only the first n columns of U are computed and S is n-by-n.

    例: 奇异值分解。

    a=[8  5; 7  3;4  6];

    [u,s,v]=svd(a)             % s为奇异值对角方阵

    u =

    -0.6841   -0.1826   -0.7061

    -0.5407   -0.5228    0.6591

    -0.4895    0.8327    0.2589

    s =

    13.7649         0

    0    3.0865

    0         0

    v =

    -0.8148   -0.5797

    -0.5797    0.8148

    展开全文
  • 文章目录1. 对称正定矩阵的Cholesky分解2. 一般方阵的高斯消去法分解(LU分解)3. 舒尔分解4. 矩形矩阵的正交分解 矩阵分解是把一个矩阵分解为多个矩阵连乘的形式 ...e=eig(a) % 返回由a的特征值构成的向量 b=ch...

    矩阵分解

    是把一个矩阵分解为多个矩阵连乘的形式
    在这里插入图片描述
    其中cholinc()和luinc()函数是针对稀疏矩阵的

    在这里插入图片描述

    1. 对称正定矩阵的Cholesky分解

    在这里插入图片描述

    a=pascal(4) % pascal矩阵是对称正定的
    e=eig(a) % 返回由a的特征值构成的向量
    b=chol(a)
    c=b'*b
    
    a =
         1     1     1     1
         1     2     3     4
         1     3     6    10
         1     4    10    20
    e =
        0.0380
        0.4538
        2.2034
       26.3047
    b =
         1     1     1     1
         0     1     2     3
         0     0     1     3
         0     0     0     1
    c =
         1     1     1     1
         1     2     3     4
         1     3     6    10
         1     4    10    20
    >> 
    

    2. 一般方阵的高斯消去法分解(LU分解)

    在这里插入图片描述在这里插入图片描述

    a=pascal(4) % pascal矩阵是对称正定的
    [L1, U1]=lu(a)
    b=L1*U1==a
    [L2,U2,P]=lu(a)
    c=L2*U2==P*a
    Y=lu(a)
    Y1=L2+U2-eye(size(a))
    
    a =
         1     1     1     1
         1     2     3     4
         1     3     6    10
         1     4    10    20
    L1 =
        1.0000         0         0         0
        1.0000    0.3333    1.0000         0
        1.0000    0.6667    1.0000    1.0000
        1.0000    1.0000         0         0
    U1 =
        1.0000    1.0000    1.0000    1.0000
             0    3.0000    9.0000   19.0000
             0         0   -1.0000   -3.3333
             0         0         0   -0.3333
    b =
      4×4 logical 数组
       1   1   1   1
       1   1   1   1
       1   1   1   1
       1   1   1   1
    L2 =
        1.0000         0         0         0
        1.0000    1.0000         0         0
        1.0000    0.3333    1.0000         0
        1.0000    0.6667    1.0000    1.0000
    U2 =
        1.0000    1.0000    1.0000    1.0000
             0    3.0000    9.0000   19.0000
             0         0   -1.0000   -3.3333
             0         0         0   -0.3333
    P =
         1     0     0     0
         0     0     0     1
         0     1     0     0
         0     0     1     0
    c =
      4×4 logical 数组
       1   1   1   1
       1   1   1   1
       1   1   1   1
       1   1   1   1
    Y =
        1.0000    1.0000    1.0000    1.0000
        1.0000    3.0000    9.0000   19.0000
        1.0000    0.3333   -1.0000   -3.3333
        1.0000    0.6667    1.0000   -0.3333
    Y1 =
        1.0000    1.0000    1.0000    1.0000
        1.0000    3.0000    9.0000   19.0000
        1.0000    0.3333   -1.0000   -3.3333
        1.0000    0.6667    1.0000   -0.3333
    >> 
    

    3. 舒尔分解

    在这里插入图片描述在这里插入图片描述

    a=pascal(4) % pascal矩阵是对称正定的
    [U,S]=schur(a) % S矩阵对角线上是特征值
    eig(a) % a的特征值构成的向量
    U*U'  % 等于单位阵E
    U*S*U'-a % 验证
    
    a =
         1     1     1     1
         1     2     3     4
         1     3     6    10
         1     4    10    20
    U =
        0.3087   -0.7873    0.5304    0.0602
       -0.7231    0.1632    0.6403    0.2012
        0.5946    0.5321    0.3918    0.4581
       -0.1684   -0.2654   -0.3939    0.8638
    S =
        0.0380         0         0         0
             0    0.4538         0         0
             0         0    2.2034         0
             0         0         0   26.3047
    ans =
        0.0380
        0.4538
        2.2034
       26.3047
    ans =
        1.0000   -0.0000    0.0000   -0.0000
       -0.0000    1.0000    0.0000   -0.0000
        0.0000    0.0000    1.0000    0.0000
       -0.0000   -0.0000    0.0000    1.0000
    ans =
       1.0e-14 *
             0    0.0222    0.0444         0
        0.0444         0    0.0888    0.0888
        0.0444    0.0888    0.4441         0
             0    0.0888    0.1776    0.3553
    >> 
    

    4. 矩形矩阵的正交分解

    在这里插入图片描述在这里插入图片描述

    a=pascal(4) % pascal矩阵是对称正定的
    [q1, r1] = qr(a)
    q1*r1
    q1*q1'
    b=[1 2 3;4 5 6;7 8 9;3 5 7];
    [q2,r2]=qr(b)
    rank_b=rank(b) % b的秩和r2的非零行相同
    
    a =
         1     1     1     1
         1     2     3     4
         1     3     6    10
         1     4    10    20
    q1 =
       -0.5000    0.6708    0.5000    0.2236
       -0.5000    0.2236   -0.5000   -0.6708
       -0.5000   -0.2236   -0.5000    0.6708
       -0.5000   -0.6708    0.5000   -0.2236
    r1 =
       -2.0000   -5.0000  -10.0000  -17.5000
             0   -2.2361   -6.7082  -14.0872
             0         0    1.0000    3.5000
             0         0         0   -0.2236
    ans =
        1.0000    1.0000    1.0000    1.0000
        1.0000    2.0000    3.0000    4.0000
        1.0000    3.0000    6.0000   10.0000
        1.0000    4.0000   10.0000   20.0000
    ans =
        1.0000   -0.0000   -0.0000         0
       -0.0000    1.0000         0    0.0000
       -0.0000         0    1.0000   -0.0000
             0    0.0000   -0.0000    1.0000
    q2 =
       -0.1155    0.4642   -0.0789   -0.8746
       -0.4619    0.0244    0.8866   -0.0060
       -0.8083   -0.4154   -0.4102   -0.0768
       -0.3464    0.7819   -0.1988    0.4787
    r2 =
       -8.6603  -10.7387  -12.8172
             0    1.6371    3.2741
             0         0   -0.0000
             0         0         0
    rank_b =
         2
    >> 
    

    特征值, 特征向量

    在这里插入图片描述

    a=pascal(4) % pascal矩阵是对称正定的
    b=eig(a)
    [X,D]=eig(a) % X的列向量是a的特征向量
    a*X(:,1)
    b(1)*X(:,1)
    a*X
    X*D
    
    a =
         1     1     1     1
         1     2     3     4
         1     3     6    10
         1     4    10    20
    b =
        0.0380
        0.4538
        2.2034
       26.3047
    X =
        0.3087   -0.7873    0.5304    0.0602
       -0.7231    0.1632    0.6403    0.2012
        0.5946    0.5321    0.3918    0.4581
       -0.1684   -0.2654   -0.3939    0.8638
    D =
        0.0380         0         0         0
             0    0.4538         0         0
             0         0    2.2034         0
             0         0         0   26.3047
    ans =
        0.0117   -0.3573    1.1686    1.5832
       -0.0275    0.0741    1.4109    5.2918
        0.0226    0.2415    0.8634   12.0497
       -0.0064   -0.1204   -0.8679   22.7207
    ans =
        0.0117   -0.3573    1.1686    1.5832
       -0.0275    0.0741    1.4109    5.2918
        0.0226    0.2415    0.8634   12.0497
       -0.0064   -0.1204   -0.8679   22.7207
    ans =
        0.0117
       -0.0275
        0.0226
       -0.0064
    ans =
        0.0117
       -0.0275
        0.0226
       -0.0064
    >> 
    
    展开全文
  • 颜庆津版数值分析编程作业,C语言(少量C++语法)实现矩阵的QR分解法迭代求矩阵的全部复数格式特征值,先对矩阵进行拟上三角化再迭代,迭代求出全部特征值后使用列主元素高斯消元法求出所有实特征值对应的特征向量。
  • 此提交包含用于通过基于频谱分而治之的高效稳定算法计算对称矩阵 (QDWHEIG.M) 的特征值分解和奇异值分解 (QDWHSVD.M) 的函数。 计算结果往往比 MATLAB 的内置函数 EIG.M 和 SVD.M 给出的结果更准确。 函数 TEST.M ...
  • 4.2 矩阵特征值和奇异值对于n阶方阵A,求数λ和向量X,使得等式AX=λX成立,满足等式的数λ称为A的特征值,向量X称为A的特征向量。方程AX=λX和(A-λI)X=0是两个等价方程,要使方程(A-λI)X=0有非0解X,则必须使其...

    4.2  矩阵特征值和奇异值

    对于n阶方阵A,求数λ和向量X,使得等式AX=λX成立,满足等式的数λ称为A的特征值,向量X称为A的特征向量。方程AX=λX和(A-λI)X=0是两个等价方程,要使方程(A-λI)X=0有非0解X,则必须使其行列式等于0,即|A-λI |=0。

    由线性代数可知,行列式|A-λI |是一个关于λ的n阶多项式,因此方程|A-λI |=0是一个n次方程,有n个根(包含重根)。n个根就是矩阵A的n个特征值,每一个特征值对应无穷多个特征向量。所以,矩阵的特征值问题有确定的解,但特征向量问题没有确定的解。

    4.2.1  特征值和特征向量的求取

    特征值和特征向量在科学研究和工程计算中的应用非常广泛。在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有以下3种。

    (1)E=eig(A):用于求矩阵A的全部特征值,构成向量E。

    (2)[V,D]=eig(A):用于求矩阵A的全部特征值,构成对角矩阵D,并求A的特征向量,构成V的列向量。

    (3)[V,D]=eig(A,’nobalance’):与上一种格式类似,只是上一种格式中是先对A作相似变换后再求矩阵A的特征值和特征向量,而本格式中则是直接求矩阵A的特征值和特征向量。

    一个矩阵A的特征向量有无穷多个,eig函数只找出其中的n个,A的其他特征向量均可由这n个特征向量组合表示。

    【例4-11】  简单实数矩阵的特征值示例。

    >> A=[1,-3;2,2/3]

    1.0000   -3.0000

    2.0000    0.6667

    >> [V,D]=eig(A)

    0.7746 + 0.0000i   0.7746 + 0.0000i

    0.0430 - 0.6310i   0.0430 + 0.6310i

    0.8333 + 2.4438i   0.0000 + 0.0000i

    0.0000 + 0.0000i   0.8333 - 2.4438i

    【例4-12】  矩阵中有元素与截断误差相当时的特性值问题。

    >> A=[3     -2      -0.9    2*eps

    -2      4       -1    -eps

    -eps/4   eps/2   -1     0

    >> [V1,D1]=eig(A);                        %   求特征值

    >> ER1=A*V1-V1*D1                     %  查看计算误差

    0.0000         0   -0.0000    0.0000

    0   -0.0000    0.0000   -0.0000

    0.0000   -0.0000   -0.0000         0

    0    0.0000    0.0000   -0.3789

    >> [V2,D2]=eig(A,'nobalance');

    >> ER2=A*V2-V2*D2                       %  查看计算误差

    -0.1776   -0.0111   -0.0559   -0.0833

    0.3553    0.1055    0.0343    0.0555

    0.0017    0.0002    0.0007         0

    0.0264   -0.0222    0.0222    0.0333

    在本例,若求特征值的过程中不采用'nobalance'参数,那么计算结果是具有相当大的计算误差的。这是因为在执行eig命令的过程中,首先要调用使原矩阵各元素大致相当的“平衡”程序,这些“平衡”程序使得原来方阵中本可以忽略的小元素(本例中如eps)的作用被放大了,所以产生了较大的计算误差。

    但是这种误差被放大的情况只发生在矩阵中有元素与截断误差相当的时候,在一般情况下,“平衡”程序的作用是减小计算误差。

    【例4-13】  函数eig 与eigs 的比较示例。eigs函数是计算矩阵最大特征值和特征向量的函数。

    >> rand('state',0)            %  设置随机种子,便于读者验证

    >> A=rand(100,100)-0.5;

    >> t0=clock;[V,D]=eig(A);T_full=etime(clock,t0)   %  函数eig的运行时间

    >> options.tol=1e-8;                               %  为eigs设置计算精度

    >> options.disp=0;                                %  不显示中间迭代结果

    >> t0=clock;[v,d]=eigs(A,1,'lr',options);        %  计算最大实部特征值和特征向量

    >> T_part=etime(clock,t0)                  %  函数eigs的运行时间

    >> [Dmr,k]=max(real(diag(D)));       %  在eig求得的全部特征值中找实部最大的

    >> d,D(1,1)

    运行结果为:

    2.7278 + 0.3006i

    2.5933 + 1.5643i

    >> vk1=V(:,k);              %  与d相同的特征向量应是V的第k列

    >> vk1=vk1/norm(vk1);v=v/norm(v);   %  向量长度归一

    8.5377e-007

    >> D_err=abs(D(k,k)-d)/abs(d)        %  求两个特征值间的相对误差

    2.6420e-009

    在本例中,对函数运行所需要的时间进行了评估。需要指出的是:在实际使用中因为计算机的配置和系统状态不同,评估得到的绝对时间也不尽相同,不过我们可以通过同一台计算机上两种函数运行所需要时间比较得到两种算法的优劣。通过本例可以得出结论:使用eigs函数求一个特征值和特征向量所需要的时间,反而比使用eig函数求全部特征值和特征向量的时间多。

    【例4-14】  用求特征值的方法,求解方程的根。

    求解方程组要先构造与方程对应的多项式的伴随矩阵A,再求A的特征值,伴随矩阵A的特征值即为方程的解。具体过程如下:

    >>  B=[1,-2,3,4,-5]

    1    -2     3     4    -5

    >> A=compan(B)            %  求B 的伴随矩阵

    2    -3    -4     5

    1     0     0     0

    0     1     0     0

    0     0     1     0

    >> C=eig(A)

    1.1641 + 1.8573i

    1.1641 - 1.8573i

    -1.1973 + 0.0000i

    0.8691 + 0.0000i

    >> D=roots(B)             %  直接求多项式B的零点

    1.1641 + 1.8573i

    1.1641 - 1.8573i

    -1.1973 + 0.0000i

    0.8691 + 0.0000i函数compan计算的是矩阵B的伴随矩阵A。伴随矩阵的特征值C就是方程的根。roots函数用于直接对线形方程求解,得到结果D,可以看出两种方法得出的结果C和D是一样的。

    4.2.2  奇异值分解

    如果存在两个矢量u、v及一个常数s,使得矩阵A满足下式:

    则称s为奇异值,称u、v为奇异矢量。

    将奇异值写成对角方阵∑,而相对应的奇异矢量作为列矢量,则可写成两个正交矩阵U、V,使得:

    因为U、V正交,所以可得奇异值的表达式为:

    一个m行n列的矩阵A经奇异值分解,可求得m行m列的距阵U,m行n列的矩阵∑,n行n列的矩阵V。

    奇异值分解是另一种正交矩阵分解法,是最可靠的分解法,但是它与QR分解法相比,要花近10倍的计算时间。奇异值分解由svd函数实现,其调用格式为:[U,S,V]=svd(A)。

    【例4-15】  奇异值分解示例。

    >> A=magic(4)

    16     2     3    13

    5    11    10     8

    9     7     6    12

    4    14    15     1

    >> [U,S,V] = svd(A)               %  奇异值分解

    -0.5000    0.6708    0.5000   -0.2236

    -0.5000   -0.2236   -0.5000   -0.6708

    -0.5000    0.2236   -0.5000    0.6708

    -0.5000   -0.6708    0.5000    0.2236

    34.0000         0         0         0

    0   17.8885         0         0

    0         0    4.4721         0

    0         0         0    0.0000

    -0.5000    0.5000    0.6708    0.2236

    -0.5000   -0.5000   -0.2236    0.6708

    -0.5000   -0.5000    0.2236   -0.6708

    -0.5000    0.5000   -0.6708   -0.2236

    >> U*S*V'                   %  分解结果正确性验证

    16.0000    2.0000    3.0000   13.0000

    5.0000   11.0000   10.0000    8.0000

    9.0000    7.0000    6.0000   12.0000

    4.0000   14.0000   15.0000    1.0000

    编辑:蓬荜生辉、倾国倾城、青樱、我本年轻复核:数韵校园工作室

    c0f9e0c39db439168b3f1a9d9ff2ca35.png

    如你对话题感兴趣,

    展开全文
  • "QR_H.m"function [Q,R] = QR_tao(A)%输入矩阵A%输出正交矩阵Q和上三角矩阵R[n,n]=size(A);E = eye(n);X = zeros(n,);R = zeros(n);P1 = E;:n-s = -sign(A(k,k))*norm(A(k:n,k));R(k,k) = -s;w = [A(,)+s,A(:n,k)']'...

    "QR_H.m"

    function [Q,R] = QR_tao(A)

    %输入矩阵A

    %输出正交矩阵Q和上三角矩阵R

    [n,n]=size(A);

    E = eye(n);

    X = zeros(n,);

    R = zeros(n);

    P1 = E;

    :n-

    s = -sign(A(k,k))*norm(A(k:n,k));

    R(k,k) = -s;

    w = [A(,)+s,A(:n,k)']';

    else

    w = [zeros(,k-),A(k,k)+s,A(k+:n,k)']';

    R(:k-,k) = A(:k-,k);

    end

    w = w/norm(w);

    end

    P = E-*w*w';

    A = P*A;

    P1 = P*P1;

    R(:n,n) = A(:n,n);

    end

    之后根据算法:

    An = Q1*R1;

    An+1 =  R1*Q1

    重复迭代即可。

    "QR.m"

    %输入 矩阵A 和迭代次数 it_max%输出 最后对角线上元素为特征值的矩阵function [Q] = QR(A,it_max)

    A1 = A;

    :it_max

    [Q1,R1] = QR_tao(A1);

    A2 = R1*Q1;

    A1 = A2;

    end

    Q=A1

    测试: 计算一个矩阵的特征值:

    A = [,-,-,;

    -,,,-;

    -,,,-;

    ,-,-,;

    ];

    [Q] = QR(A,)

    eig(A)

    最后结果:

    b0b66d39e4b926191630b3440d50d1b8.png

    展开全文
  • 特征值分解 函数 eig 格式 d = eig(A) %求矩阵A的特征值d,以向量形式存放d。 d = eig(A,B) %A、B为方阵,求广义特征值d,以向量形式存放d。 [V,D] = eig(A) %计算A的特征值对角阵D和特征向量V,使AV=VD成立...
  • 特征值分解函数 eig格式 d = eig(A)%求矩阵A的特征值d,以向量形式存放d。d = eig(A,B)%A、B为方阵,求广义特征值d,以向量形式存放d。[V,D] = eig(A)%计算A的特征值对角阵D和特征向量V,使AV=VD成立。[V,D] = eig(A...
  • 4.2 矩阵特征值和奇异值对于n阶方阵A,求数λ和向量X,使得等式AX=λX成立,满足等式的数λ称为A的特征值,向量X称为A的特征向量。方程AX=λX和(A-λI)X=0是两个等价方程,要使方程(A-λI)X=0有非0解X,则必须使其...
  • 前言:当A是方阵时,使用eig特征值分解和实验svd奇异值分解,有...注意:特征值分解时,使用eig,矩阵A必须是方阵。 A = [0 1;1 1]; [V,D] = eig(A) V = -0.8507 0.5257 0.5257 0.8507 D = -0.6180 0 0 ...
  • matlab特征值分解

    千次阅读 2019-06-11 11:55:45
    矩阵A的特征值分解: a=[1 2;3 4]; [u,v]=eig(a); %% eig test test1_1=u*v*inv(u); test1_2=u*v*u'; test1_3=sqrt(sum(u(:,1).^2)); test1_4=u'*u; test1_5=u(:,1)'*u(:,2); test1_1 = 1.0000 2.0000 3.000...
  • 矩阵奇异值分解(SVD)

    2021-04-26 15:14:55
    看到一个博客园里讲解奇异值分解的博文,说的很清楚,加深了对SVD的理解,分享一下!...特征值:特征值分解可以得到特征值与特征向量,特征值表示的是这个特征到底有多重要,而特征向量表示这个特征是什么,可以将...
  • 基于matlab矩阵奇异(SVD)分解

    千次阅读 2019-10-27 10:43:40
    目录 1 计算原理 1.1求解V 1.2求解D ...2 MATLAB程序 ... 设矩阵A的大小m*n(m>...将的特征值从大到小按顺序排列,对应的正交特征向量也要按特征值的顺序排列。排列好的正交的特征向量即为V = ...
  • 1. 矩阵的特征值分解矩阵的特征值分解是...在matlab中一般使用eig()函数完成矩阵特征值和特征向量的提取,其用法如下A = magic(4);[V,D] = eig(A);结果如下:A =16 2 3 135 11 10 89 7 6 124 14 15 1V =-0.5000 -0.8...
  • matlab开发-对称特征值分解。对称矩阵的特征成分或任意矩阵的奇异值分解
  • QR分解矩阵全部特征值

    热门讨论 2013-10-29 22:16:44
    将一个矩阵转化为上Hessenberg矩阵后,再使用QR分解求解矩阵 的全部特征值
  • 使用QR分解方法计算矩阵特征值matlab源码
  • 特征值分解 函数 eigeig: Find eigenvalues and eigenvectors 格式 d = eig(A) %求矩阵A的特征值d,以向量形式存放d。 d = eig(A,B) %A、B为方阵,求广义特征值d,以向量形式存放d。 [V,D] = eig(A) %计算A的特征...
  • QR分解矩阵特征值

    2014-10-15 22:22:55
    MATLAB编程采用QR分解求解矩阵特征值包括实矩阵和复矩阵
  • 矩阵特征值分解

    千次阅读 2017-04-15 20:03:07
    一个方阵X可以分解为V*D*inv(V)的形式,其中D是对角矩阵(其对角线元素由特征值构成),V是对应特征值的列向量构成的矩阵,inv(V)是矩阵V的逆矩阵矩阵分解意义之一是矩阵相乘等同于对一个矩阵施行线性变换,而...
  • Eigen库-求矩阵特征值分解

    千次阅读 2018-09-11 15:18:32
    实验证明无论是opencv还是Eigen,通过特征值分解求最小二乘解都不准确,他们的比较小的特征值的估计特不靠谱,而最小二乘解是最小特征值对应的特征向量。只有matlab的分解结果足够准确,可以用于最小二乘解求解。 ...
  • matlab 稀疏矩阵特征值

    千次阅读 2017-02-10 10:41:26
    矩阵与稀疏矩阵的互换 A = [1 0 0 0 0; 0 5 0 0 0; 0 0 9 0 0; 0 0 0 3 0; 0 0 0 0 6] A =  1 0 0 0 0  0 5 0 0 0  0 0 9 0 0  0 0 0
  • 矩阵特征值分解调用函数eig [v,d]=eig(a),得到矩阵a的特征值对角阵d和特征矢量v 若为两个矩阵的话,求广义特征值: [v,d]=eig(a,b) 奇异值分解 如果存在两个矢量u、v及一常数σ,使得矩阵A满足: Av=σ...
  • 矩阵特征值分解与奇异值分解含义解析及应用

    万次阅读 多人点赞 2014-11-14 14:28:10
    特征值与特征向量的几何意义矩阵的乘法是什么,别只告诉我只是“前一个矩阵的行乘以后一个矩阵的列”,还会一点的可能还会说“前一个矩阵的列数等于后一个矩阵的行数才能相乘”,然而,这里却会和你说——那都是表象...
  • R语言是一门非常方便的数据分析语言,它内置了许多处理矩阵的方法。 作为数据分析的一部分,我们要在有价证券矩阵的操作上做...谱分解 对角线化和光谱分析之间的联系可以从以下文字中看出 ​ > P=e...
  • 矩阵特征值问题是当前迅速发展的计算机科学和数值代数中一个活跃的研究课题,在自然科学和工程技术中有着广泛的重要的应用。以实四元数作为其元素的矩阵称为实四元数矩阵(以下简称四元数矩阵).关于四元数矩阵的研究...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,407
精华内容 2,962
关键字:

matlab矩阵特征值分解

matlab 订阅