web-dev-qa-db-fra.com

Recommandation pour la bibliothèque de matrices C #

J'ai besoin d'une bibliothèque C # pour gérer les matrices. Il doit implémenter la décomposition en valeurs singulières, l'inversion de matrice, etc.

J'ai utilisé CSML avant, mais cela n'implémente pas certaines des fonctionnalités dont j'ai besoin.

Certaines des fonctionnalités sont:
Décomposition en valeurs singulières
Inversion de matrice
Trace
Déterminants

Bibliothèques suggérées (à partir des réponses)

(la plupart d'entre eux implémentent les fonctionnalités indiquées ci-dessus)

68
jose

Math.NET Numerics est très bien, s'il prend en charge les opérations que vous souhaitez. L'ancien Math.Net Iridium prend toujours en charge plus d'options. En outre, dnAnalytics est assez agréable, mais n'est plus en cours de développement. (Il, ainsi que Iridium, sont fusionnés dans Math.NET Numerics.)

Du côté commercial, il existe de très bonnes options robustes. Les Extreme Optimization Numerical Libraries fonctionnent très bien. La bibliothèque Visual Numerics fonctionne également très bien (bien qu'avec une distribution basée sur des redevances ...).

31
Reed Copsey

Je crois que Math.NET possède la plupart des fonctionnalités que vous mentionnez. Yuu voudra peut-être l'examiner et voir s'il correspond à vos besoins.

Vous pouvez jeter un œil aux exemples Iridium pour voir la syntaxe et l'exemple de code.

6
LBushkin

J'utilise beaucoup ILNumerics . A également fait quelques contributions au projet. C'est par savoir la seule bibliothèque que je connaisse, qui ne passe pas la moitié du temps CPU en GC pour calculs sérieux . C'est rapide et mature. Voir l'intégralité liste des fonctionnalités .

5
user492238

En plus des bibliothèques mentionnées dans d'autres articles, je peux dire quelques mots chaleureux à propos de la bibliothèque FinMath . C'est une bibliothèque plutôt nouvelle, mais d'après mon expérience, elle présente plusieurs avantages. Il est très facile d'utiliser cette bibliothèque. Tout d'abord, il n'a qu'un seul fichier exécutable (* .dll) pour les systèmes d'exploitation 32 bits et 64 bits. Deuxièmement, il est construit au-dessus de la bibliothèque Intel Math Kernel bien connue et offre donc de très bonnes performances. L'API .NET gérée fournie par cette bibliothèque est également très étendue et flexible. Mais, c'est un logiciel propriétaire et coûte beaucoup d'argent. Il manque également certaines fonctionnalités (par exemple par rapport à NMath du logiciel CenterSpace). Quoi qu'il en soit, cela vaut la peine de l'essayer.

2
VHaravy