【问题标题】:C# linear algebra libraryC# 线性代数库
【发布时间】:2010-09-28 09:59:39
【问题描述】:

是否有用于 C# 的稳定线性代数(更具体地说,向量、矩阵、多维数组及其上的基本运算)库?

搜索产生了一些开源库,这些库要么几年未更新,要么处于早期测试阶段 - 以及 Centerspace NMath。哪些替代方案值得检查?

【问题讨论】:

标签: c# .net linear-algebra nmath


【解决方案1】:

我们对 nMath 进行了评估,并对它的可编程性和速度感到非常满意。他们的支持人员甚至工作了一个周末来找出我们发现的错误。我们喜欢他们使用英特尔的内核数学库而不是滚动他们自己的数字。 [编辑添加:多年来一直在生产中使用]

【讨论】:

    【解决方案2】:

    虽然它没有更新,不是开源的,也不是用于商业用途,但人们可能想从 Microsoft Research 中查看 D*。这是一个非常酷的 symbolic 数学库,尤其适用于做导数,但实际上它是 .NET 程序员手中的一个小 matlab。

    http://research.microsoft.com/en-us/downloads/4714703d-782c-4e37-830d-0e3b7662f743

    【讨论】:

      【解决方案3】:

      几周前,我发现一个新的 c# 库 FinMath 包含许多不同方法和技术的实现,包括基本的线性代数,例如:

      1. 向量和矩阵实现(易于使用的高级接口涵盖了大部分BLAS 功能)
      2. 矩阵分解算法(LU、QR、SVD、Cholesky)。

      还有许多其他有用的东西,如统计、因子和聚类分析、线性和二次规划求解器等。

      不幸的是,它不是免费的,但速度非常快,因为它使用MKL 进行最复杂的计算,同时它作为单个库分发,支持 32 位和 64 位模式,使用时不需要特殊维护,例如关心原生库。

      【讨论】:

        【解决方案4】:

        我正在使用 ILNumerics.NET

        www.ilnumerics.net

        很好的支持和稳定。不过我没有任何可比性。

        【讨论】:

          【解决方案5】:

          Math.NET。我们正在生产中使用它。

          【讨论】:

          • 请注意 Math.NET 中有几个包。有些是 LGPL,但有几个是 GPL,对于商业应用来说,这很可能是个问题。
          • 谢谢,看起来好多了。我仍然想念多维格、自定义类型的矩阵等,但它应该可以工作
          • 有人可以提供 Math.NET 和其他库的性能比较(例如 [@harrydev's answer] (stackoverflow.com/a/2222267/311865) 中的那些)吗?特别是我对矩阵乘法、标量乘法矩阵和向量求和运算的性能感兴趣。如果计算机有这些操作,这些操作是否会在多个内核上并行执行?
          • 看起来事情发生了变化,现在大多数许可证都是 MIT 的。他们试图重新授权剩余的少数 LGPL 许可证 - 主要是因为他们很难联系到作者。
          • Math.Net 中的计算是否向量化?
          【解决方案6】:

          见:http://en.wikipedia.org/wiki/List_of_numerical_libraries

          http://www.alglib.net/ - 开源。多语言库。

          http://www.mathdotnet.com/ - 开源。正如其他人所提到的。在此将 dnAnalytics 替换为 http://numerics.mathdotnet.com/。

          http://www.lutzroeder.com/dotnet/ - Lutz Roeder 有一个 LAPACK 的开源端口 Mapack.Net。

          http://www.extremeoptimization.com/ - 商业。

          【讨论】:

          • 如果需要 C# 代数库的人不知道如何使用 google,这个答案会更有帮助。
          【解决方案7】:

          你看过dnAnalytics吗?

          【讨论】:

          • 是的,但是“0.3.1 Beta”版本让我在考虑将其纳入重要的长期项目时感到紧张
          • 这是一个公平的观点,但测试版对不同的人意味着不同的东西。一端是 Ext-GWT 的家伙,他早上醒来并决定让 alpha1 版本成为最终版本。另一端是 gmail,仍处于测试阶段。 dnAnalytics 自 2007 年 10 月以来一直存在并且仍然活跃。值得一看吗?
          • 坦率地说,不是。 23 行文档,无用的 XML 文档(对象对象 - 对象),非常广泛的功能集,中间有大洞......看起来像是其他项目的支持代码,或者可能是开发人员的训练场。
          • DnAnalytics 不再受支持。不是它是 Math.NET Numerics 的一部分。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-04-09
          • 1970-01-01
          • 1970-01-01
          • 2011-03-16
          • 2016-05-03
          • 2012-09-14
          • 1970-01-01
          相关资源
          最近更新 更多