作者MHG (MPS model)
看板Fortran
标题[闲聊] 矩阵解法
时间Tue Jun 21 19:42:07 2011
呵...小弟以下的叙述都是以Fortran撰写~但是近几年都陆续遇到瓶颈~
虽说是数值分析的范畴...为求精进只好请教各位大大了~
若不合板规的话小弟自D~
一般来说...CFD运算都会求解矩阵...(只考虑稀疏的正定矩阵的话)
假若是正定矩阵...
那大概CG是比较快的方法了~(有数学证明可以解释n by n矩阵理论值可以n次收敛)
若是遇到unstructure mesh的话....组合出来的线性系统矩阵未必会对称...
从Numerical recipes得到的讯息是可以采用BiCG求解...
为了求稳定~也有不少人采用GMRES....
在特殊的限制下FFT也蛮被利用的~但他不是矩阵解法...
不少商用软体则是采用Multigrid method...
目前为止小弟的PC(32位元)大概求解百万点(3D问题, 双精度)FEM运算...
大概会花费1G多左右的RAM~(已写成只存非零一维阵列了)
矩阵解法与副程式源自於Numerical recipes改写(Fortran)...
叠代至收敛(收敛门槛为1.0E-06)解一次时间大约要花20多分钟...
其他各门派的BiCG也大致求解速度差异不大~(废话~只是撰写的效率问题罢了...被殴~)
不知各位先进知道更快的方法吗??
另外对於特徵值问题...小弟采用过SVD...(亦源自於NR的改写)
有更快的方法吗???
最後...对於调件数比未知数多的least square矩阵~
在未知数颇多的状况下求解亦是很慢~
小弟参考过的文章都是说明可用BiCG or GMRES求解最佳解...
还有更快的吗???
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.56.1.205
1F:→ charlesdc:换电脑~~~XD 06/21 20:41
2F:推 YCTzeng:Lanczos, Jacobi-Davidson, 可以算eigenvectors 06/21 20:43
3F:推 Gwaewluin:你可以试试看skyline法,老板把他程式改写後变挺快的 06/24 13:56
4F:→ MHG:Thx!现在是用CRS format储存与计算, 有位有时未必会对称... 06/25 20:00