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

Matlab:Reordering of Spare Matrix

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
首先,在matlab里面,图形化一个矩阵的命令为spy。
- N* O9 U* L% D7 b1 m. w  E假如我们有一个矩阵A,保存在A.mat文件中。2 s3 a9 E2 I, L, P/ i! ?% ]
load A;
5 ~, a) I* v" I: Y% Mspy(A);
8 ~6 s0 c" Z  z. x会生成如下图形,蓝色的点代表非零元素。
7 D* \6 J9 y! G, F' e ( c; O- Y3 r1 u$ B+ U2 C
可以看到矩阵中的元素零散分布,bandwidth很大,这样利用迭代法求解时,收敛速度会降低。2 P# C6 P, n- u5 A( C
但如果我们将矩阵的元素都重新排序,会如何呢?# Q5 X; ~5 d+ a. `, k* r) |
我们利用三种方法:4 e7 z- {" `! T9 h7 W
figure;- N/ M8 q' [- I
subplot(2,2,1);( }/ V; p* f4 N, @
spy(A);
# n5 r5 T% v; R% Dtitle('original');7 ?8 F, S1 e3 H3 p
subplot(2,2,2);
) l8 {' A4 l- s" `5 x" [  yp = symrcm(A);/ u  B$ `; Z9 u% ?' y
spy(A(p,p));
% S0 R& J8 m  T" btitle('symrcm');! k6 I# h9 w( K. K

4 k' Q* Y9 e: \) ]8 z2 D* jsubplot(2,2,3);, W6 s2 \! L! W0 e) d/ x' Q4 }' S
q = colperm(A);
3 j- o$ C, @* o/ i- R1 yspy(A(q,q));
0 R6 E8 O- S0 o" j% K$ h$ i5 Ktitle('colperm');- i5 I( K$ w. A  M
3 E, ~; }% G2 q- u' }
subplot(2,2,4);+ N0 {' V# V% v* p
r = symamd(A);
3 V6 r+ A. Y/ p8 Aspy(A(r,r));
5 _3 \: O* z9 r# F3 rtitle('symamd');
5 Q& [2 q9 A! \: [结果如下:0 M. p! u0 j9 p" L" }

% l+ j( y- p- Q
6 g$ Z5 n0 n1 h3 I  [/ ^/ r( F7 `" X0 \8 Y' O
可以看到,重新排序后矩阵的结构变的更规则,bandwidth变小,尤其是sysrcm方法。
5 \' S  s: s" M0 J; ]1 q文件下载:
: F: h0 s( u/ s7 \7 ?; ~% [# @/ zhttp://cid-b505e89fcbf74c29.office.live.com/self.aspx/File^_Storer/Matlab/matrix^_reorder.7z8 n3 q- _8 H4 Z# f% f9 u
稍后会给出rcm方法的fortran调用界面。
" ^" v& x! r! G# `3 W* @) B& n6 U9 {4 V. e0 m. Q

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-27 08:36 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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