有哪些科學計算的開源庫?
最近在搞科學計算的東西,想了解一下有哪些開源庫包含隨機採樣的一些演算法,例如Monte Carlo sampling、latin hypercube sampling等等。
謝邀
科學計算我是業餘玩家,分幾部分簡單說一些開源或者免費而流行的工具包吧。會安利一些cuda和julia的東西
提科學計算不能不提矩陣,這裡就要供出大名鼎鼎的blas了,這是一套大而全的線性代數標準,有不同的實現,比如
jblas(java) java上用過的唯一線性代數庫。之前寫來做神經網路控制的。
cublas(cuda版本的,速度驚人)boost::blas等,python上面著名的numpy的底層按照我的記憶也是在fortran上的blas作為底層
另外的,做輕量級線性代數計算還可以使用Eigen(最近做控制就用它),當然了,julia一定是一個非常好的選擇,不過julialang後面我們單獨講。
另一方面,隨機數生成和抽樣也是現代流行的課題,這方面我在做蒙卡的時候一般是使用自己寫的抽樣程序,隨機數生成器來說我知道cuRand是一個非常高速質量高的隨機數生成器。關於curand做高維蒙卡積分可以參見我的blog http://blog.xuhao1.me 如果有時間的話會做一個路徑積分的程序。
這裡再說幾個神器吧,首先是julialang,這是mit做計算化學的一幫子人搞的,有原生的大規模矩陣運算和不錯的量子力學計算包量子蒙卡等。參見 http://www.julialang.org
julia的優勢是比python快太多但是又有靈活的介面(比如websocket),實驗過julia+websocket+three.js的組合,還算不錯。
其次是python下面的scipy/numpy包,這個我就不需要過多介紹了。十分有名。
還有就是良心N家的全系列科學計算包…這樣你就有理由買一塊Titan black打孤島危機了,是不是特別開心?
最後安利一個我寫了一半的工程(後來跑去寫飛控也沒有人靠譜的科學計算相關的項目做了)…iJulia/iPython的伺服器管理器,應該是在
http://github.com/xuhao1/Cranberry
目前有客戶端管理,文件管理等功能,至於網盤對接等還是等我考完toefl/gre再說吧。
現在跑去玩控制了(雖然一直還想碰科學計算但是沒有能做的課題了)…很久不碰這些了。如果有記憶錯誤,還請多指正。Pynum scipy
推薦閱讀: