作者MHG (MPS model)
站内Prob_Solve
标题[闲聊] 有关矩阵解法
时间Thu Apr 7 10:44:43 2011
第一次逛到这个版...看完文章後随兴po个文...希望不会违反版规~
(小弟已经毕业多年了...所以不是为了作论文或是作业才PO闲聊的...XD)
在CFD中, 常会遇到要求解 N by N 线性矩阵...
Ex: pressure Poisson equation by mesh-dependent or meshless methods)
一般来说都是用某些Basis function离散化後~组成线性系统再进行求解...
组成的线性系统多半为大型稀疏矩阵(当然也会有满矩阵的啦! 但那是另一个题目了~)
为了计算更有效率...都会选择一些存取非零矩阵的scheme....
(通常是储存非零矩阵元素的值与其index)
但是当矩阵大到某个程度...记忆体loading就会随之增加...
上述方法当矩阵过大(Ex: 3D FVM求解复杂几何形状之流场, N很容易大於十万)...
记忆体loading就大概GB就成了基本单位了~
请问一下有更有效率的储存方法吗?(Apply FFT!?)
再者....当稀疏矩阵过大(如上述情况),
求解矩阵有更有效率的方法吗(假设矩阵不会病态, 非对称且稀疏)??
一般来说解矩阵方法分两类, 直接法与叠代法...
直接法大概是LU分解了~
(有人说FFT也是直接法, 但是小弟认为他是在某些限制条件下才可求解)
叠代法就多样了...如: SOR, CG, BiCG系列, GMRES, Multigrid...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.56.1.205
1F:推 piggung:大型稀疏矩阵用Krylo space solvers如你所举CG,BiCG,GMRES 10/07 04:05
2F:→ piggung:迭代次数与condition number 相关 10/07 04:08
3F:→ piggung:现成的解线性系统函式库如PETCS,hypre等有许多模组供选用 10/07 04:10
4F:→ piggung:配合使用preconditioner效率很好,问题太大就使用平行运算 10/07 04:12