Fortran Coder

查看: 6449|回复: 6

[稀疏矩阵] Fortran中满秩矩阵如何转化为压缩稀疏列(CSC)格式

[复制链接]

24

帖子

7

主题

0

精华

熟手

F 币
132 元
贡献
80 点
发表于 2017-1-16 11:51:02 | 显示全部楼层 |阅读模式
请问,Fortran中满秩矩阵如何转化为压缩稀疏列(CSC)格式的稀疏矩阵呀,有子程序吗,或者推荐哪里有相关内容呀

490

帖子

4

主题

0

精华

大宗师

F 币
3298 元
贡献
1948 点

水王勋章元老勋章热心勋章

发表于 2017-1-16 13:31:19 | 显示全部楼层
请先把Tim Davis的这本入门书籍及其附带的C程序看完
Direct Methods for Sparse Linear Systems


1948

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1298 元
贡献
547 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2017-1-16 15:34:32 | 显示全部楼层
CSC格式本身并不复杂。做个循环,把非零的数据选出来,并且把坐标(或坐标偏移)算出来挨个放就可以了。

但是更多的你应该考虑,存为CSC之后,你要怎么计算?你是否有CSC格式的计算代码?(或函数库?如果有函数库,那么为何不用函数库提供的转换方法?)

24

帖子

7

主题

0

精华

熟手

F 币
132 元
贡献
80 点
 楼主| 发表于 2017-1-16 16:48:31 | 显示全部楼层
fcode 发表于 2017-1-16 15:34
CSC格式本身并不复杂。做个循环,把非零的数据选出来,并且把坐标(或坐标偏移)算出来挨个放就可以了。

...

您好,谢谢。我调用的是一个求解器,只需要向它提供CSC格式矩阵的三个一维数组就行(每列第一个非零元素的位置、每个非零元素的行号、数值)。求解器提供的例题矩阵比较小,它直接把这三个数组写出来了。但我组装后的矩阵矩阵比较大,现在不知道怎样由大矩阵获得那三个一维数组

24

帖子

7

主题

0

精华

熟手

F 币
132 元
贡献
80 点
 楼主| 发表于 2017-1-16 16:48:54 | 显示全部楼层
pasuka 发表于 2017-1-16 13:31
请先把Tim Davis的这本入门书籍及其附带的C程序看完
Direct Methods for Sparse Linear Systems

好的,谢谢。我再看看

1948

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1298 元
贡献
547 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2017-1-16 16:52:56 | 显示全部楼层
那就简单了。百度去看看 CSC/CSR 的存储方式就好了,200个字以内就可以解释清楚。
做个循环,把非零的数据选出来,并且把坐标(或坐标偏移)算出来挨个放就可以了

24

帖子

7

主题

0

精华

熟手

F 币
132 元
贡献
80 点
 楼主| 发表于 2017-1-16 16:57:55 | 显示全部楼层
fcode 发表于 2017-1-16 16:52
那就简单了。百度去看看 CSC/CSR 的存储方式就好了,200个字以内就可以解释清楚。
做个循环,把非零的数据 ...

好的,我试试看。谢谢啦
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-3-29 23:37

Powered by Tencent X3.4

© 2013-2024 Tencent

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