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

Matlab:Reordering of Spare Matrix

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
首先,在matlab里面,图形化一个矩阵的命令为spy。1 M2 R! ]. D, N; L- H$ k
假如我们有一个矩阵A,保存在A.mat文件中。2 B& j% e+ M& x
load A;
9 j: W1 G: B( L5 vspy(A);
* m; T' u* A) ?$ L, U& p: u会生成如下图形,蓝色的点代表非零元素。6 ^, l6 x0 C5 f) Z  C7 u! h  D

6 O( I0 n! N' T) P2 c% b' B可以看到矩阵中的元素零散分布,bandwidth很大,这样利用迭代法求解时,收敛速度会降低。
, g) Q. U: u( E9 Z但如果我们将矩阵的元素都重新排序,会如何呢?
: k4 K0 {$ {; I6 O我们利用三种方法:6 h) `9 T* B. k  h9 k$ L
figure;2 s; z- R4 ~$ s) L8 v1 g
subplot(2,2,1);
# G5 w- ^4 P, a4 F. |. \& |/ l5 wspy(A);: J/ J6 N7 R1 |! g) r4 ]  y
title('original');
% ^2 O; v; T. xsubplot(2,2,2);6 ^; _+ h/ n! x
p = symrcm(A);% H2 a7 T; A' W* I: s# C5 \9 b1 W
spy(A(p,p));# i7 [1 w$ z( f' t* W* T! X7 ?
title('symrcm');  N1 _- ]. W: O0 R- D
! [1 k6 h' I( x" ?  i
subplot(2,2,3);3 z. P5 J/ f4 C/ {; ~- I$ S( c
q = colperm(A);2 k: Z! m$ D  Z0 r" v6 w) l
spy(A(q,q));
6 v4 m: ?. ~8 m$ A  C, wtitle('colperm');
- W1 p+ P" a" b) [6 {
9 w9 f+ K& }7 q! w4 @& ~subplot(2,2,4);1 j: C$ |6 h# w" N5 A, Z) }
r = symamd(A);- |! e- x% {9 H0 h
spy(A(r,r));1 s* n" c/ {# |1 p9 q. N6 _( R
title('symamd');$ ~8 d. ~  I3 m: y2 M! b
结果如下:
, q6 k- f/ f9 T6 I
' ?* d2 w7 B; _5 l0 z0 n5 i
* T  C  A; F! c% Z" h& s
' d9 ?" O; a! Q* D可以看到,重新排序后矩阵的结构变的更规则,bandwidth变小,尤其是sysrcm方法。+ i& i4 y8 M; G5 a  e6 D* U6 ^2 `) ^5 z
文件下载:
( J5 h6 U6 ~! O5 A5 ehttp://cid-b505e89fcbf74c29.office.live.com/self.aspx/File^_Storer/Matlab/matrix^_reorder.7z0 j' c# B0 l4 B% S
稍后会给出rcm方法的fortran调用界面。- D6 E- G, C& {& \7 u- X8 ]

2 y2 B, B4 y: L# ~

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-25 01:44 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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