【资源整合】.NET数学库NMath的基础类资源盘点

原创|行业资讯|编辑:郝浩|2016-11-24 16:17:33.000|阅读 650 次

概述:NMath是NMath套包中基础的.NET函数库,它包含了复数类,通用向量与矩阵类,结构化稀疏矩阵类与因式分解,通用稀疏矩阵类与因式分解,通用矩阵分解,最小二乘解,随机数生成器,快速傅里叶变换(FFT算法) ,数值积分与微分方法,函数最小化,曲线拟合,求根法,线性与非线性编程等内容。NMath中包含了许多算法的基本类,下面我们来介绍其中比较常用的三个方向。

# 31款JAVA开发必备控件和工具 # 企业数字化建设合规无风险[专题]

NMathNMath套包中基础的.NET函数库,它包含了复数类,通用向量与矩阵类,结构化稀疏矩阵类与因式分解,通用稀疏矩阵类与因式分解,通用矩阵分解,最小二乘解,随机数生成器,快速傅里叶变换(FFT算法) ,数值积分与微分方法,函数最小化,曲线拟合,求根法,线性与非线性编程等内容。

下载试用最新的NMath v6.2>>

NMath中包含了许多算法的基本类,下面我们来介绍其中比较常用的三个方向:

线性规划

NMath中有2个类被用于线性规划(LP)的问题,第一个类LinearProgrammingProblem用来封装标准的LP问题,第二个类MixedIntegerLinearProgrammingProblem用来封装包含整数或二进制约束的的LP问题。

PrimalSimplexSolver使用初始单纯形法(primal simplex method)解决线性规划的问题,而类DualSimplexSolver则是使用了对偶单纯形法(dual simplex method)。单纯形法通过在一个单纯形的顶点上构建初始解来处理线性规划的问题,然后沿着单纯形的边沿到达顶点,通过依次筛选目标函数中更高的数值直到最优化。


线性规划文档:
NMath用户指南提供了相关的背景信息
线性规划代码示例:
LinearProgrammingExample [C#]  [VB]
解决普通线性规划问题的代码示例。
PrimalDualSimplexExample [C#]  [VB]
使用初始单纯形和对偶单纯型法解决Klee-Minty多面体线性规划问题的代码示例。
MixedIntLinearProgrammingExample [C#]  [VB]
解决在限制变量为整数的情况下线性规划问题的代码示例。
BinaryLinearProgrammingExample [C#]  [VB]
解决在所有变量都为二进制数的情况下线性规划问题的代码示例。

随机数生成器

NMath可提供随机生成器功能,用于生成各种概率分布的随机偏离,包括β分布二项分布指数分布γ分布几何分布对数正态分布正态分布Pareto分布Poisson分布三角型分布均匀分布以及Weibull分布。这个功能可以用于包括VB.NET和F#在内的任意.NET语言。

NMath库是 CenterSpace软件公司NMath Suite的数学库的一部分,它提供了用于 .NET平台上数学、金融、工程和科学应用程序的构建模块。其特性包括了矩阵向量类、线性代数、随机数生成器、数值积分法、插值法、统计、生物统计学、多元线性回归、方差分析(ANOVA)、优化和通往公共域计算程序包(含线性代数基本子程序及线性代数包)的面向对象接口,所有NMath的日常活动都可从包括C#、 Visual Basic.NET和 F#在内的任何 .NET语言上调用。


随机生成器文档:

NMath参考指南中包含了下列表格里可用的生成器类API文档:

                            Class
                            Distribution
                            Beta distribution(β分布
                            Binomial distribution(二项分布
                            Exponential distribution(指数分布
                            Gamma distribution(γ分布
                            Geometric distribution(几何分布
                            Log-Normal distribution(对数正态分布
                            Normal distribution(正态分布
                            Pareto distribution(Pareto分布
                            Triangular distribution(三角型分布
                            Uniform distribution(均匀分布
                            Weibull distribution(Weibull分布

所有的NMath内核生成器都通过抽象基类RandomNumberGenerator的公共接口进行继承。

随机生成器代码示例:
RandomNumberExample [C#]  [VB]
如何使用RandGenNormal类生成正态分布的随机数,并将其用于直方图的示例。
AdvancedRNGExample [C#]  [VB]
如何使用指定的均匀偏离法创建用于特定概率分布的随机数字生成器的示例。
MonteCarloRNGExample [C#]  [VB]
如何使用蒙特卡罗法和均匀随机数生成器类RandGenUniform计算π的近似值

快速傅里叶变换

NMath作为一个.NET类库可提供一般向量与矩阵类、复数类、数值微分与积分、最小化与求根类以及用于信号处理的相关性、卷积和快速傅里叶变换(FFT)类。

NMath的快速傅里叶变换包含了单双精度的一维和二维傅里叶变换,并且 NMath还包含了傅里叶变换的正向、逆向、实数、复数等类型的类,支持任意长度的输入数据。所有的FFT实现使用的是在单一和多核机器上性能最优秀的类算法。易用性和内存效率可通过使用正向实数快速傅里叶变换的标准对称信号压缩来实现,其提供的阅读器类能够像遍历数组那样轻松读取压缩结果。NMath的 FFT算法性能属于世界一流,最适宜运行在英特尔处理器上。该功能可用于包括VB.NET 和F#在内的任意 .NET语言。


快速傅里叶变换文档:
Class
Distribution
计算一维和二维的双精度、正向、实数FFT。
计算一维和二维的双精度、正逆向、复数FFT。
计算由正向实数一维FFT生成的逆向实数FFT的对称信号。
用于管理数据集的抵消和跨过的先进灵活的一维FFT类
用于配置一般FFT类的FFT配置类
助手类,生成并返回实数正向FFT类自身,帮助读取复-共轭对称信号
快速傅里叶转换代码示例:
Examples using the 1D FFT classes [C#]  [VB]
Examples using the 2D FFT classes [C#]  [VB]

查看更多的相关资源>>


标签:算法

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至hey@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
在线咨询
联系我们
TOP
在线客服系统
live chat