開源數學計算庫

有限元分析、數值計算、三維建模、信號處理、性能分析、仿真分析。。。這些或多或少與我們常用的軟件息息相關,假如有一天你只需要這些大型軟件系統的某一個很有限的功能,你是不是也要因此再用一用那動輒幾個g的軟件呢?其實我覺得如果系統不是很大,不是很複雜,我們個人完全有可能自己去編寫代碼來實現這些‘’有限的功能‘’。別以爲這是件很困難的事情,我總以爲大學期間學的c語言是極其有用的,只要你會基本的c語言語法,你就可以的。

     下面我來介紹幾個非常有益的c/c++數學計算庫,他們基本上都是開源的,你完全不必擔心版權問題,他們都是一些自由軟件,你要做的僅僅是仔細閱讀他們的授權協議確保不要濫用就可以了:

計算幾何算法庫 CGAL CGAL ,計算幾何算法庫,是一個大型C + +庫的幾何數據結構和算法,如Delaunay三角網,網格生成,布爾運算的多邊形,以及各種幾何處理算法。  CGAL是用來在各個領域:計算機圖形學,科學可視化,計算機輔助設計與建模,地理信息系統,分子生物學,醫學影像學,機器人學和運動規劃,和數值方法。 下載網址 http://www.cgal.org/download.html

數學軟件包 Octave Octave 是一個類似matlab和Scilab的數學軟件包,可以進行各種運算,編程。它還有豐富的C++接口可以讓用戶編程時調用。它繪圖使用gnuplot。 Octave的使用也是基於字符終端模式的,當需要繪圖時,將會調用Gnuplot進行數據繪圖,並顯示出來。 Octave是用C++編寫的,它內容豐富的庫也可以供用戶在編寫軟件時調用。Octave庫的詳細介紹在/usr/share/doc/octave-2.1.50/liboctave下,文件是liboctave.dvi,需要PDF文件的,可以運行: dvipdfm liboctave.dvi 將dvi文件轉換爲PDF文件。 Octave同時還支持Fortran等的調用,GSL綁定等。可以由用戶定製自己的函數、子程序等。 下載地址  http://octave.sourceforge.net/packages.html C++ 數學計算庫 TooN TooN 是一個C++ 數學計算庫,其目的是有效運作的大量小型矩陣,並提供方便一些算法包括矩陣分解和優化。 下載地址http://mi.eng.cam.ac.uk/~er258/cvd/toon/html-user/index.html

有限元分析軟件 OpenFEM 有限元分析,即使用有限元方法來分析靜態或動態的物體或系統。在這種方法中一個物體或系統被分解爲由多個相互聯結的、簡單、獨立的點組成的幾何模型。在這  種方法中這些獨立的點的數量是有限的,因此被稱爲有限元。由實際的物理模型中推導出來得平衡方程式被使用到每個點上,由此產生了一個方程組。這個方程組可 以用線性代數的方法來求解。有限元分析的精確度無法無限提高。元的數目到達一定高度後解的精確度不再提高,只有計算時間不斷提高。 下載地址 http://sourceforge.net/projects/openfem/files/

有限元計算框架 OOFEM OOFEM   是一個開源多物理並行有限元程序的面向對象的架構。這個項目的目的是提供高效率和強大的有限元計算工具,以及提供高度模塊化和可擴展性的發展環境。有限元分析通常藉助計算機軟件完成,著名工程軟件有:MSC.Nastran、ADINA、LS-DYNA、ANSYS、ABAQUS、2D-sigma等。 下載地址  http://www.oofem.org/en/download/download.html

C++符號計算庫 GiNaC GiNaC(GiNaC 不是一個 CAS  計算機代數系統))是一個用於符號計算的C++庫。它的設計允許集成系統創造,象徵性的操作嵌入與更成熟的計算機科學(如計算密集型,圖形界面等),數字應用領域。相對於其他情況下,它不會嘗試代數提供廣泛的功能和簡單的編程語言,而是接受一個給定語言(C + +)和擴展了代數功能設置。 下載地址 http://www.ginac.de/Download.html

類C的數學專用語言EngLab EngLab是一個類C的數學專用語言。它語法簡單,關鍵字很少,工程師和那些只會少許編程知識的人便能很好的掌握。 下載地址http://sourceforge.net/projects/englab/files/

C++信號處理庫 SP++ TSPL(Template Signal Processing Library) 是一個 C++ 的信號處理庫,主要包括濾波器設計、時頻分析和小波變換,同時還包含一些關於向量和矩陣的基本算法,所有的算法基於 C++ 模板類編寫而成。 下載地址http://code.google.com/p/tspl/downloads/list

偏微分方程求解工具箱 DUNE(目前還不支持windows系統) DUNE (Distributed and Unified Numerics  Environment),分佈和統一數值解環境,是一種求解偏微分方程的基於網格的方法(PDE)的模塊化的工具箱。DUNE是所有這些體現了科學計算的概念從抽象的接口設置第一次。現代C +  +編程技術使同樣的概念非常不同的實現使用一個非常低的開銷一個共同的接口。因此,DUNE確保在科學計算的效率,並支持高性能計算應用。下載地址http://www.dune-project.org/download.html

人工智能應用框架 Into Into 是一個用 C++ 開發的跨平臺的機器智能應用框架。Into 提供一種不同於其他的、快速的方法用以構建高性能圖像分析、機器視覺效果、模式識別和人工智能應用。分層的 API 一起超過 20 個完全可互操作的插入式模塊用來訪問圖像和各種數據源等。 下載地址http://intopii.com/into/

高性能計算軟件工具包 DAKOTA DAKOTA (Design Analysis Kit for Optimization and Terascale Applications)  是一種用於執行系統的分析和高性能計算機的設計通用軟件工具包。它提供了設計優化,不確定性量化,參數估計,實驗設計,靈敏度分析,以及連接服務的計算和模擬的並行算法範圍。 下載地址http://www.cs.sandia.gov/DAKOTA/download.html

線性算術的C++模板庫 Eigen Eigen 是一個線性算術的C++模板庫,包括:vectors, matrices, 以及相關算法。功能強大、快速、優雅以及支持多平臺。 下載地址  http://bitbucket.org/eigen/eigen/downloads/

多精度整數和有理數 MPIR MPIR 是一個開源的多精度的整數和有理數計算庫,基於 GMP 庫開發。 下載地址http://www.mpir.org/mpir-1.3.1.tar.gz

C/C++數值計算庫 mygsl mygsl是一個基於GSL庫的個性化開源數值計算項目. 該類庫提供了關於數學計算的很多方面,包括:Complex Numbers    Roots of Polynomials Special Functions    Vectors and MatricesPermutations    Sorting BLAS Support    Linear Algebra Eigensystems    Fast Fourier TransformsQuadrature    Random Numbers Quasi-Random Sequences    Random Distributions Statistics    HistogramsN-Tuples    Monte Carlo Integration Simulated Annealing    Differential Equations Interpolation    Numerical Differentiation Chebyshev Approximation    Series Acceleration Discrete Hankel Transforms    Root-FindingMinimization    Least-Squares Fitting Physical Constants    IEEE Floating-Point Discrete Wavelet Transforms    Basis splines

MATLAB是美國MathWorks公司出品的商業數學軟件,用於算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境,主要包括MATLAB和Simulink兩大部分。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章