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

Matlab:Reordering of Spare Matrix

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
首先,在matlab里面,图形化一个矩阵的命令为spy。
6 p$ ]1 x. ~) d! y! M* |! [假如我们有一个矩阵A,保存在A.mat文件中。7 D) T# [) V0 r  F2 m9 v- y
load A;- \. ?. L5 s# L% S
spy(A);
* X1 Q$ q0 g8 p6 L% w7 L1 |会生成如下图形,蓝色的点代表非零元素。! [" s7 t  ~+ q$ V! g

4 U& K6 i5 O( w5 x! u可以看到矩阵中的元素零散分布,bandwidth很大,这样利用迭代法求解时,收敛速度会降低。
0 d6 t6 U0 H# d. ?! ]但如果我们将矩阵的元素都重新排序,会如何呢?
% I  a: T( {' Z  t9 P* d我们利用三种方法:
/ y: m) _" G/ l9 |0 t1 Bfigure;
7 q8 {4 i  s. Q  T' E& Bsubplot(2,2,1);
  t. b# m/ L1 h! Jspy(A);
6 j& r. N" G2 h: ~2 H2 Otitle('original');3 ^3 G2 i  _7 V4 o7 a8 i2 O
subplot(2,2,2);+ a9 {% l# i% _0 `- ]# Z
p = symrcm(A);; P- j5 F1 q  [6 G' p7 _; P
spy(A(p,p));; f2 w% J! \( U1 E; E1 u
title('symrcm');; m3 d# c9 X( P% s% d
8 r  p1 i2 y( \6 r6 Z/ o$ H
subplot(2,2,3);/ l; y5 v- ^+ q5 E: y6 O
q = colperm(A);" m5 ?% n' L& \- F
spy(A(q,q));5 x& z5 P) V  o- k. {- I$ a; e
title('colperm');
# F: ]) g1 M/ }1 j2 x$ C- w1 i8 y
. p; f5 C/ f' _& Csubplot(2,2,4);
) w/ Z$ D: Z. q2 n0 Lr = symamd(A);+ d* Y9 m" J6 }$ u
spy(A(r,r));3 V1 `% A: e. b
title('symamd');( J; I: }8 z) e6 P$ I
结果如下:3 u* B4 M/ P. b/ _- q/ R+ |
2 }. P* ^. p6 ~( q0 D0 G

& S+ C8 R4 {/ B# e
3 ]1 J% e! m* d& |可以看到,重新排序后矩阵的结构变的更规则,bandwidth变小,尤其是sysrcm方法。
) T' @% U- f1 D5 w2 l) L$ Z1 u* ?# y文件下载:
" u/ G; Z# Q! Z7 f! Zhttp://cid-b505e89fcbf74c29.office.live.com/self.aspx/File^_Storer/Matlab/matrix^_reorder.7z- ?7 J- ?& g# W9 J/ W$ F8 K$ S
稍后会给出rcm方法的fortran调用界面。
8 W  m: |1 ^2 {) c+ z. K" f6 b; \9 h

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 23:56 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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