Math.NET的目标是为提供一款自身包含清晰框架的符号运算和数学运算/科学运算,它是C#开发的开源类库。Math.NET含了一个支持线性代数的解析器,分析复杂微分,解方程等等功能。这个项目大部分采用的是MIT/X11开源软件协议,部份采用的是GPL 或 LGPL协议。
Math.NET包含下列几个模块:
Math.NET Numerics
这个是Math.NET工程的数值计算部分,其目的是针对科学计算领域, 工程和日常应用,提供一些方法和算法。涵盖的领域包括特殊函数(special functions这个不太确定怎么翻译),线性代数,概率模型,随机数,插值,积分变换等等。自由软件,开源,基于MIT/X11 License, Math.NET Numerics v2.3.0于近期发布,支持Windows Phone 8和矩阵、向量切割。它还包含一个针对F#扩展的可移动版本,同样位于主发布包内。此外,发布包内的F#扩展现在使用F# 3.0,其最新版本完全专注于向量,并支持线性代数中的瘦QR分解(thin QR decomposition)。
该最新版本还为所有连续或离散分布提供了一致的静态抽样方法,为F#中的随机数和分布提供了更好的可用性。它还为原生的线性代数提供程序更新了Intel数学内核库(MKL)。 Math.NET Numerics是针对.NET、Silverlight和Mono的开源数值计算库,是Math.NET项目的一部分。MathNet.Numerics和MathNet.Numerics.FSharp库现在都可以通过NuGet下载
Math.NET Iridium
Iridium 是Math.NET Numerics的前身,它会尽快的被Numerics所取代。自由软件, 开源,基于LGPL授权
Math.NET LinqAlegebra
LinqAlgebra(以前被称为Palladium)提供了一些基于纯Linq表达式顶层的元素,可以应用于通用的代数计算系统,包括自动简化,区分和数学标记语言 输入/输出(此处翻译不甚准确,毕竟俺们不是数学科班毕业呀)
自由软件, 开源,基于LGPL授权
Math.NET Neodyma
提供了一个用于数字信号处理的工具箱(DSP)
自由软件, 开源,基于LGPL授权 ,https://github.com/mathnet/mathnet-numerics
Math.NET Yttrium
Yttrium 是一个实验性的计算代数结构,应用于形式上是硬件工程和数字信息的一些想法和概念,从一个不同的、全新的角度来看抽象数学和代数。用专业的图表来表现(代替了树)整个系统,而不单单是表达式。
由软件, 开源,基于GPL授权
Math.NET Classic
一 个经典的利用树来表达的代数计算系统工具(和Maple,Mathematica相似,当然没他们那么给力)。其目标是提供一个延展框架来实现对代数表达 式的符号控制。并且,基础解析器能够把简单表达式解析成符号树或翻译成数学程序。基本上,在2003年中期的时候,他就是整个的“旧”的Math.net工程,除非我计划(这个工程的发起者)“复活”它并开始继续这些工作。
本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号