Я ищу хорошую (хорошо протестированную, полнофункциональную и идеально подходящую интерфейсную) матричную библиотеку для .NET/С#. Мои основные требования здесь состоят только в том, что он должен быть бесплатным (я не особо забочусь о том, является ли он открытым исходным кодом в этом случае) и предпочтительно поддерживает разреженная матрица операций. Обязательными требованиями являются все основные операции (например, умножение, транспонирование, инверсия), а также поиск собственных значений и собственных векторов. Внедрение численных, а не аналитических методов обнаружения собственных значений, в частности алгоритма Ланцоса для разреженных матриц, было бы весьма предпочтительным, поскольку матрицы, с которыми я собираюсь иметь дело, очень большие (длины 10 000 вверх), а также квадратные, а также разумно разреженные. Говоря это, я мог бы просить о многом, поэтому любые предложения для достаточно полной библиотеки матриц были бы замечательными.
Теперь я знаю, что у Python есть одна или две полезные библиотеки для таких задач (а именно NumPy/SciPy), но, к сожалению,.NET, похоже, отсутствует в этой области.
Немного поиска включили следующие библиотеки для .NET, которые я мог бы использовать:
- Lutz Roeder Mapack
- DotNetMatrix (CodeProject)
- Библиотека матриц С# (CodeProject)
Однако, поскольку у меня не было никакого опыта использования какой-либо из этих библиотек или других (и не достаточно времени для проверки каждого из них должным образом в любом случае), я был бы очень признателен, если бы кто-нибудь здесь мог обсудить свои рекомендации относительно различные библиотеки, их плюсы и минусы, особенно в отношении пригодности для моих целей, и их общий опыт с ними.
Прибегать к MatLab всегда является вариантом, но не предпочтительным, так как было бы гораздо удобнее, если бы я мог интегрировать математическую матрицу напрямую с моей программой.