作者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