[摘自SMTH]稀疏矩阵求逆讨论

转载 2004年08月12日 23:23:00

 发信人: lingruoxuan (lingruoxuan), 信区: Num_Analysis
标  题: [摘自SMTH]稀疏矩阵求逆讨论
发信站: 日月光华 (2004年08月11日21:05:20 星期三), 站内信件

来源:HTTP://BBS.SMTH.EDU.CN  NUMCOMP
水木清华之数值版
[合集] matlab中好像对稀疏矩阵求逆的处理没有特殊方法
>>难道还是高斯消去法?那大型的不是要求死啊
help GMRES
BICG
BICGSTAB
CGS
QMR
.......
>>高斯消去算个10来阶的小矩阵还成,算大了一定出问题!
>>求逆就是用解方程AX=I来求?
>>求逆的复杂度总是很大,能少用就少用
Ax=ei   (1=<i<=n)
把解得的xi按顺序拼成一个矩阵就完了。。
>>这样看来跟求一个方程的复杂度一样了啊。矩阵是正定对称稀疏矩阵,现在的情况
是不但要求,而且维数还非常的大。麻烦啊
>>对称正定的稀疏矩阵很好办啊,用LU分解就可以了。
如果维数实在太大,比如超过10^4量级,那就只能用
共轭梯度法之类的迭代法求解了。
>>你觉得LL’分解不会破坏矩阵的稀疏性么——如果矩阵不是带状的话?
而且数值稳定性也有问题。
>>会啊,会产生注入元,不过一般不是很多,
可以通过预测的方法事先得出注入元的位置,形成稀疏矩阵的时候
保留下这些空位。
>>这个好像不是很可行,能说得仔细点么?
>>这个如果用二维链表的存储方式倒是好办,Fortran 77里面就麻烦一些了,
不过也是可以实现的。主要是通过不完全模拟一次LU分解过程,计算出注
入元的位置。
我去年花了很长时间写了一个稀疏矩阵类库,可以说专门用于解线性方程
组相关问题的,就是用的这种方法,另外自己做了一个内存管理的模块,
整体效果非常好。不过我的领域稀疏矩阵的规模一般不是很大,一般不会
超过10000维。
维数再多就不知道效果怎么样了。
>>嗯。。对于一些注入元不是很多的矩阵这应该是个好办法。
但是对于有些矩阵,LU分解后可能就把整个矩阵充满了。~
这是比较郁闷的事情。。
>>求逆一般是不可取的,无需多说。但稀疏矩阵的直接解法还是不少的。基本上都是对
矩阵进行重新排序以期减少填充或运算量。
在matlab里面,有许多算法可以利用:
colamd, colmmd, colperm, spparms, symamd, symmmd, symrcm.
根据是否对称,采用LU分解或者chol分解。
这些算法在internet上搜一下,很多都有相应的C或fortran版本。
稀疏矩阵的存储最常见的是压缩列(行)存储,最近发现一种利用hash表来存储的,其
存取复杂度是O(1),很是不错。有幸趣的可以看看下面网页咯,作者提供了源程序。
http://www.informatik.hs-bremen.de/~brey/
>>对于带状的稀疏矩阵 <matrix computations>里面介绍了一些很巧妙的数据结构。
同时推荐一个网址,资源还是很丰富的。不知道前面是不是有人推荐过了。。
http://math.nist.gov/MatrixMarket/
>>事实上Hash表存储的效率也跟Hash算法有关,弄不好的话,不见得比直接按行或者列

>>我对这个了解并不深。
那个网页上的程序利用的是stl的hashtable和自己实现两种方法,效率还是可以的,并
且附有一个效率比较的程序。
另外,从hash表的初衷来看,应该是规模越大,效率越高才对。压缩列(行)存储的存
取效率才会随规模增大而降低。
hash表存储直接用于计算估计不会太好,毕竟现有的程序大多是用压缩列存储。但利用
它编程会很方便,就像matlab里面的稀疏矩阵一样。并且hash表和压缩列存储的相互转
换很容易,可以很方便地调用现有的稀疏矩阵软件包。
>> 维数再多还是用不完全LU分解预处理+CG or Gmres
我一个同学这么求过200W阶的矩阵
>>各种各样的预处理+GMRES是现在解决大规模稀疏矩阵的主力方法。。


