C++ 偏微分数值计算库_「首席架构师推荐」数值计算库精选

这是一个著名的数值库列表,这些库用于软件开发中执行数值计算。它不是一个完整的列表,而是一个包含Wikipedia上文章的数字库列表,很少有例外。

典型库的选择取决于一系列不同的需求,例如:期望的特性(例如:大维线性代数、并行计算、偏微分方程)、商业/开源性质、API的可读性、可移植性或平台/编译器依赖性(例如:Linux、Windows、Visual c++、GCC)、速度性能、易用性、开发人员的持续支持、标准遵从性、针对特定应用程序场景的代码的专门优化,甚至要安装的代码库的大小。

由于我们发现很少有全面的调查可用,所以在许多可能的库中几乎总是(至少最初是)有一个艰难的选择。通常情况下,它往往是由用户根据自己的品味和舒适度来决定的,只是因为缺乏适当的信息。

  • Adept是一个组合自动微分和数组库。
  • Advanced Simulation Library是一个免费的开源硬件加速多物理仿真软件,具有基于opencl的内部计算引擎。
  • ALGLIB是一个开源/商用的c++版本的数值分析库
  • Armadillo是一个c++线性代数库(矩阵和向量数学),旨在在速度和易用性之间取得良好的平衡。它使用模板类,并具有指向BLAS和LAPACK的可选链接。语法(API)类似于MATLAB。
  • Blaze是一个用于密集和稀疏运算的开源高性能c++数学库。
  • Blitz c++是一个用c++编写的高性能向量数学库。
  • Boost.uBLAS。用于数值计算的uBLAS c++库
  • deal.II是一个支持所有偏微分方程有限元解的库。
  • Dlib是一个现代c++库,易于使用线性代数和优化工具,这些工具得益于优化的BLAS和LAPACK库。
  • Eigen是一个矢量数学库,其性能可与Intel的数学内核库相媲美
  • Hermes项目:c++ /Python库,用于空间和时空自适应hp-FEM求解器的快速原型设计。
  • iml++是一个用于求解线性方程组的c++库,能够处理密集、稀疏和分布式矩阵。
  • 它是一个c++库,用于线性代数(矩阵和向量)、信 处理和通信。功能类似于MATLAB和八度。
  • IT++一个用于LAPACK和BLAS的c++包装器库
  • Intel MKL,英特尔数学内核库(C和c++),一个科学,工程和金融应用程序优化数学例程库,用C/ c++和Fortran编写。核心数学函数包括BLAS、LAPACK、ScaLAPACK、稀疏求解器、快速傅里叶变换和向量数学。
  • mlpack是一个用于机器学习的开源库,它利用c++语言特性来提供最大的性能和灵活性,同时提供一个简单和一致的API
  • MTL4是一个提供稀疏和密集BLAS功能的通用c++模板库。由于通用编程,MTL4建立了一个直观的界面(类似于MATLAB)和广泛的适用性。
  • NAG库有c++ API
  • NTL是一个用于数论的c++库。
  • triinos致力于为解决大规模、复杂的多物理工程和科学问题开发算法和实现技术。它是包的集合。

Delphi

  • Analytics & Physics:用于符 和数值计算(包括符 导数)以及处理物理值和测量单位的商用Delphi库。
  • ALGLIB一个开源的数值分析库。

.NET Framework languages C#, F#, VB.NET and PowerShell

  • Accord.NET是一个科学计算库的集合,包括数值线性代数、优化、统计、人工神经 络、机器学习、信 处理和计算机视觉。LGPLv3,部分GPLv3。
  • AForge。NET是一个计算机视觉和人工智能图书馆。它实现了多种遗传、模糊逻辑和机器学习算法,并结合几种人工神经 络体系结构和相应的训练算法。LGPLv3和部分GPLv3。
  • ALGLIB是一个c#版本的开源数值分析库。双重许可:GPLv2+,商业许可。
  • ILNumerics。Net商用高性能,类型安全数字数组类和函数的一般数学,FFT和线性代数,目标。Net / mon, 32和64位,类似脚本的语法在c#, 2D和3D绘图控件,有效的内存管理。
  • IMSL数字库有c#版本(商业许可)。. net已经宣布在2020年底结束生命。
  • Math.NET Numerics 旨在为科学、工程和日常应用中的数值计算提供方法和算法。涵盖的主题包括特殊函数,线性代数,概率模型,随机数,插值,积分变换等。麻省理工学院/X11许可下的自由软件。
  • Measurement Studio是一个商业集成套件UI控件和类库,用于开发测试和测量应用程序。分析类库提供各种数字信 处理、信 过滤、信 生成、峰值检测和其他通用数学功能。
  • ML.NET是一个免费的c#编程语言机器学习库
  • NAG库有c# API。商业许可。
  • NMath by CenterSpace Software: . net平台的商业数字组件库,包括信 处理(FFT)类、线性代数(LAPACK & BLAS)框架和统计软件包。
  • Numpy.NET为NumPy提供了c#语言绑定,这是一个用于科学计算、机器学习和人工智能的基本库。[3]Numpy。NET是麻省理工学院授权的自由软件。
  • NumSharp是一个用于数据科学、机器学习和人工智能的开源N-D张量计算库,使用纯c#编写。[4] NumSharp是在Apache 2.0许可下授权的自由软件。

