NMath - .NET 数学和统计库
NMath是一个.NET类库,它提供了一般的矢量和矩阵类、复数类以及从优化到FFT的大量计算类。能够进行基础数学和线性代数的各种运算,支持数值积分和代数操作等一系列数学运算功能。
基础.NET数学和统计库NMath包括复数类、通用向量和矩阵类、结构化稀疏矩阵类和分解、通用稀疏矩阵类和分解、通用矩阵分解、随机数生成器、快速傅里叶变换(FFT)、数值积分和微分方法、曲线拟合、求根、线性和非线性规划。
此外,还支持数百种统计程序,包括数十种概率密度函数(PDF)、描述性统计、线性回归、假设检验、方差分析(ANOVA)、主成分分析、非负矩阵分解(NMF)、partial least squares(PLS)、数据过滤、Savitzy-Golay拟合和平滑以及很多其他程序。
对于很多计算,NMath使用Intel®数学内核库(MKL),其中包含高度优化、线程广泛的C和FORTRAN公共域计算包版本,称为BLAS(基本线性代数子程序)和LAPACK(线性代数包)。这使您可以信任NMath例程的性能级别。我们面向对象接口易于使用,并充分利用了.NET平台的强的功能。
NMath功能概述
基础数学
-
单精度和双精度复数类
-
各种概率分布的随机数生成器,用跳读和跨越式方法的独立随机数字流,以及使用Niederreiter和Sobal方法的拟随机序列
-
快速傅里叶变换(FFT)、小波以及线性卷积和相关
-
特殊函数,如阶乘函数、二项式函数、gamma函数和相关函数、Bessel函数、椭圆积分等等
线性代数
-
四种数据类型的全功能向量和矩阵类:单精度和双精度浮点数,以及单精度和双精度复数
-
使用切片和范围的灵活索引
-
重载算术运算符及其常规含义。支持它们的.NET语言,相当于那些没有命名的方法(Add(), Subtract()等)
-
全功能结构化稀疏矩阵类,三角形矩阵,对称矩阵,埃米特共轭矩阵,三对角矩阵,带状对称矩阵和带状埃米特共轭矩阵
-
一般矩阵和结构稀疏矩阵类型之间的转换函数
-
结构稀疏矩阵置换、计算内积和计算矩阵范数的函数
-
分解结构化稀疏矩阵的类,包括带状矩阵和三对角矩阵的LU分解,对称矩阵和埃米特共轭矩阵的Bunch-Kaufman分解和对称矩阵和埃米特共轭正定矩阵的Cholesky分解。一旦构造好,矩阵分解就可以用来求解线性系统,计算行列式、逆矩阵和条件数
-
一般稀疏向量和矩阵类,以及矩阵分解
-
一般矩阵的正交分解类,包括QR分解和单值分解(SVD)
-
一般矩阵的高等least squares分解类,包括Cholesky,QR和SVD
-
一般矩阵的LU分解,以及求解线性系统、计算行列式、逆矩阵和条件数的函数
-
解决对称、埃尔米特和非对称特征值问题的类
-
标准数学函数的扩展,如Cos()、Sqrt()和Exp(),用于处理向量、矩阵和复数类
功能
-
支持数值积分(Romberg and Gauss-Kronrod methods),微分(Ridder's method)和代数运算函数的单变量封装函数的类
-
多项式封装、插值和准确的积分和微分
-
用黄金分割搜索和Brent方法minimizing单变量函数的类
-
用单形法,powell's的方向设置法,共轭梯度法和变尺度(或类似牛顿法)minimizing多变量函数的类
-
模拟退火法
-
线性规划(LP)、非线性规划(NLP)和二次规划(QP)
-
Least squares多项式拟合
-
非线性 least squares minimization、曲线拟合和曲面拟合
-
使用正割法、Ridders法和Newton-Raphson法查找单变量函数的根的类
-
二元函数二重积分的数值方法
-
用Trust-Region方法和Levenberg-Marquardt方法的变体least squares minimization
-
非线性least squares的曲线拟合和曲面拟合
-
用Runge-Kutta法求解一阶初值微分方程的类
与.NET标准库集成
-
使用标准.NET机制的可持久化的数据类
-
与ADO.NET集成
NMath统计功能概要
-
用于保存各种类型(数字、字符串、布尔值、日期时间和通用)数据的数据框类,具有附加、插入、排序和置换行和列的方法
-
用于计算描述性统计的函数,例如平均值、方差、标准差、百分位数、中位数、四分位数、几何平均值、调和平均值、RMS、峰度、偏度等等
-
特殊函数,例如阶乘、对数阶乘、二项式系数、对数二项式、对数gamma、 incomplete gamma、 beta 和 incomplete beta
-
概率密度函数 (PDF)、累积分布函数 (CDF)、逆 CDF 和各种概率分布的随机变量矩,包括 beta、二项式、卡方、指数、F、gamma、几何、逻辑、对数正态、负二项式、正态(Gaussian)、泊松分布、Student's t、三角和Weibull分布
-
多元线性回归
-
基本假设检验,例如z test、t-test和 F-test,可计算 p 值、临界值和置信区间
-
单向和双向方差分析 (ANOVA) 和重复测量方差分析 (RANOVA)
-
非参数检验,例如 Kolmogorov-Smirnov 检验和 Kruskal-Wallis 秩和检验
-
多元统计分析,包括主成分分析、因子分析、层次聚类分析和k-means聚类分析
-
非负矩阵分解 (NMF),以及使用 NMF 的数据聚类
-
Partial least squares(PLS),包括交叉验证以及 SIMPLS 和 NIPALS 算法
-
数据过滤,包括移动平均过滤器和 Savitzky-Golay 平滑过滤器
NMath库是 CenterSpace软件公司NMath Suite的数学库的一部分,它提供了用于 .NET平台上数学、金融、工程和科学应用程序的构建模块。其特性包括了矩阵向量类、线性代数、随机数生成器、数值积分法、插值法、统计、生物统计学、多元线性回归、方差分析(ANOVA)、优化和通往公共域计算程序包(含线性代数基本子程序及线性代数包)的面向对象接口,全部NMath的日常活动都可从包括C#、 Visual Basic.NET和 F#在内的 .NET语言上调用。
【英文介绍】
NMath from CenterSpace Software is a .NET class library that provides general vector and matrix classes, complex number classes, and a large set of computational classes ranging from optimization to the FFT.
The foundational .NET math and statistics library, NMath, includes complex number classes, general vector and matrix classes, structured sparse matrix classes and factorizations, general sparse matrix classes and factorizations, general matrix decompositions, least squares solutions, random number generators, Fast Fourier Transforms (FFTs), numerical integration and differentiation methods, function minimization, curve fitting, root-finding, linear and nonlinear programming.
Additionally, hundreds of statistical routines are supported including dozens of probability density functions (PDF), descriptive statistics, linear regression, hypothesis tests, analysis of variance (ANOVA), principle component analysis, non-negative matrix factorization (NMF), partial least squares (PLS), data filtering, Savitzy-Golay fitting and smoothing along with many other routines.
For many computations, NMath uses the Intel? Math Kernel Library (MKL), which contains highly-optimized, extensively-threaded versions of the C and FORTRAN public domain computing packages known as the BLAS (Basic Linear Algebra Subroutines) and LAPACK (Linear Algebra PACKage). This gives NMath routines accuracy you can trust, and performance levels comparable to C or Fortran. Our state of the art, object-oriented interfaces are easy to use and leverage the full power of the .NET platform.
- 2024-12-09
- 2024-12-03
- 2024-12-03
- 2024-11-27
- 2024-11-19
- 2024-11-12
- 2024-12-09
- 2024-12-06
- 2024-12-05
- 2024-12-05
- 2024-12-04
- 2024-12-04