.NET 矩阵库

发布于 2024-07-20 06:56:27 字数 1379 浏览 5 评论 0 原文

我正在寻找一个好的(经过充分测试、功能齐全、最好具有良好界面的).NET/C# 矩阵库。 我在这里的主要要求只是它应该是免费的(在这种情况下我并不特别关心它是否开源)并且最好支持 稀疏矩阵运算。 强制性要求是所有基本运算(例如乘法、转置、求逆)以及查找特征值和求特征值。 特征向量。 实现用于发现特征值的数值方法而不是分析方法,特别是 Lanczos 算法 对于稀疏矩阵,这是非常可取的,因为我要处理的矩阵非常大(长度为 10,000 以上),而且是方形的,而且也相当稀疏。 话虽如此,我可能要求有点多,所以任何关于相当完整的矩阵库的建议都会很棒。

现在我知道 Python 有一个或两个有用的库来完成此类任务(即 NumPy/SciPy),但遗憾的是 .NET 似乎在该领域有所欠缺。

经过一番搜索,我发现了以下 .NET 库,我可能会使用这些库:

但是,由于我没有任何使用这些库或其他库的经验(并且在任何情况下都没有足够的时间正确检查每个库),如果这里有人能讨论他们对各种库的建议、它们的优点/缺点,特别是在适合我的使用方面,以及他们对它们的一般经验,我将非常感激。

求助于 MatLab 始终是一种选择,但不是首选,因为如果我可以将矩阵数学直接集成到我的程序中,就会方便得多。

I'm looking for a good (well-tested, fully-featured, and ideally with a nice interface) matrix library for .NET/C#. My main requirements here are only that it should be free (I don't particularly care whether it's open-source in this case) and preferably support sparse matrix operations. The obligatory requirements are all the basic operations (e.g. multiplication, transposition, inversion) as well as finding eigenvalues & eigenvectors. Implementation of a numerical rather than/as well as analytical methods for discovery of eigenvalues, particularly the Lanczos algorithm for sparse matrices, would be highly preferable since the matrices I'm going to be dealing with are very large (lengths of 10,000 upwards) as well as square, and also reasonably sparse. Saying that, I could be asking for a bit much there, so any suggestions for a reasonably complete matrix library would be great.

Now I'm aware that Python has one or two useful libraries for such tasks (namely NumPy/SciPy), but .NET unfortunately seems to be lacking in the area.

A bit of searching turned up the following libraries for .NET, which I could potentially used:

However, since I have had no experience whatsoever using any of these libraries or others (and not exactly enough time to check each of them out properly in any case), I would very much appreciate if anyone here could discuss their recommendations regarding the various libraries, their pros/cons particularly with regards to suitability for my uses, and their general experiences with them.

Resorting to MatLab is always an option, but not a preferred one, as it would be much more convenient if I could integrate the matrix math directly with my program.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

森林迷了鹿 2024-07-27 06:56:27

编辑:

我上次评估它时还没有完全实现,但是已经有相当多的活动,所以您还应该考虑(免费和开源)Math.NET 数值

现在看来,他们似乎已经完成了新版本,并添加了稀疏矩阵支持,以及其他不错的东西。


如果您想要更强大的支持,不幸的是您确实需要使用 .NET atm 的商业包。

有两个功能非常丰富的软件包,它们都很好地支持矩阵。 极端数值效果很好,并且有一些非常不错的功能。 我还听说过关于 IMSL 视觉数字数学库。

Edit:

It wasn't quite there last time I evaluated it, but there has been quite a bit of activity, so you should also consider the (free and open source) Math.NET Numerics.

In looking now, it seems they've finished their new version, and have added sparse matrix support, as well as other nice goodies.


If you want more robust support, you unfortunately really need to get into commercial packages for .NET atm.

There are two very feature-rich packages, both of which support matrices very well. Extreme Numerics works great, and has some very nice features. I've also heard very good things about the IMSL Visual Numerics math libraries.

记忆里有你的影子 2024-07-27 06:56:27

尝试 ILNumerics:我们有一个 rel. 作为开源项目有着悠久的历史,最近改为商业许可证以获得更好和可靠的支持。 我有偏见,但这里有一个简短的功能列表:

  • 更好的内存管理,因此...
  • 更快的算法
  • 使用 MKL 进行线性代数
  • n 维数组类,语法类似于 Matlab
  • 3D 绘图控件
  • 支持 32/64 位
  • 支持单声道
  • < a href="http://ilnumerics.net/%24FeatureList.html" rel="nofollow">完整功能列表

Try ILNumerics: We have a rel. long history as open source project and recently changed to commercial licenses for better and reliable support. I am biased but here comes a short feature list:

  • Better memory management, hence ...
  • Much faster algorithms
  • Uses MKL for linear algebra
  • n-dim array classes, syntax similar to Matlab
  • 3D plot controls
  • Support for 32/64 bit
  • Support for mono
  • Full feature list
伊面 2024-07-27 06:56:27

我以前用过 Mapack,发现它非常好。

虽然,我不认为它有稀疏矩阵,但它确实支持所有基本的线性代数函数。

I have us Mapack in the past and found it to be very good.

Although, I don't think it has Sparse matrices but it does support all the basic linear algegra functions.

知你几分 2024-07-27 06:56:27

另一种选择: 用于 .NET 的 IMSL。 CenterSpace 有 NMath 库 - 尚未使用这些库。

Another alternative: IMSL for .NET. CenterSpace has the NMath libraries -- haven't used these.

又爬满兰若 2024-07-27 06:56:27

我在大学的神经网络项目中使用了 Mapack(.Net 端口而不是 COM 版本)。 我不太记得这个库的细节,但它满足了我需要的一切,而且使用起来也不是特别繁琐。

I used Mapack (the .Net port not the COM version) in a neural network project at university. I can't exactly remember the fine details of the library, but it did everything I needed it to and wasn't particularly onerous to use.

箹锭⒈辈孓 2024-07-27 06:56:27

您考虑过 math.net 铱吗?

http://iridium.mathdotnet.com/

have you considered math.net iridium ?

http://iridium.mathdotnet.com/

源来凯始玺欢你 2024-07-27 06:56:27

Meta.Numerics(托管于 codeplex)是一个免费的软件包,用于计算特征值和非对称矩阵的特征向量,但目前并没有专门处理稀疏矩阵。

Meta.Numerics (hosted on codeplex) is a free package that will compute eigenvalues and eigenvectors of non-symmetric matrices, but it does not currently treat sparse matrices specially.

海螺姑娘 2024-07-27 06:56:27

关于.NET和Python,您可以使用IronPython。 但是,您还需要 Ironclad 来制作 SciPy NumPy 与 IronPython 一起使用。

Regarding .NET and Python, you could use IronPython. However, you'll also need Ironclad to make SciPy and NumPy work with IronPython.

删除→记忆 2024-07-27 06:56:27

现已不复存在的 Managed DirectX 库提供了一些矩阵支持。

此后,它已包含在 Microsoft XNA 中,这可能不太适合您,但是 MDX Wikipedia 文章 推荐一个名为 SlimDX 的东西 可能没问题

The now-defunct Managed DirectX library had some matrix support.

That has since been wrapped into Microsoft XNA, which is probably not a good fit for you, but the MDX Wikipedia article recommends something called SlimDX that might be okay.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文