Fortran

  • BLAS (Basic Linear Algebra Subprograms)是一个事实上的应用程序编程接口标准,用于发布库来执行基本的线性代数操作,如向量和矩阵乘法。
  • CERNLIB是FORTRAN 77库和模块的集合。
  • EISPACK是一个用FORTRAN语言编写的矩阵特征值和特征向量数值计算的软件库。它包含计算9类矩阵特征值的子程序:复一般矩阵、复厄米矩阵、实一般矩阵、实对称矩阵、实对称带状矩阵、实对称三对角矩阵、特殊实三对角矩阵、广义实矩阵和广义实对称矩阵。
  • IMSL数值库是跨平台的库,包含一组完整的数学和统计函数,可以嵌入到用户应用程序中。
  • Harwell子例程库是Fortran 77和95代码的集合,用于解决数值分析中的核心问题。
  • LAPACK, the Linear Algebra PACKage 是一个用于数值计算的软件库,最初用FORTRAN 77编写,现在用FORTRAN 90编写。
  • LINPACK是一个用于在数字计算机上执行数字线性代数的软件库。它是由Jack Dongarra、Jim Bunch、Cleve Moler和Pete Stewart用Fortran语言编写的,在20世纪70年代和80年代早期被用于超级计算机。它在很大程度上已经被LAPACK所取代,LAPACK将在现代架构上更有效地运行。
  • Lis是一个可扩展的并行库,用于求解线性方程组和特征值问题。
  • MINPACK是一个FORTRAN子程序库,用于求解非线性方程组,或最小化一组线性或非线性方程组的残差。
  • NAG Fortran库是Fortran的数学和统计例程的集合。
  • NOVAS是一个用于天文相关数值计算的软件库。Fortran和C版本都是可用的。
  • Netlib是一个科学计算软件库,其中包含大量独立的程序和库,包括BLAS、EISPACK、LAPACK等。
  • PAW是CERN开发的一个免费数据分析包。
  • Portable, Extensible Toolkit for Scientific Computation (PETSc)是一套数据结构和例程,用于偏微分方程建模的科学应用程序的可伸缩(并行)解决方案。
  • QUADPACK是一个FORTRAN 77库,用于一维函数的数值积分
  • SLATEC是一个FORTRAN 77库,包含1400多个通用数学和统计例程。
  • SOFA是实现天文计算的官方IAU算法的子例程集合。Fortran和C版本都是可用的。
  • ARPACK是Fortran77子程序的集合,用于解决大规模特征值问题。

Java

0d32611500264bc31b09a37819a0810e.png
  • ND4J是一个开源库,支持n维(ND)数组,类似于NumPy。它运行在分布式gpu或cpu跨平台上,并利用Spark进行并行计算。它支持深度学习库Deeplearning4j。
  • Apache Commons是一个用于创建可重用Java组件的开源工具。它有线性代数和非线性优化的数值包。
  • Colt提供了一组用于高性能科学和技术计算的开源库。
  • Efficient Java Matrix Library (EJML) 是一个用于处理密集矩阵的开放源码线性代数库。
  • JAMA一个用于Java编程语言的数字线性代数工具包。自2005年以来没有进行过任何积极的开发,但它仍然是Java中比较流行的线性代数包之一。
  • Jblas: Linear Algebra for Java,一个线性代数库,它是一个易于使用的BLAS和LAPACK包装器。
  • Parallel Colt是一个用于科学计算的开源库。柯尔特的平行延伸。
  • Matrix Toolkit Java是一个基于BLAS和LAPACK的线性代数库。
  • ojAlgo是一个用于数学、线性代数和优化的开源Java库。
  • exp4j是一个用于计算数学表达式的小型Java库。

Scala

  • ND4S是Scala的一个科学计算库,它支持JVM上的n维数组。

Perl

  • Perl Data Language 使标准Perl能够紧凑地存储和快速地操作大型n维数据数组。

Python

  • NumPy,一个bsd授权的库,增加了对大型、多维数组和矩阵操作的支持;它还包含大量高级数学函数。NumPy是许多其他数字库的主干,尤其是SciPy。Python中矩阵/张量运算的事实标准
  • SageMath是一个大型的数学软件应用程序,它集成了近100个自由软件项目的工作,并支持线性代数、组合学、数值数学、微积分等。
  • SciPy是bsd授权的大型科学工具库。Python中科学计算的实际标准。
  • ScientificPython一个拥有不同科学工具集的库
  • SymPy,一个基于新的BSD许可证的符 计算库。辛普森的特征从基本符 算术到微积分、代数、离散数学和量子物理都有。

Others

  • XNUMBERS -用于Microsoft Excel的多精度浮点计算和数值方法。
  • INTLAB用于MATLAB的区间算术库。

另请参阅

  • 计算机代数系统比较
  • 数值分析软件比较
  • 绘图软件列表
  • 数值分析软件列表
  • 优化软件清单
  • 统计软件包清单

原文:https://en.wikipedia.org/wiki/List_of_numerical_libraries

讨论:请加入知识星球或者小红圈【首席架构师圈】

麻烦各位道友为我投票,点击【为我投票】按钮。

相关资源:求解偏微分方程的数学软件Fastflo-教育工具类资源

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年9月16日
下一篇 2020年9月16日

相关推荐