matlab矩阵及其基本运算—特征值分解和奇异值分解

来源:互联网 发布:淘宝网短袖圆领男内衣 编辑:程序博客网 时间:2024/05/11 19:46
特征值分解
函数 eig

eig: Find eigenvalues and eigenvectors
格式 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,'nobalance')   %当矩阵A中有与截断误差数量级相差不远的值时,该指令可能更精确。'nobalance'起误差调节作用。


[V,D] = eig(A,B)    %计算广义特征值向量阵V和广义特征值阵D,满足AV=BVD。


[V,D] = eig(A,B,flag)   % 由flag指定算法计算特征值D和特征向量V,flag的可能值为:'chol' 表示对B使用Cholesky分解算法,这里A为对称Hermitian矩阵,B为正定阵。'qz' 表示使用QZ算法,这里A、B为非对称或非Hermitian矩阵。


说明 一般特征值问题是求解方程: 解的问题。广义特征值问题是求方程: 解的问题。




奇异值分解
函数 svd


格式 s = svd (X)          %返回矩阵X的奇异值向量


[U,S,V] = svd (X)   %返回一个与X同大小的对角矩阵S,两个酉矩阵U和V,且满足= U*S*V'。若A为m×n阵,则U为m×m阵,V为n×n阵。

奇异值在S的对角线上,非负且按降序排列。



[U,S,V] = svd (X,0)   %得到一个“有效大小”的分解,只计算出矩阵U的前n列,矩阵S的大小为n×n。


例1-73


>> A=[1 2;3 4;5 6;7 8];


>> [U,S,V]=svd(A)



U =


   -0.1525   -0.8226   -0.3945   -0.3800


   -0.3499   -0.4214    0.2428    0.8007


   -0.5474   -0.0201    0.6979   -0.4614


   -0.7448    0.3812   -0.5462    0.0407


S =


   14.2691         0


         0    0.6268


         0         0


       0         0


V =


   -0.6414    0.7672


   -0.7672   -0.6414


>> [U,S,V]=svd(A,0)


U =


   -0.1525   -0.8226


   -0.3499   -0.4214


   -0.5474   -0.0201


   -0.7448    0.3812


S =


   14.2691         0


         0    0.6268


V =


   -0.6414    0.7672


   -0.7672 -0.6414
原创粉丝点击