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

Développement 2D, 3D et Jeux Discussion :

Décomposition LU matrice 4x4


Sujet :

Développement 2D, 3D et Jeux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Kromagg
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2008
    Messages : 275
    Par défaut Décomposition LU matrice 4x4
    Bonjour à tous

    Est-ce que vous pourriez m'expliquer le principe d'une décomposition LU ?
    Ca serait pour calculer le déterminant et l'inverse d'un matrice 4x4. Pour le moment j'utilise les règles de Kramer comme j'ai pu le lire sur la faq matrices et quaternions mais il est précisé qu'il faut mieux utiliser une décomposition LU.

    Pour le moment je n'ai pu trouver qu'un aspect purement théorique de la décomposition LU et comme je ne suis pas un grand matheux, je m'adresse à vous

    Merci d'avance
    Kromagg

  2. #2
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 817
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 817
    Par défaut
    Salut

    Citation Envoyé par Kromagg Voir le message
    comme je ne suis pas un grand matheux
    Bon, ben alors un conseil, laisse tomber!

    Deux choix maintenant:
    1) soit tu utilises une bibliothèque mathématique qui l'implémente déjà (colt par exemple, ou jscience qui ne me semble pas faire de décomposition LU directement mais qui possède les opérations matricielles de base)

    2) soit tu restes aux méthodes simple avec kramer, laplace, comatrice et transformations inverses. Une matrice 4x4 est tout de même relativement simple pour ces opérations, la décomposition LU est plus rentable sur les grosses matrices. Et pour tes matrices inverses, tu auras plus vite fait de décomposer en translation et quaternion et de faire la manip inverse puis reconstruire la matrice (enfin, avis personnel, j'ai fait comme ça moi).
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Membre éclairé Avatar de Kromagg
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2008
    Messages : 275
    Par défaut
    Bon, ben alors un conseil, laisse tomber!
    J'ai quand même posté ici pour apprendre, si à chaque fois qu'il s'agit de math on s'arrête à des considérations comme celles-ci on ne peut pas progresser. Même si je dois passer une semaine la dessus au moins j'aurais appris la théorie et ce sera toujours un plus

  4. #4
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 817
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 817
    Par défaut
    Citation Envoyé par Kromagg Voir le message
    J'ai quand même posté ici pour apprendre, si à chaque fois qu'il s'agit de math on s'arrête à des considérations comme celles-ci on ne peut pas progresser.
    Disons que c'était essentiellement pour souligner le peu d'intérêt que je porte à une décomposition LU sur une matrice 4x4... avec beaucoup d'implication mathématique, de réflexion et de travail, alors qu'il y a d'autres méthodes plus rapides et plus simples à mettre en oeuvre.


    Citation Envoyé par Kromagg Voir le message
    Même si je dois passer une semaine la dessus au moins j'aurais appris la théorie et ce sera toujours un plus
    Bon, alors si c'est pour ta culture, on va essayer d'expliquer...
    Tout d'abord, le lien wikipedia qui explique la manip.
    Notations: * pour le produit matriciel, ^-1 pour l'inverse d'une matrice

    Tu prends ta matrice, et on va appliquer dessus un processus itératif.
    On considère n, avec n allant de 1 à 4-1=3 (4 étant la dimension de ta matrice).
    La matrice courante est appelée A(n-1) (la matrice A de départ peut donc se noter A(0)), et on va construire le vecteur L(n) tel que toutes les colonnes soient à 0 excepté leur terme diagonal à 1, et la n-ième colonne avec tous les termes au-dessus de la diagonale à 0, le terme diagonal à 1, et les termes en-dessous définis par -a(i,n)/a(n,n), avec a(i,j)=terme de la matrice A(n-1) sur la ligne i, colonne j.
    Tu calcules ensuite la matrice A(n)=L(n)*A(n-1)

    Tu remarqueras que sur la matrice A(n), l'opération que l'on vient de faire à mis à 0 tous les termes en-dessous de la diagonale de la n-ième colonne.

    Reste plus qu'à répéter l'opération pour le n suivant.

    Quand tu arrives à la fin de l'opération pour n=3, tu te retrouves avec un matrice A(3) qui est triangulaire supérieure, que l'on peut appeler U
    Et comme:
    A(0)=L(1)^-1*A(1)=L(1)^-1*L(2)^-1*A(2)=L(1)^-1*L(2)^-1*L(3)^-1*A(3)
    tu peux écrire:
    A(0)=L*A(3) avec L=L(1)^-1*L(2)^-1*L(3)^-1, qui est une triangulaire inférieure
    et donc que A(0)=L*U, et tu viens de décomposer ta matrice

    Alors attention, pour être rigoureux, vu qu'à un moment tu divises par le terme a(n,n), il faut que celui-ci soit différent de 0. Si jamais tu tombes sur un terme nul, il faut permuter la ligne en cours avec une ligne en dessous dont le terme correspondant n'est pas nul, pour pouvoir faire la division. C'est pour cela qu'en toute rigueur, on fait intervenir une matrice de permutation P qui va permuter les lignes donc afin d'éviter ce problème.
    Donc, au final, on a en fait A(0)=P*L*U

    Pour calculer l'inverse des matrices L(n), c'est assez simple ici, il suffit d'inverser le signe des termes sous la diagonale.

    Voilà... il faut appliquer sur un exemple pour que ce soit bien clair par contre, c'est un peu théorique comme ça!
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  5. #5
    Membre éclairé Avatar de Kromagg
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2008
    Messages : 275
    Par défaut
    Merci bien pour cette explication je vais essayer de mettre ça en place.

    Citation Envoyé par plegat
    Disons que c'était essentiellement pour souligner le peu d'intérêt que je porte à une décomposition LU sur une matrice 4x4... avec beaucoup d'implication mathématique, de réflexion et de travail, alors qu'il y a d'autres méthodes plus rapides et plus simples à mettre en œuvre.
    Quelle(s) méthode(s) tu pourrais me conseiller qui soient plus facile à mettre en œuvre et surtout plus adapter pour une matrice 4x4 ?

    Kromagg

  6. #6
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 817
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 817
    Par défaut
    Citation Envoyé par Kromagg Voir le message
    Quelle(s) méthode(s) tu pourrais me conseiller qui soient plus facile à mettre en œuvre et surtout plus adapter pour une matrice 4x4 ?
    J'en ai cité quelques-uns précédemment
    Citation Envoyé par Plegat
    2) soit tu restes aux méthodes simple avec kramer, laplace, comatrice et transformations inverses.
    Pourrais-t'on savoir dans quel cadre tu as besoin de faire ces calculs sur des matrices 4x4?
    Par exemple, pour mon moteur 3D, j'utilise des matrices 4x4 pour les matrices Opengl. Hors je ne passe jamais par des calculs de déterminant ni d'inverse sur les matrices. Toutes les opérations se font sur les translations et les quaternions (pour lesquels c'est relativement simple d'avoir l'inverse), qui sont ensuite convertis en matrice 4x4.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

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

Discussions similaires

  1. Décomposition de matrices creuses
    Par assma.m dans le forum MATLAB
    Réponses: 4
    Dernier message: 18/07/2011, 10h48
  2. décomposition de matrice carrée
    Par musabir dans le forum MATLAB
    Réponses: 1
    Dernier message: 22/11/2009, 22h47
  3. Notation rapide matrice 4x4
    Par damilari dans le forum MATLAB
    Réponses: 3
    Dernier message: 14/08/2009, 08h28
  4. Décomposition matrice frame
    Par mfontan dans le forum MATLAB
    Réponses: 5
    Dernier message: 06/06/2008, 10h58
  5. [Matrices] Comment calculer le Déterminant d'une matrice 4x4
    Par cyber_N dans le forum Algorithmes et structures de données
    Réponses: 70
    Dernier message: 19/08/2005, 15h47

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