下面我来介绍几个非常有益的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 Matrices Permutations Sorting BLAS Support Linear Algebra Eigensystems Fast Fourier Transforms Quadrature Random Numbers Quasi-Random Sequences Random Distributions Statistics Histograms N-Tuples Monte Carlo Integration Simulated Annealing Differential Equations Interpolation Numerical Differentiation Chebyshev Approximation Series Acceleration Discrete Hankel Transforms Root-Finding Minimization Least-Squares Fitting Physical Constants IEEE Floating-Point Discrete Wavelet Transforms Basis splines
MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
数学
stats++ - 先进、广泛的统计软件:数据收集及预处理、统计、机器学习及优化,拥有开放的 C++ 源码。
StatsLib - 统计分布函数的模板化唯头文件库。
alglib
ArrayFire High Performance Computation Library
GNU MP bignum C++ interface
BigNumber - 创建和计算任意长度整数的 C++ 类
Boost.Multiprecision
Boost.Math.Special Functions and Statistical Distributions
Boost.Random
NTL - A Library for doing Number Theory
cpp-measures - 处理物理度量的唯头文件 C++11 库
G+Smo - 等几何分析的跨平台库
C++ Matrix - 高性能且精确(例如极端情况)的矩阵数学库,带表达式模板算术运算符
Exact floating-point arithmetic library
RPNX Uniform Smooth Noise - N 维均匀分布的平滑噪声函数,以 C++ 实现。
C++数学计算库集合
C++中各大有名的科学计算库
线性代数
Boost.uBLAS
Eigen
Armadillo
Blitz++
IT++
Dlib - linear algebra tools
Blaze
ETL
DecompLib - 唯头文件的 C++11 库,分解向量为正定加权基向量的集合。
优化
OptimLib - 非线性函数数值优化方法的 C++11 库。
图论
Boost.Graph
LEMON
OGDF - Open Graph Drawing Framework
NGraph - a simple (Network) Graph library in C++
GTpo - C++14 泛型图拓扑库,带 Protocol Buffer 序列化;项目主页: https://www.qanava.org
数的类库
cln
Universal - 通用数算术的 C++ 模板库,取代 IEEE 浮点( MIT 许可)
机器学习
stats++
liblinear
Dlib - 机器学习工具
MLPACK - 机器学习包
Shogun - 大规模机器学习工具箱
FANN - 快速人工神经网络库
计算几何
CGAL - 计算几何算法库
Wykobi - 计算几何库
PCL - 点云库
自动化理论
yasmine - C++11 UML state machine framework[src][doc]
物理与模拟
ReactPhysics3D - 进行 3D 模拟与游戏的 C++ 物理引擎
ProjectCHRONO - 开源多物理模拟引擎
Bullet - 游戏、视觉效果、机器人及加固学习的物理模拟
金融计算
QuantLib - Quantitative finance library
DataFrame - C++ DataFrame —— 现代 C++ 中使用原生类型、连续内存存储,且无虚函数的 R 与 Pandas 数据框架。