Une classe d'algèbre (calcul matriciel) performante ?
Sylphe67
Messages postés4Date d'inscriptionjeudi 10 juillet 2008StatutMembreDernière intervention11 juillet 2008
-
10 juil. 2008 à 11:32
Bahoumi88
Messages postés1Date d'inscriptionsamedi 7 février 2009StatutMembreDernière intervention 9 mars 2010
-
9 mars 2010 à 11:07
Bonjour à tous,
En une phrase, je recherche une classe template permettant d'effectuer du calcul matriciel performant sur des matrices carrées de tailles moyenne (100 double * 100 double) à grande (2000 double * 2000 double).
Plus précisément, cette classe devrait - dans l'idéal - comporter des méthodes d'inversion de matrice intelligentes, c-à-d qui vont appeler l'un ou l'autre algorithme d'inversion en fonction de la taille de la matrice et de ses propriétés (pleine, triangulaire sup, multidiagonale, etc). Elle devrait aussi pouvoir s'intégrer sans trop de difficultés dans un projet existant de simulation numérique. Après recherche sur le web et consultation de forums, je constate qu'il y a plusieurs solutions libres proposées, et j'ai du mal à me décider pour l'une ou l'autre. Je fais donc appel à votre expérience : pouvez vous me conseiller une classe particulière ?
D'avance merci pour votre aide !
A voir également:
Une classe d'algèbre (calcul matriciel) performante ?
cs_Lucky92
Messages postés180Date d'inscriptionmercredi 22 décembre 2004StatutMembreDernière intervention16 août 20122 10 juil. 2008 à 19:41
Bonjour,
la librairie uBLAS de boost répondra peut-être à ton besoin. En revanche, la documentation n'est pas géniale, et il faut un sacré background en algèbre et en c++, ou éventuellement une bonne connaissance de la librairie fortran originale, pour l'utiliser (à mon sens en tout cas). voici, toutefois - si cela t'intéresse - l'exemple de base qui permet d'inverser une matrice avec l'élimination de gauss-jordan :
Sylphe67
Messages postés4Date d'inscriptionjeudi 10 juillet 2008StatutMembreDernière intervention11 juillet 2008 11 juil. 2008 à 14:40
Bonjour,
Merci pour ta réponse. A première vue de l'exemple que tu donnes, je dirais que c'est une solution qui ne me convient pas vraiment, car il faut visiblement choisir la méthode d'inversion. Alors que je recherche - dans l'idéal - une solution qui va surcharger une méthode "inversion" (ou opérateur ^(-1), etc) de sorte que l'utilisateur pourrait se contenter d'écrire INV A^(-1), la librairie se chargeant d'effectuer le travail suivant : détection automatique des propriétés de A, choix d'un algorithme d'inversion en fct de ces propriétés, puis execution. Idem pour un système linéaire A x b, l'utilisateur se contenterait d'écrire : x = b / A ou x = A^(-1) * b.