找回密码
 注册
关于网站域名变更的通知
查看: 551|回复: 1
打印 上一主题 下一主题

Matlab:Reordering of Spare Matrix

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-8-5 14:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
首先,在matlab里面,图形化一个矩阵的命令为spy。
- C/ ]! n0 w' v# h$ H) {4 P假如我们有一个矩阵A,保存在A.mat文件中。; M) F6 R. y6 A" |) j# M: c
load A;
6 ~( z( j1 c8 x% bspy(A);# W* \- q, `4 r
会生成如下图形,蓝色的点代表非零元素。6 x0 f, p# P/ t1 L& _, J2 y" J% ^
# K" J* [4 w+ @" M. |/ A9 S4 M
可以看到矩阵中的元素零散分布,bandwidth很大,这样利用迭代法求解时,收敛速度会降低。/ S- \$ a% P$ W# x+ \
但如果我们将矩阵的元素都重新排序,会如何呢?
7 u% ~1 _; w# Z8 N; Q' g6 {我们利用三种方法:7 U0 z# w+ {5 F) l8 L* Y- y
figure;
# q: d- `" X, d4 nsubplot(2,2,1);$ N$ K' D/ O; C; a. v. p* L
spy(A);
. {# G1 g* S" W" z$ q" n3 D& p: e, K. stitle('original');0 d; H1 b( F+ _) p# g- Q
subplot(2,2,2);
  }8 \: @/ M  c9 mp = symrcm(A);
1 L6 i/ M4 K5 y2 Wspy(A(p,p));
4 f( {$ s7 ?" Ktitle('symrcm');) F4 F& t. x6 |+ C, }
! f; C1 B$ o- N/ ~; R
subplot(2,2,3);% L- `1 @2 s3 b- n' j3 Z
q = colperm(A);
& G5 Y, X/ [' u. D: w) j& s& Yspy(A(q,q));
) [6 p' d3 o8 q- W" P. Gtitle('colperm');5 g# Z3 c* \! C6 @2 L/ H3 w

- ?; j) F3 a% gsubplot(2,2,4);# ^7 \. N! N. }" W: Q3 D
r = symamd(A);
0 {. J$ t" W$ x1 N( }spy(A(r,r));
2 y+ M0 Z/ f$ d0 ?& t/ Utitle('symamd');
2 _0 L3 v0 w% g  C" ?+ P2 x8 Z8 v结果如下:1 ?  Z; G" M7 {1 u

  \. l$ X# A9 X! k: u
! d* ]  w: l: g
0 U1 E6 l, O2 r! @( V可以看到,重新排序后矩阵的结构变的更规则,bandwidth变小,尤其是sysrcm方法。/ `* q( T( @3 Z4 G$ V
文件下载:
9 N  ~6 Q, X* L. g0 G1 ^6 B( Ghttp://cid-b505e89fcbf74c29.office.live.com/self.aspx/File^_Storer/Matlab/matrix^_reorder.7z. }$ m( g0 u; \7 U- U
稍后会给出rcm方法的fortran调用界面。
' U3 @! I6 W" D( q' R8 T$ v( O& I4 h1 w. b1 W3 c# Z

该用户从未签到

2#
发表于 2020-8-5 15:57 | 只看该作者
                              
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-23 08:37 , Processed in 0.078125 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表