这是一个著名的数值库列表,这些库用于软件开发中执行数值计算。它不是一个完整的列表,而是一个包含Wikipedia上文章的数字库列表,很少有例外。
典型库的选择取决于一系列不同的需求,例如:期望的特性(例如:大维线性代数、并行计算、偏微分方程)、商业/开源性质、API的可读性、可移植性或平台/编译器依赖性(例如:Linux、Windows、Visualc++、GCC)、速度性能、易用性、开发人员的持续支持、标准遵从性、针对特定应用程序场景的代码的专门优化,甚至要安装的代码库的大小。
由于我们发现很少有全面的调查可用,所以在许多可能的库中几乎总是(至少最初是)有一个艰难的选择。通常情况下,它往往是由用户根据自己的品味和舒适度来决定的,只是因为缺乏适当的信息。
Multi-language
ALGLIB是一个开源的数值分析库,可以从c++、c#、FreePascal、Delphi、VBA中使用。ArrayFire是一个用于并行计算的高性能开源软件库,具有易于使用的API。IMSL数值库是用C、Java、c#.net、Fortran和Python等标准编程语言实现的数值分析功能库。NAG库是针对多种编程语言(C、c++、Fortran、VisualBasic、Java、Python和c#)和包(MATLAB、Excel、R、LabVIEW)的数学和统计例程的集合。GNUOctave是一种开源的高级编程语言和库,包括一个命令行接口和GUI,类似于Maple、MATLAB、Mathematica等商业替代品。可以从许多平台(包括高级工程程序)调用api、函数和库,在许多情况下,函数可以像MATLAB那样无缝地解释和集成。它也可以用于批量定位。librsb是一个用于高性能稀疏矩阵计算的开源库,提供多线程原语来构建迭代求解器(也实现稀疏BLAS标准)。它可以从C、c++、Fortran和专用的GNUOctave包中使用。C
BLOPEX(块局部最优预处理特征值Xolvers)是一个用于特征值问题的可伸缩(并行)解决方案的开源库。FFTW(西方最快的傅里叶变换)是一个计算傅里叶和相关变换的软件库。GNUScientificLibrary,一个流行的,用C语言实现的免费的数值分析库。GNUMulti-PrecisionLibrary是一个做任意精度算术的库。hypre(HighPerformancepreconditioning)是一个用于线性系统和预处理的可伸缩(并行)解决方案的例程开源库。LabWindows/CVI是一个ANSICIDE,包括用于分析原始测量数据、信号生成、窗口、滤波函数、信号处理、线性代数、数组和复杂操作、曲线拟合和统计的内置库。Lis是一个可扩展的并行库,用于求解线性方程组和特征值问题。IntelMKL,英特尔数学内核库(C语言),一个为科学、工程和金融应用程序优化数学例程的库,用C/c++和Fortran编写。核心数学函数包括BLAS、LAPACK、ScaLAPACK、稀疏求解器、快速傅里叶变换和向量数学。OpenBLAS是BLASAPI的一个开源实现,具有许多针对特定处理器类型的手工优化。它在Intel处理器上的性能类似于IntelMKL,在其他各种处理器上的性能更高。Portable,ExtensibleToolkitforScientificComputation(PETSc)是一套数据结构和例程,用于偏微分方程建模的科学应用程序的可伸缩(并行)解决方案。SLEPcScalableLibraryforEigenvalueProblemComputations是一个基于petsc的面向特征值问题可伸缩(并行)解决方案的开源库。C++
Adept是一个组合自动微分和数组库。AdvancedSimulationLibrary是一个免费的开源硬件加速多物理仿真软件,具有基于opencl的内部计算引擎。ALGLIB是一个开源/商用的c++版本的数值分析库Armadillo是一个c++线性代数库(矩阵和向量数学),旨在在速度和易用性之间取得良好的平衡。它使用模板类,并具有指向BLAS和LAPACK的可选链接。语法(API)类似于MATLAB。Blaze是一个用于密集和稀疏运算的开源高性能c++数学库。Blitzc++是一个用c++编写的高性能向量数学库。Boost.uBLAS。用于数值计算的uBLASc++库deal.II是一个支持所有偏微分方程有限元解的库。Dlib是一个现代c++库,易于使用线性代数和优化工具,这些工具得益于优化的BLAS和LAPACK库。Eigen是一个矢量数学库,其性能可与Intel的数学内核库相媲美Hermes项目:c++/Python库,用于空间和时空自适应hp-FEM求解器的快速原型设计。iml++是一个用于求解线性方程组的c++库,能够处理密集、稀疏和分布式矩阵。它是一个c++库,用于线性代数(矩阵和向量)、信号处理和通信。功能类似于MATLAB和八度。IT++一个用于LAPACK和BLAS的c++包装器库IntelMKL,英特尔数学内核库(C和c++),一个科学,工程和金融应用程序优化数学例程库,用C/c++和Fortran编写。核心数学函数包括BLAS、LAPACK、ScaLAPACK、稀疏求解器、快速傅里叶变换和向量数学。mlpack是一个用于机器学习的开源库,它利用c++语言特性来提供最大的性能和灵活性,同时提供一个简单和一致的APIMTL4是一个提供稀疏和密集BLAS功能的通用c++模板库。由于通用编程,MTL4建立了一个直观的界面(类似于MATLAB)和广泛的适用性。NAG库有c++APINTL是一个用于数论的c++库。triinos致力于为解决大规模、复杂的多物理工程和科学问题开发算法和实现技术。它是包的集合。Delphi
AnalyticsPhysics:用于符号和数值计算(包括符号导数)以及处理物理值和测量单位的商用Delphi库。ALGLIB一个开源的数值分析库。.NETFrameworklanguagesC#,F#,VB.NETandPowerShell
Accord.NET是一个科学计算库的集合,包括数值线性代数、优化、统计、人工神经网络、机器学习、信号处理和计算机视觉。LGPLv3,部分GPLv3。AForge。NET是一个计算机视觉和人工智能图书馆。它实现了多种遗传、模糊逻辑和机器学习算法,并结合几种人工神经网络体系结构和相应的训练算法。LGPLv3和部分GPLv3。ALGLIB是一个c#版本的开源数值分析库。双重许可:GPLv2+,商业许可。ILNumerics。Net商用高性能,类型安全数字数组类和函数的一般数学,FFT和线性代数,目标。Net/mon,32和64位,类似脚本的语法在c#,2D和3D绘图控件,有效的内存管理。IMSL数字库有c#版本(商业许可)。.net已经宣布在年底结束生命。Math.NETNumerics旨在为科学、工程和日常应用中的数值计算提供方法和算法。涵盖的主题包括特殊函数,线性代数,概率模型,随机数,插值,积分变换等。麻省理工学院/X11许可下的自由软件。MeasurementStudio是一个商业集成套件UI控件和类库,用于开发测试和测量应用程序。分析类库提供各种数字信号处理、信号过滤、信号生成、峰值检测和其他通用数学功能。ML.NET是一个免费的c#编程语言机器学习库NAG库有c#API。商业许可。NMathbyCenterSpaceSoftware:.net平台的商业数字组件库,包括信号处理(FFT)类、线性代数(LAPACKBLAS)框架和统计软件包。Numpy.NET为NumPy提供了c#语言绑定,这是一个用于科学计算、机器学习和人工智能的基本库。[3]Numpy。NET是麻省理工学院授权的自由软件。NumSharp是一个用于数据科学、机器学习和人工智能的开源N-D张量计算库,使用纯c#编写。[4]NumSharp是在Apache2.0许可下授权的自由软件。Fortran
BLAS(BasicLinearAlgebraSubprograms)是一个事实上的应用程序编程接口标准,用于发布库来执行基本的线性代数操作,如向量和矩阵乘法。CERNLIB是FORTRAN77库和模块的集合。EISPACK是一个用FORTRAN语言编写的矩阵特征值和特征向量数值计算的软件库。它包含计算9类矩阵特征值的子程序:复一般矩阵、复厄米矩阵、实一般矩阵、实对称矩阵、实对称带状矩阵、实对称三对角矩阵、特殊实三对角矩阵、广义实矩阵和广义实对称矩阵。IMSL数值库是跨平台的库,包含一组完整的数学和统计函数,可以嵌入到用户应用程序中。Harwell子例程库是Fortran77和95代码的集合,用于解决数值分析中的核心问题。LAPACK,theLinearAlgebraPACKage是一个用于数值计算的软件库,最初用FORTRAN77编写,现在用FORTRAN90编写。LINPACK是一个用于在数字计算机上执行数字线性代数的软件库。它是由JackDongarra、JimBunch、CleveMoler和PeteStewart用Fortran语言编写的,在20世纪70年代和80年代早期被用于超级计算机。它在很大程度上已经被LAPACK所取代,LAPACK将在现代架构上更有效地运行。Lis是一个可扩展的并行库,用于求解线性方程组和特征值问题。MINPACK是一个FORTRAN子程序库,用于求解非线性方程组,或最小化一组线性或非线性方程组的残差。NAGFortran库是Fortran的数学和统计例程的集合。NOVAS是一个用于天文相关数值计算的软件库。Fortran和C版本都是可用的。Netlib是一个科学计算软件库,其中包含大量独立的程序和库,包括BLAS、EISPACK、LAPACK等。PAW是CERN开发的一个免费数据分析包。Portable,ExtensibleToolkitforScientificComputation(PETSc)是一套数据结构和例程,用于偏微分方程建模的科学应用程序的可伸缩(并行)解决方案。QUADPACK是一个FORTRAN77库,用于一维函数的数值积分SLATEC是一个FORTRAN77库,包含多个通用数学和统计例程。SOFA是实现天文计算的官方IAU算法的子例程集合。Fortran和C版本都是可用的。ARPACK是Fortran77子程序的集合,用于解决大规模特征值问题。Java
ND4J是一个开源库,支持n维(ND)数组,类似于NumPy。它运行在分布式gpu或cpu跨平台上,并利用Spark进行并行计算。它支持深度学习库Deeplearning4j。ApacheCommons是一个用于创建可重用Java组件的开源工具。它有线性代数和非线性优化的数值包。Colt提供了一组用于高性能科学和技术计算的开源库。EfficientJavaMatrixLibrary(EJML)是一个用于处理密集矩阵的开放源码线性代数库。JAMA一个用于Java编程语言的数字线性代数工具包。自年以来没有进行过任何积极的开发,但它仍然是Java中比较流行的线性代数包之一。Jblas:LinearAlgebraforJava,一个线性代数库,它是一个易于使用的BLAS和LAPACK包装器。ParallelColt是一个用于科学计算的开源库。柯尔特的平行延伸。MatrixToolkitJava是一个基于BLAS和LAPACK的线性代数库。ojAlgo是一个用于数学、线性代数和优化的开源Java库。exp4j是一个用于计算数学表达式的小型Java库。Scala
ND4S是Scala的一个科学计算库,它支持JVM上的n维数组。Perl
PerlDataLanguage使标准Perl能够紧凑地存储和快速地操作大型n维数据数组。Python
NumPy,一个bsd授权的库,增加了对大型、多维数组和矩阵操作的支持;它还包含大量高级数学函数。NumPy是许多其他数字库的主干,尤其是SciPy。Python中矩阵/张量运算的事实标准。SageMath是一个大型的数学软件应用程序,它集成了近个自由软件项目的工作,并支持线性代数、组合学、数值数学、微积分等。SciPy是bsd授权的大型科学工具库。Python中科学计算的实际标准。ScientificPython一个拥有不同科学工具集的库SymPy,一个基于新的BSD许可证的符号计算库。辛普森的特征从基本符号算术到微积分、代数、离散数学和量子物理都有。Others
XNUMBERS-用于MicrosoftExcel的多精度浮点计算和数值方法。INTLAB用于MATLAB的区间算术库。另请参阅
计算机代数系统比较数值分析软件比较绘图软件列表数值分析软件列表优化软件清单统计软件包清单
现代数值计算(第2版)(工业和信息化部“十二五”规划教材)京东官方店旗舰店¥31.4购买