精華區beta Fortran 關於我們 聯絡資訊
呵...小弟以下的敘述都是以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
charlesdc:換電腦~~~XD 06/21 20:41
YCTzeng:Lanczos, Jacobi-Davidson, 可以算eigenvectors 06/21 20:43
Gwaewluin:你可以試試看skyline法,老闆把他程式改寫後變挺快的 06/24 13:56
MHG:Thx!現在是用CRS format儲存與計算, 有位有時未必會對稱... 06/25 20:00