中关村在线

软件

MATLAB稀疏矩阵使用技巧

本例展示通过调整稀疏矩阵行列顺序,优化计算速度与存储空间的方法。

1、 稀疏矩阵图形化展示

2、 间谍图展示矩阵中非零元素的分布。

3、 该间谍图呈现哈韦尔波恩测试矩阵West0749的子集,为稀疏对称正定矩阵,反映化工厂中衍射柱模型的连接结构。

4、 输入命令行指令

5、 按下回车键确认操作。

6、 一所示

7、 计算乔尔斯基因子数值。

8、 现计算乔尔斯基因子L,满足S等于L乘以其转置。

9、 由于Cholesky分解过程中产生大量填充元素,L中的非零项远多于原始矩阵S中的非零项。

10、 这降低了算法效率,提高了存储开销。

11、 tic

12、 按下回车键确认操作。

13、 见图2所示

14、 调整顺序提升计算效率

15、 调整矩阵行列顺序可降低分解过程中的填充元素,有效节省计算时间和存储空间。

16、 正在使用MATLAB进行三种不同排序方法的尝试。

17、 逆向切希尔-麦基法

18、 列计数

19、 最低限度

20、 采用反向切希尔-麦基方法

21、 SYMRCM命令采用反向Cuthill-McKee算法对矩阵进行重排序,使非零元素更靠近主对角线,有效减小矩阵带宽,提升计算效率。

22、 输入命令行:

23、 按下回车键确认操作。

24、 见图3所示

25、 因Cholesky分解的填充被限制在带宽内,经重排序后的矩阵分解更高效,耗时更短且占用存储更少。

26、 输入命令行指令

27、 tic

28、 按下回车键确认操作。

29、 4所示。

30、 采用列数统计

31、 COLPERM命令通过列计数重排算法,将含非零元素较多的行列移至矩阵末尾。

32、 输入命令行指令

33、 按下回车键即可。

34、 见图5所示

35、 此例中,列计数顺序恰好缩短了Cholesky分解的时间与存储需求,但这类效果通常难以事先预知。

36、 tic

37、 按下回车键即可。

38、 六所示

39、 采用最低阶数。

40、 SYMAMD命令利用近似最小度算法,在矩阵中高效构造出大块零元素,提升计算性能。

41、 在命令行中输入:

42、 按下回车键即可。

43、 七所示

44、 最小度算法生成的零块在Cholesky分解中得以保留。

45、 大幅降低时间与存储开销。

46、 tic

47、 按下回车键确认操作。

48、 8所示。

49、 汇总成果。

50、 输入命令行指令

51、 按下回车键确认操作。

52、 九所示

展开全文
人赞过该文
内容纠错

相关电商优惠

评论

更多评论
还没有人评论~ 快来抢沙发吧~

读过此文的还读过

点击加载更多

内容相关产品

说点什么吧~ 0

发评论,赚金豆

收藏 0 分享
首页查报价问答论坛下载手机笔记本游戏硬件数码影音家用电器办公打印 更多

更多频道

频道导航
辅助工具