C#矩阵库推荐
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/2336701/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Recommendation for C# Matrix Library
提问by jose
I need a C# library to deal with matrices. It should implement singular value decomposition, matrix inversion, etc
我需要一个 C# 库来处理矩阵。应该实现奇异值分解、矩阵求逆等
I've used CSMLbefore, but this does not implement some of the features i need.
我以前使用过CSML,但这并没有实现我需要的一些功能。
Some of the features are:
Singular value decomposition
Matrix inversion
Trace
Determinants
其中一些功能是:
奇异值分解
矩阵求逆
迹线
行列式
Suggested Libraries (from answers)
建议的图书馆(来自答案)
(most of them implement the features stated above)
(它们中的大多数实现了上述功能)
- Math .NET Numerics for .NET, Silverlight and Mono(opensource)
- Extreme Optimization Numerical Libraries(commercial, very complete)
- IL Numerics(commercial)
- Deltix's FinMath numerical library(commercial, uses the Intel? Math Kernel Library (MKL) and Intel? Integrated Performance Primitives (IPP))
- Lightweight fast matrix class in C#(Strassen algorithm, LU decomposition)
- .NET、Silverlight 和 Mono 的数学 .NET 数字(开源)
- 极限优化数值库(商业,非常完整)
- IL Numerics(商业)
- Deltix 的 FinMath 数值库(商用,使用 Intel? Math Kernel Library (MKL) 和 Intel? Integrated Performance Primitives (IPP))
- C#中的轻量级快速矩阵类(Strassen算法,LU分解)
采纳答案by Reed Copsey
Math.NET Numericsis very nice, if it supports the operations you want. The older Math.Net Iridium still supports more options. Also, dnAnalyticsis quite nice, but no longer being developed. (It, as well as Iridium, are being merged into Math.NET Numerics.)
Math.NET Numerics非常好,如果它支持您想要的操作。较旧的 Math.Net Iridium 仍支持更多选项。此外,dnAnalytics非常好,但不再被开发。(它以及 Iridium 正在合并到 Math.NET Numerics 中。)
On the commercial side, there are some very good, robust options. The Extreme Optimization Numerical Librarieswork very well. The Visual Numericslibrary also works very well (although with a royalty-based distribution...).
在商业方面,有一些非常好的、强大的选择。在极端优化数值算法库工作得很好。在视觉Numerics的图书馆也工作得非常好(虽然基于使用费的分配...)。
回答by LBushkin
I believe that Math.NEThas most of the features you mention. Yuu may want to look at it and see if it fits your needs.
我相信Math.NET具有您提到的大部分功能。Yuu 可能想看看它是否符合您的需求。
You can take a look at the Iridium samplesto see the syntax and example code.
您可以查看Iridium 示例以查看语法和示例代码。
回答by VHaravy
In addition to the libraries mentioned in other posts I can say a few warm words about FinMathlibrary. It is rather new library, but according to my experience it has several advantages. It is very easy to use this library. First, it has only one executable file (*.dll) for both 32-bit and 64-bit operating systems. Second, it is build on top of well-known Intel Math Kernel Library and therefore it provides very good performance. Managed .NET API provided by this library is also very extensive and flexible. But, it is proprietary software and costs considerable amount of money. It also lacks some functionality (e.g. compared to NMathfrom CenterSpace Software). Anyway, it worth time to try it.
除了其他帖子中提到的库之外,我还可以对FinMath库说几句暖心的话。这是一个相当新的图书馆,但根据我的经验,它有几个优点。使用这个库非常容易。首先,它只有一个适用于 32 位和 64 位操作系统的可执行文件 (*.dll)。其次,它建立在著名的 Intel Math Kernel Library 之上,因此它提供了非常好的性能。该库提供的托管 .NET API 也非常广泛和灵活。但是,它是专有软件,需要花费大量资金。它还缺少一些功能(例如,与CenterSpace Software 的NMath相比)。无论如何,值得花时间尝试一下。
回答by user492238
I have been using ILNumericsa lot. Also did some contributions to the project. It by know is the only library I know of, which does not spend half the CPU time in GC for serious computations. Its fast and mature. See the full feature list.
我一直在使用ILNumerics很多。也为项目做出了一些贡献。据我所知,它是我所知道的唯一一个库,它不会在 GC 中花费一半的 CPU 时间来进行严肃的计算。它的快速和成熟。查看完整的功能列表。