资源描述:
《matlab稀疏矩阵的存储与本征值求解》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、MatLab稀疏矩阵的存储与本征值求解一.Sparsematrix:稀疏矩阵函数sparse用法1.稀疏矩阵定义:即其中只有很少非零元素的矩阵,这样的矩阵就成为稀疏矩阵,这种特性提供了矩阵存储空间和计算时间的优点,例如:A=[0005; 0200; 1300; 0040;];2.稀疏矩阵的转换:给出一个矩阵A,我们可以使用MATLAB函数sparse把它转换成稀疏矩阵,该函数语法为: S=sparse(A)例如:>> A=[0005; 0200; 1300; 0040;];>> S=sparse(A)
2、 S= (3,1) 1 (2,2) 2 (3,2) 3 (4,3) 4 (1,4) 5括号内的坐标是元素在矩阵中位置索引,坐标按照元素值排列 3.稀疏矩阵的获得:函数sparse()的更常用的用法是用来产生稀疏矩阵,具体语法如下: S=vsparse(r,c,s,m,n)其中r和c是我们希望产生的稀疏矩阵的矩阵中非零元素的行和列索引向量。参数s是一个向量,它包含索引对(r,c)对应的数值,m和n是结果矩阵的行维数和列维数。例如:>>s=sparse([32341]
3、,[12234],[12345],4,4)s= (3,1) 1 (2,2) 2 (3,2) 3 (4,3) 4 (1,4) 5如果要获得完成的矩阵,可以使用full()函数,函数语法: A=full(s)例如:>>a=full(s)a= 0 0 0 5 0 2 0 0 1 3 0 0 0 0 4 0二.求稀疏矩阵特征值的函数eigs用法 1.d=eigs(A) %求稀疏矩阵A的6个绝对值
4、最大特征值d,d以向量形式存放。2.d=eigs(A,B) %求稀疏矩阵的广义特征值问题。满AV=BVD,其中D为特征值对角阵,V为特征向量矩阵,B必须是对称正定阵或Hermitian正定阵。3.d=eigs(A,k) %返回k个最大特征值4.d=eigs(A,B,k) %返回k个最大特征值5.d=eigs(A,k,sigma) %sigma取值:'lm' 表示绝对值最大的特征值;'sm' 绝对值最小特征值;对实对称问题:'la'表示最大特征值;'sa'为最小特征值;对非对称和复数问题:'lr' 表示最大实部;'sr' 表示
5、最小实部;'li' 表示最大虚部;'si'表示最小虚部6.d=eigs(A,B,k,sigma) %同上7.d=eigs(A,k,sigma,opts) %opts为指定参数。具体如下。opts为一个向量 参数 描述 value opts.issym =1:如果A对称 {0
6、1}=0:A不对称 opts.isreal =1:A为实数=0:otherwise {0
7、1} opts.tol 收敛???(没看懂)**估计8、igs(A,B,k,sigma,options) %同上。以下的参数k、sigma、options相同。9.d=eigs(Afun,n) %用函数Afun代替A,n为A的阶数,D为特征值。10.d=eigs(Afun,n,B) 11.d=eigs(Afun,n,k)12.d=eigs(Afun,n,B,k)13.d=eigs(Afun,n,k,sigma)14.d=eigs(Afun,n,B,k,sigma)15.d=eigs(Afun,n,k,sigma,options)16.d=eigs(Afun,n,B,k,sigma,op
9、tions)17.[V,D]=eigs(A,…) %D为6个最大特征值对角阵,V的列向量为对应特征向量。18.[V,D]=eigs(Afun,n,…)19.[V,D,flag]=eigs(A,…) %flag表示特征值的收敛性,若flag=0,则所有特征值都收敛,否则,不是所有都收敛。20.[V,D,flag]=eigs(Afun,n,…)