文章插图
11对于这个示例 , 列计数挨次正好削减了Cholesky分化的时候和存储量 , 可是这种行为凡是是无法预料的 。
tic
L = chol(S(q,q),'lower');
t(3) = toc;
spy(L)
title('chol(S(q,q)) after column count ordering')
nc(3) = nnz(L);
xlabel(sprintf('nonzeros = %d (%.2f%%) time = %.2f sec',nc(3),nc(3)*pct,t(3)));
12按”Enter“键 。
如图6所示 。
文章插图
13利用最小度数 。
SYMAMD号令利用近似最小度算法(一种壮大的图论手艺)在矩阵中发生大的零块 。
号令行窗口键入:
r = symamd(S);
spy(S(r,r)), title('S(r,r) after minimum degree ordering')
nz = nnz(S);
xlabel(sprintf('nonzeros = %d (%.3f%%)',nz,nz*pct));
14按”Enter“键 。
如图7所示 。
文章插图
15最小度算法发生的零块保留在Cholesky分化过程中 。
这可以光鲜明显削减时候和存储当作本 。
tic
L = chol(S(r,r),'lower');
t(4) = toc;
spy(L)
title('chol(S(r,r)) after minimum degree ordering')
nc(4) = nnz(L);
xlabel(sprintf('nonzeros = %d (%.2f%%) time = %.2f sec',nc(4),nc(4)*pct,t(4)));
16按”Enter“键 。
如图8所示 。
文章插图
17总结成果 。
号令行键入:
labels = {'original','Cuthill-McKee','column count','min degree'};
【matlab怎么使用稀疏矩阵】
ax = subplot(2,1,1);
bar(nc*pct)
title('Nonzeros after Cholesky factorization')
ylabel('Percent');
ax.XTickLabel = labels;
ax = subplot(2,1,2);
bar(t)
title('Time to complete Cholesky factorization')
ylabel('Seconds');
ax.XTickLabel = labels;
18按”Enter“键 。
如图9所示 。
文章插图
原作者:matlab教程举报
以上内容就是matlab怎么使用稀疏矩阵的内容啦 , 希望对你有所帮助哦!
推荐阅读
- 电脑版钉钉怎么下载直播视频
- 电脑版钉钉怎么查看直播数据
- matlab中如何表示“稀疏矩阵的图形“
- 魔兽世界8.3部落怎么前往纳沙塔尔
- 猫发情几天配种 母猫发情怎么解决
- 母猫发情怎么制止 主人应对母猫发情措施
- 猫跑了怎么办 猫丢失后的时间可分为3个阶段
- 如果被猫抓了怎么办 及时用浓肥皂水清洗伤口
- 猫老叫怎么办 首先需要判断小猫叫的原因
- 怎么才能让猫发情 如何让猫快速发情