--
>>天空依然阴霾,>>
    >>依然有鸽子在飞翔.>>
※ 来源:·日月光华 bbs.fudan.edu.cn·[FROM: 10.85.12.89]

 

稀疏矩阵的行压缩存储(CSR/CRS), 列压缩存储CCS

转载地址:http://blog.csdn.net/bigpiglet_zju/article/details/20791881稀疏矩阵(Sparse Matrix)由于有很多0,为了节省空间,一般压...
  • steve_1962
  • steve_1962
  • 2018-01-11 12:38:27
  • 166

大规模稀疏矩阵求逆

大规模xinshujuzhen根据矩阵特点用不用的分解,写成几个例程,每次实验之前进行尝试,根据尝试结果在算法里决定里决定用哪个。 irst 我想问: 1.全阶矩阵A的求逆运算inv(A...
  • ZQ_onlytime
  • ZQ_onlytime
  • 2014-09-09 16:27:52
  • 4670

数据结构进阶(二)矩阵(稀疏矩阵)的压缩存储

矩阵(稀疏矩阵)的压缩存储注      本文转载地址:http://blog.163.com/zhoumhan_0351/blog/static/39954227201001112526244/   ...
  • sunhuaqiang1
  • sunhuaqiang1
  • 2016-05-02 16:29:27
  • 49673

要好好总结一下超大矩阵求逆的技巧了

要好好总结一下超大矩阵求逆的技巧了 2009-05-09 11:43:22 直接算会死人的。根据矩阵特点用不用的分解,写成几个例程,每次实验之前进行尝试,根据尝试结果在算法...
  • yinxusen
  • yinxusen
  • 2012-05-14 10:47:08
  • 10879

稀疏(sparsity)矩阵的行压缩存储

压缩矩阵行或列来存储矩阵的格式是很普遍的,它们不会存储不必要的元素(即空值)。但是它们也不是非常有效的,当在一个矩阵-向量积或预解决的每个简单标量中需要间接寻址。行压缩存储方式会把一个稀疏矩阵行的非零...
  • z595054650
  • z595054650
  • 2015-06-23 21:52:41
  • 2577

稀疏矩阵的压缩存储及其转置算法

1  什么是稀疏矩阵        有较多值相同元素或较多零元素,且值相同元素或者零元素分布没有一定规律的矩阵称为稀疏矩阵。 假设在mXn的矩阵中,有t个元素不为零,令c=t/mXn则称为矩阵的稀...
  • fanzheng220112583
  • fanzheng220112583
  • 2012-07-04 14:20:57
  • 11460

稀疏矩阵-压缩存储-列转置法- 一次定位快速转置法

稀疏矩阵的压缩存储压缩存储值存储极少数的有效数据。使用{row,col,value}三元组存储每一个有效数据,三元组按原矩阵中的位置,以行优先级先后顺序依次存放。650) this.width=650...
  • alick97
  • alick97
  • 2016-10-25 14:01:35
  • 741

稀疏矩阵存储格式

当运算数据数量很大且稀疏的时候,使用稀疏的数据存储格式可以节省大量的存储空间且加快计算速度。本文介绍三种比较常见的稀疏矩阵表示方式:COO(Coordinate Format坐标表示),CSR(Com...
  • wangjian1204
  • wangjian1204
  • 2016-08-08 09:52:21
  • 4545

矩阵(稀疏矩阵)的压缩存储(一)

35、矩阵(稀疏矩阵)的压缩存储(一)   2010-01-11 13:25:26|  分类: 算法及分析|举报|字号 订阅 为了节省存储空间并且加快处理速度,...
  • u013014691
  • u013014691
  • 2014-11-10 21:41:22
  • 977
收藏助手
不良信息举报
您举报文章:[摘自SMTH]稀疏矩阵求逆讨论
举报原因:
原因补充:

(最多只允许输入30个字)