快使用Ctrl+D收藏本站!本站早已不再维护,择期将关闭本站!!本站资源已全部失效,请勿打赏!!PLC培训创业官网 苏州实操派科技-点击访问-

MATLAB自学笔记(九):稀疏矩阵、特征值与特征向量

matlab仿真 파충충好气气 8524℃ 0评论

稀疏矩阵

稀疏矩阵定义:含有大量0元素的矩阵

一个稀疏矩阵包括m*3项元素,其中m是原数组中非零项的个数。其第一列是行下标,第二列是列下标,第三列是非零项的值

储存一个浮点数需要8字节,一个下标值需要4字节,则储存整个矩阵需要16*m个字节

1.稀疏矩阵的存储方式

对于稀疏矩阵,MATLAB仅存储矩阵所有的非零元素的值及其位置

2.稀疏矩阵的生成

利用函数sparse(稀疏)建立一般的稀疏矩阵

  • sparse(A):由非零元素和下标生成稀疏矩阵A
  • sparse(m,n):生成一个m*n的所有元素都是0的稀疏矩阵
  • sparse(u,v,a):生成大小为max(u) * max(v)的稀疏矩阵。其中uv是整数向量,a是实数或者是复数向量
  • sparse(u,v,a,m,n):生成一个m*n的稀疏矩阵,(u,v)是对应值a的坐标
  • spconvert(D):生成一个稀疏矩阵。D有三列,第一列是行下标,第二列是列下标,第三列是非零项的值
  • full(S):将稀疏矩阵S转换成一个满矩阵

spy()函数可以对稀疏矩阵中的非零元素进行图形化显示,采用nnz(S)/prod(size(S))计算稀疏矩阵的非零元素密度

利用特定函数建立稀疏矩阵

  • S = speye(m,n):创建单位稀疏矩阵
  • S = spones(X):创建非零元素为1的稀疏矩阵
  • S = sprand(X):创建非零元素为均匀分布的随机数稀疏矩阵
  • S = sprandn(X):创建非零元素为高斯分布的随机数稀疏矩阵
  • S = sprandsym(X):创建非零元素为高斯分布的随机数对称稀疏矩阵
  • S = spdiags(X):创建对角稀疏矩阵
  • S = spalloc(X):为稀疏矩阵分配空间

3.稀疏矩阵的运算

满矩阵的四则运算法则对稀疏矩阵同样有效,但是返回结果可能是稀疏矩阵或满矩阵。只要参与运算的任一矩阵为满矩阵,则返回结果为满矩阵

稀疏矩阵的数乘与幂计算结果都是稀疏矩阵

特征值与特征向量

1.特征值的定义

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

2.相关函数

  • eig(A):求包含矩阵A的特征值向量
  • [X,D] = eig(A):产生一个矩阵A的特征值在对角线上的对角矩阵D和矩阵X,他们的列是相应的特征向量,满足AX = XD。为了得到有更好条件特征值的矩阵,要进行相似变换
  • [T,B] = balance(A):找到一个相似变换矩阵T和矩阵B,使得他们满足B = T-A·T。B是用命令balance求得的平衡矩阵
  • eig(A,’nobalance’):不经过平衡处理求得的A的特征值和特征向量,也就会不进行平衡相似变换
  • eigs(A):返回一个由矩阵A的部分特征值组成的向量,和eig命令一样,但不是返回全部的特征值。 如果不带有参量,则计算出最大的特征值。当计算所有的特征值时,如果矩阵A的特征值不小于6,则计算出6个特征值
  • eigs(f,n):求出矩阵A的部分特征值。     在使用一个矩阵列的线性运算符时,字符串f中包含的是M文件的文件名,n指定问题的阶次。用这种方法来求特征值比开始就用运算符来求快得多
  • eigs(A,B,k,sigma):求矩阵A的部分特征值,矩阵B的大小与A相同;若没有给出B = eye(size(A)),那么k就是要计算的特征值得个数;若k没有给出就用小于6的数或者A的秩
  • condeig(A):返回一个由矩阵A的特征值条件数组成的向量
  • [V,D,s] = condeig(A):返回[V,D] = eig(A) 和 S = condeig(A)

转载请注明:燕骏博客 » MATLAB自学笔记(九):稀疏矩阵、特征值与特征向量

赞赏作者

微信赞赏支付宝赞赏

喜欢 (4)or分享 (0)

如果您喜欢本站文章,感觉本站的资源对您有帮助,请狠狠点击下面

每累计赞助40元,即可让本站按最低配置运行一个月,感谢您的支持!

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址