目前号称有三大库支持科学计算,它们是GNU的gsl,blitz++以及MTL,我们这里要使用GNU的gsl来做科学计算(参考[1])
参考:
C++中各大有名的科学计算库
C/C++,java开源数学计算库
1.gsl(GNU Scientific Library):GUN科学运算库
下载地址:http://gnuwin32.sourceforge.net/packages/gsl.htm
最强数学库GSL的Qt环境下部署
开始使用GSL库
2.Blitz++:高效率的数值计算函数库
它的设计目的是希望建立一套既具像C++ 一样方便,同时又比Fortran速度更快的数值计算环境。通常,用C++所写出的数值程序, 比 Fortran慢20%左右,因此Blitz++正是要改掉这个缺点。方法是利用C++的template 技术,程序执行甚至可以比Fortran更快。
3.MTL(Matrix Template Library):矩阵模板库
专注于线性代数相关的计算任务,如各种形式矩阵的生成(对角,共轭,稀疏,对称等),相关的计算,变换,以及与一维向量的运算。
4.POOMA:
一个免费的高性能的C++库,用于处理并行式科学计算。POOMA的面向对象设计方便了快速的程 序开发,对并行机器进行了优化以达到最高的效率,方便在工业和研究环境中使用。
5、CGAL:计算几何算法库
github地址:https://github.com/CGAL/cgal
参考网站:www.cgal.org
Computational Geometry Algorithms Library的目的是把在计 算几何方面的大部分重要的解决方案和方法以C++库的形式提供给工业和学术界的用户。
是一个大型C + +库的几何数据结构和算法,如Delaunay三角网,网格生成,布尔运算的多边形,以及各种几何处理算法。 CGAL是用来在各个领域:计算机图形学,科学可视化,计算机辅助设计与建模,地理信息系统,分子生物学,医学影像学,机器人学和运动规划,和数值方法。
Intel Math Kernel Library
1.基本线形代数运算(BLAS) 向量与向量、向量与矩阵、矩阵与矩阵的运算
2.稀疏线形代数运算
3.快速傅立叶变换(单精度/双精度)(fftw)
4.LAPACK(求解线形方程组、最小方差、特征值、Sylvester方程等)
5.向量数学库(VML)
6.向量统计学库(VSL)
7.高级离散傅立叶变换
6.Matlab的开源高仿 Octave
旨在解决线性和非线性的数值计算问题。也是跨平台的,源码中用了大量m4语言(模板)
开源代码:https://ftp.gnu.org/gnu/octave/
7.C++符号计算库 GiNaC
官网:https://www.ginac.de
开源代码:https://www.ginac.de/ginac.git/
8.Eigen -目前较活跃
线性代数、矩阵、向量操作等运算的C++库
开源代码:https://github.com/eigenteam/eigen-git-mirror.git
9.C/C++数值计算库 mygsl
mygsl是一个基于GSL库的个性化开源数值计算项目.
10.IMSL
软件名称 IMSL C Numerical Library(不兼容vc6 编译器)
程序设计语言 C, Forton, C#, Java
资源网址 http://www.vni.com/
功能概述 分为统计库和数学库两部分. 数学库包含应用数学和特殊函数.IMSL 程序库 - 已成为数值分析解决方案的工业标准。 IMSL 程序库提供最完整与最值得信赖的函数库。 IMSL 数值程序库提供目前世界上最广泛被使用的 IMSL 算法,有超过 370 验证过、最正确与 thread-safe 的数学与统计程序。 IMSL FORTRAN 程序库提供新一代以 FORTRAN 90 为程序库基础的程序,能展现出最佳化的演算法能力应用于多处理器与其它高效能运算系统。
11.clapack
软件名称 Linear Algebra Package for C
程序设计语言 c/c++
资源网址 http://www.netlib.org/clapack/
功能概述 c版的线性代数计算子程序包
如何在Visual Studio 2008中安装CLAPACK http://www.deuxmille.org/archives/1486
12.lapack++
软件名称 Linear Algebra Package in c++
程序设计语言 c++
资源网址 http://math.nist.gov/lapack++/
功能概述 c++版的线性代数计算子程序包
还有一些其他的数学库,个人觉得用不上,就没有放上来,比如开源有限元