网站大量收购独家精品文档,联系QQ:2885784924

09.稀疏矩阵.pdf

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
09.稀疏矩阵.pdf

下载 第9章 稀 疏 矩 阵 在许多问题中提到了含有大量 0元素的矩阵,这样的矩阵称为稀疏矩阵。比如求解普通或 者部分微分方程的数值解。为了节省存储空间和计算时间, M AT L A B考虑到矩阵的稀疏性, 在对它运算时有特殊的命令。 9.1 矩阵为什么稀疏 一个稀疏矩阵中有许多元素等于零,这便于矩阵的计算和保存。如果 M AT L A B把一个矩 阵当作稀疏矩阵,那么只需在 m×3的矩阵中存储m个非零项。第 1列是行下标,第 2列是列下 标,第3列是非零元素值,不必保存零元素。如果存储一个浮点数要 8个字节,存储每个下标 要4个字节,那么整个矩阵在内存中存储需要 1 6×m个字节。 ■ 例9 . 1 A = e y e ( 1 0 0 0 ) ; 得到一个1 0 0 0×1 0 0 0的单位矩阵,存储它需要 8 Mb空间。如果使用命令: B = s p e y e ( 1 0 0 0 ) ; 用一个 1 0 0 0×3的矩阵来代表,每行包含有一个行下标、列下标和元素本身。现在只需 1 6 K b的空间就可以存储 1 0 0 0×1 0 0 0的单位矩阵,它只需要满单位矩阵的 0 . 2 %存储空间。对于 许多的广义矩阵也可这样来作。 稀疏矩阵的计算速度更快,因为 M AT L A B只对非零元素进行操作,这是稀疏矩阵的第二 个突出的优点。 ■ 例9 . 2 假设矩阵A、B和例9 . 1中的矩阵一样。计算 2*A需要一百万次的浮点运算,而计算 2*B只 需要2 0 0 0次浮点运算。 因为M AT L A B不能自动创建稀疏矩阵,所以要用特殊的命令来得到稀疏矩阵,在下一节 中将给出这些命令。前面章节中的算术和逻辑运算都适用于稀疏矩阵。 9.2 创建和转换稀疏矩阵 在M AT L A B中,用命令s p a r s e来创建一个稀疏矩阵。 命令集8 7 创建稀疏矩阵 s p a r s e ( A ) 由非零元素和下标建立稀疏矩阵 A。如果A已是一个稀疏 矩阵,则返回A本身。 s p a r s e ( m , n ) 生成一个m×n的所有元素都是0的稀疏矩阵。 ■ ■ s p a r s e ( u , v , a ) 生成一个由长度相同的向量 u,v和a定义的稀疏矩阵。其 中u和v是整数向量, a是一个实数或者复数向量。 (u i, v i) 对应值 a i,如果 a中有零元素,则将这个元素排除在外。 稀疏矩阵的大小为m a x (u)×m a x (v)。 s p a r s e ( u , v , a , m , n ) 生成一个m×n的稀疏矩阵,(ui, vi)对应值ai。向量u,v和a 必须长度相同。 s p a r s e ( u , v , a , m , n , 生成一个m×n的含有n z m a x个非零元素的稀疏矩阵。 (ui, n z m a x ) vi)对应值ai。n z m a x的值必须大于或者等于向量u和v的长度。 f i n d ( x ) 返回向量 x中非零元素的下标。如果 x=X是一个矩阵,那 么X的向量就作为一个长向量来考虑。 [ u , v ] = f i n d ( A ) 返回矩阵A中非零元素的下标。 [ u , v , s ] = f i n d ( A ) 返回矩阵A中非零元素的下标。用向量s中元素的值及u和v中 相应的下标,实际上就是向量u、v和s作为命令s p a r s e的参数。 s p c o n v e r t ( D ) 将一个有三列的矩阵转换成一个稀疏矩阵。 D中的第1列作 为行的下标,第2列作为列的下标,最后一列作为元素值。 而且可以使用命令 f u l l将稀疏矩阵转换成一个满矩阵。 命令集8 8 转换成满矩阵 f u l l ( S ) 将稀疏矩阵S转换成一个满矩阵。 ■ 例9 . 3 (a) 创建一个5×5的单位矩阵: A = e y e ( 5 ) 将矩阵A转换成稀疏矩阵B: (b) 假设M AT L A B中给出如下的向量: 这样就有了行向量,但是也可使用列向量。运行命令S m a t r i x = s p a r s e ( i n d 1 , i n d 2 , n u m b e r ), 结果为: 1 2 4 M ATLAB 5 手册 下载 其中有去掉了两个零元素。将这个矩阵转换成满矩阵,输入: F u l l m a t r i x = f u l l ( S m a t r i x ) 得到的结果为: 注意,稀疏矩阵和得到的满矩阵的大小是分别是由 i n d 1和i n d 2中最大元素值确定的,即 使相应的值是零,并且在列出的稀疏矩阵中去掉这个值。 输入命令w h o s可得到: 可以看出虽然两个矩阵的大小相同,但是其中稀疏

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档