IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[calculs matriciels] rapidité d'inversion


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [calculs matriciels] rapidité d'inversion
    Bonjour,
    Je voudrais inverser des matrices de tailles conséquentes (entre 500*500 jusqu'à + de 10 000*10 000), pour ça j'utilise actuellement la fonction vigra::linalg::inverse de la bibliothèque vigra, mais ça rame, forcément ...Et surtout, ça met plus de temps que d'effectuer mes calculs sous Matlab (vexant) où bien sûr de genre de fonction est optimisée. J'aurai juste aimé savoir si quelqu'un avait eu ce genre de problème et savait comment optimiser les temps de calcul avec 'inverse' ?
    Merci d'avance !

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 743
    Points : 460
    Points
    460
    Par défaut
    Utilise la bibliothèque ATLAS
    http://math-atlas.sourceforge.net/

    (en attendant que j'intègre moi aussi la décomposition LUP dans ma bibliothèque...)

    Voici un exemple de benchmark d'ATLAS pour Pentium4. C'est la courbe de DLU (décomposition LUP de matrices de doubles) à la base de l'inversion de matrices qui t'intéresse.
    http://math-atlas.sourceforge.net/ti...7_3/index.html

    Mais des matrices 10000x10000 ça va durer quelque temps, même à 3500Mflop.
    Pour doubler la vitesse utilise des floats si leur précision suffit...

    PS: Si tu as des matrices creuses (sparce matrix), y'a aussi des algos prévus pour ça.
    PS2: N'inverse pas les matrices si tu comptes résoudre des systèmes linéaires, utilise à la place les algos à base de décomposition LUP.
    PS3:
    Matlab (vexant) où bien sûr de genre de fonction est optimisée
    Rien n'est moins sûr. Ils sont tellement doués chez Matlab qu'ils intègrent progressivement à leur usine à gaz des librairies extérieures (FFTW, et je crois bien ATLAS justement...). Comme si Matlab était justement connu pour sa rapidité (ok,ok c'est en bonne partie à cause de l'interprétation du code...)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [calculs matriciels] rapidité d'inversion
    Bonjour et merci pour ta réponse !

    Et oui, j'ai finalement opté pour un calcul séquentiel.
    Mon problème est du type A.x=B. Je connais A, je cherche à estimer une matrice B en inversant l'opérateur x. Dans mon cas, x correspond à une matrice triangulaire inférieure (suis-je bête), je procède donc par approche séquentielle plutôt que d'inverser cet énorme bloc x , en temps de calcul c'est forcément incomparable ...

    Merci encore,
    Sophie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. calcul matricielle propriétes de l'inverse
    Par karika dans le forum MATLAB
    Réponses: 2
    Dernier message: 25/05/2013, 13h06
  2. Librairie "calcul matriciel"
    Par bassabo dans le forum C++
    Réponses: 13
    Dernier message: 20/04/2006, 09h37
  3. Librairie "calcul matriciel"
    Par bassabo dans le forum MFC
    Réponses: 0
    Dernier message: 19/04/2006, 11h51
  4. Problème de calcul matricielle
    Par Clad3 dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 29/06/2005, 21h45
  5. Calcul Matriciel en PL/SQL
    Par PpPool dans le forum PL/SQL
    Réponses: 4
    Dernier message: 02/02/2004, 10h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo