Рекомендация для библиотеки матриц С#

Мне нужна библиотека С# для работы с матрицами. Он должен реализовывать разложение сингулярных значений, инверсию матрицы и т.д.

Ранее я использовал CSML, но это не реализует некоторые функции, которые мне нужны.

Некоторые из функций:
Сингулярное разложение значений
Матричная инверсия
Трассировка
Детерминанты

Рекомендуемые библиотеки (из ответов)

(большинство из них реализуют функции, указанные выше)

Ответ 1

Math.NET Numerics очень хорошо, если он поддерживает операции, которые вы хотите. Старший Math.Net Iridium по-прежнему поддерживает больше возможностей. Кроме того, dnAnalytics довольно приятный, но уже не разрабатываемый. (Он, как и Иридиум, объединяется в Math.NET Numerics.)

На коммерческой стороне есть очень хорошие, надежные варианты. Extreme Optimization Numerical Libraries работают очень хорошо. Библиотека Visual Numerics также работает очень хорошо (хотя с распределением на основе роялти).

Ответ 2

Я считаю, что Math.NET имеет большинство функций, которые вы упоминаете. Yuu может захотеть взглянуть на него и посмотреть, подходит ли оно вашим потребностям.

Вы можете посмотреть образцы Iridium, чтобы увидеть синтаксис и пример кода.

Ответ 3

Я часто использовал ILNumerics. Также внес некоторые вклады в проект. Это знаю, это единственная библиотека, которую я знаю, которая не тратит половину времени процессора в GC для серьезных вычислений. Его быстрый и зрелый. Полный список .

Ответ 4

В дополнение к библиотекам, упомянутым в других сообщениях, я могу сказать несколько теплых слов о FinMath библиотеке. Это скорее новая библиотека, но, по моему опыту, она имеет ряд преимуществ. Очень просто использовать эту библиотеку. Во-первых, он имеет только один исполняемый файл (*.dll) для 32-разрядных и 64-разрядных операционных систем. Во-вторых, он построен на основе хорошо известной библиотеки Intel Math Kernel Library и, следовательно, обеспечивает очень хорошую производительность. Управляемый .NET API, предоставляемый этой библиотекой, также очень обширен и гибкий. Но это проприетарное программное обеспечение и стоит значительная сумма денег. Он также не обладает некоторой функциональностью (например, по сравнению с NMath от Software CenterSpace). В любом случае, стоит попробовать.