观看记录
  • 我的观影记录
登录
测试首页matlab怎么使用稀疏矩阵

matlab怎么使用稀疏矩阵

此示例演示如何重新排列稀疏矩阵的行和列,从而影响矩阵操作的速度和存储要求。

工具/原料

  • matlab软件
  • 电脑

方式/步骤

  1. 1

    稀少矩阵的可视化。

    间谍图显示矩阵中的非零元素。

    这个间谍图显示了一个稀少对称正定矩阵,来自哈韦尔波恩测试矩阵“West0749”的一部门,该矩阵描述了在化工场中的衍射柱模子中的毗连。

    号令行键入:

    load west0479.mat

    A = west0479;

    S = A * A' + speye(size(A));

    pct = 100 / numel(A);


    figure

    spy(S)

    title('A Sparse Symmetric Matrix')

    nz = nnz(S);

    xlabel(sprintf('nonzeros = %d (%.3f%%)',nz,nz*pct));

  2. 2

    按”Enter“键。

    如图1所示。

  3. 3

    计较乔尔斯基因子。

    此刻我们计较乔尔斯基因子L,此中S=L*L‘。

    注重,L包含的非零元素比未分化的S要多得多,因为Cholesky因式分化的计较建立了“填充”非零。

    这减慢了算法的速度,增添了存储当作本。

    tic

    L = chol(S,'lower');

    t(1) = toc;

    spy(L), title('Cholesky decomposition of S')

    nc(1) = nnz(L);

    xlabel(sprintf('nonzeros = %d (%.2f%%)   time = %.2f sec',nc(1),nc(1)*pct,t(1)));

  4. 4

    按”Enter“键。

    如图2所示。

  5. 5

    从头排序以加速计较速度

    经由过程从头排序矩阵的行和列,可以削减因因因式分化而发生的填充量,从而削减时候和存储当作本。

    我们此刻测验考试三种分歧的排序,由MATLAB撑持.

    反标的目的切希尔-麦基

    列计数

    最低水平

    利用反标的目的切希尔-麦基

    SYMRCM号令利用反标的目的的Cuthill-McKee从头排序算法将所有非零元素移到对角线四周,从而削减了原始矩阵的“带宽”。

    号令行键入:

    p = symrcm(S);

    spy(S(p,p))

    title('S(p,p) after Cuthill-McKee ordering')

    nz = nnz(S);

    xlabel(sprintf('nonzeros = %d (%.3f%%)',nz,nz*pct));

  6. 6

    按”Enter“键。

    如图3所示。

  7. 7

    因为Cholesky因式分化发生的填充被限制在带内,使得从头排序后的矩阵因式分化所需的时候更短,存储更少。

    号令行键入:

    tic

    L = chol(S(p,p),'lower');

    t(2) = toc;

    spy(L)

    title('chol(S(p,p)) after Cuthill-McKee ordering')

    nc(2) = nnz(L);

    xlabel(sprintf('nonzeros = %d (%.2f%%)   time = %.2f sec', nc(2),nc(2)*pct,t(2)));

  8. 8

    按”Enter“键。

    如图4所示。

  9. 9

    利用列计数

    COLPERM号令利用列计数从头排序算法将非零计数更高的行和列移到矩阵的末从头至尾。

    号令行键入:

    q = colperm(S);

    spy(S(q,q)), title('S(q,q) after column count ordering')

    nz = nnz(S);

    xlabel(sprintf('nonzeros = %d (%.3f%%)',nz,nz*pct));

  10. 10

    按”Enter“键。

    如图5所示。

  11. 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. 12

    按”Enter“键。

    如图6所示。

  13. 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. 14

    按”Enter“键。

    如图7所示。

  15. 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. 16

    按”Enter“键。

    如图8所示。

  17. 17

    总结成果。

    号令行键入:

    labels = {'original','Cuthill-McKee','column count','min degree'};


    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. 18

    按”Enter“键。

    如图9所示。

原作者:matlab教程举报

“matlab怎么使用稀疏矩阵”关联的文章

  • 如何关闭皮皮搞笑精彩内容消息通知

    皮皮搞笑是一款手机搞笑社区App,让用户笑到没心没肺,又忍不住感动流泪的温暖家园,那么如何关闭皮皮搞笑精彩内容消息通知以满足不同用户的需求呢?

    1小时前0阅读

    如何关闭皮皮搞笑精彩内容消息通知
  • win7系统找不到宽带连接怎么办

    现如今很多用户都喜欢使用win7系统,而在使用win7系统的过程中做的最多的就是上网了。Win7系统上网离不开宽带连接,如果win7宽带连接找不到了,应该怎么办呢?下面就让小编为大家带来win7系统找不到宽带连接解决方法

    1小时前0阅读

    win7系统找不到宽带连接怎么办
  • 新版QQ音乐怎么关闭底部的直播导航

    新版QQ音乐怎么关闭底部的直播导航?下面请大家随小编一起来看看操作的方法吧。

    1小时前0阅读

    新版QQ音乐怎么关闭底部的直播导航
  • 怎样查询高速实时路况?

    要出行怎么查询高速实时路况?我们用地图就可以了,在地图上就可以看到实际的路况的,下面详细来看下。

    1小时前0阅读

  • 六芒星手势密码教程
  • 教师讲课过程评价标准

    教师是太阳底下最光辉的职业,但是成为教师之路也是要经历重重考验的,下面给大家说说教师讲课过程评价标准

    1小时前0阅读

  • 酚醛铝箔夹芯板

    酚醛铝箔夹芯板是由酚醛泡沫与两层亚光铝箔经过特殊工艺复合而成。外膜材料为经过高温固化的高分子膜,可有效的防止紫外线及气体腐蚀,并与铝箔结合牢固,又能与酚醛泡沫形成聚合物,从而保证象圆酚醛铝箔夹芯板的质量稳定。

    1小时前0阅读

  • Xperia XZ2 Premium配置如何

    Xperia XZ2 Premium是索尼在4月16日悄悄发布的新机,而且没进行预热,下面来简单了解一下配置。

    1小时前0阅读

  • PLSQL破解,无需注册码和破解工具

    PL/SQL Developer过期了,又没有注册码,又不想花钱买,而且事情又非常急,这时候怎么办?不要着急,请随小编一起解决这种情况吧。

    1小时前0阅读

  • Win11按capslock切换不了大小写怎么解决

    有朋友不知道在哪里设置,下面小编就给大家分享详细的设置方法,有需要帮助的朋友可以参考下这篇经验,希望能对大家有所帮助。

    2小时前0阅读

    Win11按capslock切换不了大小写怎么解决
切换深色外观
留言
视频编辑修改
回到顶部
首页
手机数码
医疗健康
金融管理
社交情感
无名