看板 Prob_Solve 關於我們 聯絡資訊
第一次逛到這個版...看完文章後隨興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
piggung:大型稀疏矩陣用Krylo space solvers如你所舉CG,BiCG,GMRES 10/07 04:05
piggung:迭代次數與condition number 相關 10/07 04:08
piggung:現成的解線性系統函式庫如PETCS,hypre等有許多模組供選用 10/07 04:10
piggung:配合使用preconditioner效率很好,問題太大就使用平行運算 10/07 04:12