NMath
.NET Math Library
适用于所有.NET语言,包括C#, Visual Basic, and F#。
NMath .NET数学库包含.NET平台上面向对象的数字的基础类。
NMath 特点摘要
基础Math
单精度和双精度复数类。
各种概率分布的随机数生成器,使用跳前和跳跃方法的独立随机数流,以及使用Niederreiter和Sobol方法的准随机数序列。
快速傅立叶变换(FFTs)、小波和线性卷积和相关。
特殊函数,如阶乘、二项式、伽玛函数和相关函数、Bessel函数、椭圆积分等。
线性代数
四种数据类型的全功能向量和矩阵类:单精度和双精度浮点数,以及单精度和双精度复数。
使用切片和范围进行灵活的索引。
对于支持算术运算符的.NET语言,使用它们的常规含义重载算术运算符;对于不支持算术运算符的语言,使用等价的命名方法(Add(), Subtract()等。
全功能结构稀疏矩阵类,包括三角形、对称、厄米特、带状、三对角、对称带状和厄米特带状。
在一般矩阵和结构化稀疏矩阵类型之间转换的函数。
用于转换结构化稀疏矩阵、计算内部产品和计算矩阵规范的函数。
构造稀疏矩阵的因子分解类,包括带状和三对角矩阵的LU因子分解、对称和厄米特矩阵的Bunch Kaufman因子分解、对称和厄米特正定矩阵的Cholesky分解。一旦构造好,矩阵因式分解就可以用来解线性系统和计算行列式、反比和条件数。
一般稀疏向量和矩阵类,以及矩阵分解。
一般矩阵的正交分解类,包括QR分解和奇异值分解(SVD)。
一般矩阵的高级最小二乘因式分解类,包括Cholesky、QR和SVD。
一般矩阵的Lu因子分解,以及用于求解线性系统、计算行列式、反比和条件数的函数。
求解对称、厄米特和非对称特征值问题的类。
标准数学函数的扩展,例如Cos(),Sqrt(), 和Exp(),用于处理向量、矩阵和复数类。
功能
用于封装一个变量函数的类,支持数值积分(Romberg和Gauss-Kronrod方法)、微分(Ridders方法)和函数的代数操作。
多项式封装、插值、精确微分和积分。
使用黄金分割搜索和布伦特方法最小化单变量函数的类。
使用下坡单纯形法、鲍威尔方向集法、共轭梯度法和变量度量(或准牛顿)法最小化多变量函数的类。
模拟退火。
线性规划(LP),非线性规划(NLP),二次规划(QP)使用微软求解器基金会。
最小二乘多项式拟合。
非线性最小二乘法最小化、曲线拟合和曲面拟合。
用割线法、里德尔法和Newton-Raphson法求单变量函数根的类。
双变量函数双积分的数值方法。
非线性最小二乘最小化使用信任区域法,这是Levenberg-Marquardt方法的一个变种。
用非线性最小二乘法拟合曲线和曲面。
用Runge-Kutta求解一阶初值微分方程的类。
与.NET标准库集成
使用标准.NET机制的完全可持久的数据类。
与ADO.NET集成。
使用MicrosoftChart Controls for.NET进行绘图。