在哪里可以获得C/ c++的免费数学库

Where to get free math libraries for C/C++

本文关键字:免费 c++ 在哪里      更新时间:2023-10-16

是否有免费的C/c++库可以做matlab所做的函数类型-我的意思是复杂的东西,如离散拉普拉斯等?在matlab中创建某种接口并构建自己的库是最好的选择吗?

谢谢

你看过Boost.Math吗?http://www.boost.org/doc/libs/1_46_1/libs/math/doc/html/index.html

如果你是在windows上,有一个非常容易使用的安装程序由BoostPro:http://www.boostpro.com/download/

如果你想要的东西是matlab克隆但免费,你可以使用Octave http://www.gnu.org/software/octave/

我没有在c++程序中使用它,但它显然有一个c++ API:

http://octave.sourceforge.net/doxygen/html/index.html

根据你想做的事情,有不同的软件包可用。

任意精度

  • 主要是整数:GMP, MPIR(类似的代码库,MPIR有VC构建)
  • 花车:MPFR
  • 复杂:MPC

专家:

  • Number Theory: Flint
  • 线性代数:Boost Numeric uBLAS
  • pde: libMesh
  • 计算流体动力学:OpenFoam
  • 图论:Boost Graph

一般:

  • TNT(是lapack++ (TNT=do everything, lapack++ =Linear Alg.)
  • SciMath(商业)
  • GNU科学图书馆

,这只是少数。我没有重复其他人列出的libpari

如果你想知道,Maple, Mathematica, Matlab等都使用GNU MP进行任意精度计算。

PARI可能是一个不错的选择,尽管我不熟悉使用它:

PARI官方网站

PARI是一个C库,如果你想要一个独立的软件,他们有PARI- gp

以下是上述网站对PARI的描述:

PARI/GP是一种应用广泛的计算机为快速代数系统设计数论中的计算因式分解,代数分解理论,椭圆曲线…),而且包含了大量的其他用于计算的有用函数数学实体,例如矩阵,多项式,幂级数,代数数等等,还有很多超越函数。PARI也是作为C库提供更快的计算。

希望对大家有帮助!

注:据说Octave函数可以从c++中调用,这可能是MATLAB的一个很好的替代。

看看armadillo,它可以简化您对矩阵的处理。那么为了解偏微分方程你就得自己动手了。明确地构造你的拉普拉斯矩阵,并以你想要的方式求解它。

也有英特尔MKL(不是免费的),它增加了一些价值:迭代求解器(GMRES, BCG)和一些黑盒,用于解决简单域(立方体和球体)上的拉普拉斯/泊松方程。

我使用OpenCV进行大量图像处理和矩阵操作,这通常是我使用matlab的目的。

http://opencv.willowgarage.com/wiki/

可能是多余的,这取决于你想做什么样的数学,但它对计算机视觉很好。

GNU Scientific Library是C和c++程序员的免费数值库。

使用编码器工具箱(需要MATLAB R2011a),您还可以将MATLAB代码转换为C或c++。

你可以使用octave runtime:

http://en.wikipedia.org/wiki/GNU_Octave C.2B.2B_Integration