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

Mathématiques Discussion :

Tri-Diagonal Matrix Algorithm", ou algorithme de Thomas


Sujet :

Mathématiques

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Points : 22
    Points
    22
    Par défaut Tri-Diagonal Matrix Algorithm", ou algorithme de Thomas
    Bonjour
    je traite un probléme de conduction en 2D et je voudrais résoudre un système linéaire AX=b.
    J'ai écrit mon programme et j'ai constaté que ma matrice est une matrice quelconque ,est ce qu'on peut utiliser "Tri-Diagonal Matrix Algorithm", ou algorithme de Thomas pour résoudre mon système?

    la matrice correspondante à mon système est sous la forme suivante
    x x 0 x 0 0 0 0 0
    x x x 0 x 0 0 0 0
    0 x x 0 0 x 0 0 0
    x 0 0 x x 0 x 0 0
    0 x 0 x x x 0 x 0
    0 0 x 0 x x 0 0 x
    0 0 0 x 0 0 x x 0
    0 0 0 0 x 0 x x x
    0 0 0 0 0 x 0 x x
    merci de me proposer comment je dois résoudre mon système et quelle méthode je pourrais l'utiliser?

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Je ne suis pas un expert en systèmes linéaires, mais on dirait une matrice en bande (band matrix).

    Je suppose qu'une décomposition LU (ou une élimination de Gauss) est applicable dans ce cas.

    Mais il existe peut-être des méthodes plus appropriées. Je laisse la parole aux experts...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Ta question n'a rien à voir avec le Fortran. En conséquence, je déplace cette discussion dans le forum algo/maths.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 488
    Points : 593
    Points
    593
    Par défaut
    Bonjour,

    Vu la structure en bande de la matrice, une résolution directe par décomposition LU adaptée (la décomposition LU préserve l'horizon des matrices) peut faire l'affaire.

    Ceci dit, puisqu'il s'agit de la discrétisation d'un laplacien, chaque ligne de la matrice ne contiendra que peu d'éléments non nuls, et donc une résolution itérative (du type méthode de Jacobi ou Gauss-Seidel) serait préférable si le système à résoudre est grand.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Points : 22
    Points
    22
    Par défaut
    Bonjour,
    une résolution itérative " Gauss-Seidel serait " facile à la programmer avec le fortran?
    Merci

  6. #6
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Si tu formulais correctement ton problème, ça éviterait la masse de messages inutiles. Alors, voici ce que j'ai compris (et que tu aurais dû écrire):
    Je veux calculer la répartition de la température sur un domaine rectangulaire (2D), répartition qui obéit à une équation de Poisson (ou de Laplace). Pour intégrer cette équation, j'applique la méthode des différences finies, ce qui remplace l'équation aux dérivées partielles par un système linéaire. La matrice de ce système est symétrique, définie positive et tridiagonale par blocs. Alors, quelle méthode utiliser pour résoudre ce système?
    La réponse est simple: deux possibilités peuvent être envisagées:
    1. Cholesky par blocs;
    2. Gradients conjugués.

    Tu choisis une de ces méthodes, tu la programmes et ton problème est résolu.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 488
    Points : 593
    Points
    593
    Par défaut
    Bonjour,
    Citation Envoyé par manaiilhem Voir le message
    une résolution itérative " Gauss-Seidel serait " facile à la programmer avec le fortran?
    Oui.

  8. #8
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut En marge de cette discussion...
    Bonjour,
    Citation Envoyé par Ehouarn Voir le message
    la décomposition LU préserve l'horizon des matrices
    Je connais la décomposition LU, mais je ne connais pas cette notion d'horizon des matrices, et je ne trouve rien sur le net à ce sujet!
    De quoi s'agit-il?
    Merci.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 488
    Points : 593
    Points
    593
    Par défaut
    Bonjour,

    L'horizon (en fait les horizons, il y a l'horizon supérieur et l'horizon inférieur) est la diagonale au delà de laquelle (jusqu'au coin supérieur droit ou inférieur gauche) la matrice ne contient que des zéros.

    Par exemple pour une matrice tridiagonale les horizons sont simplement les sur et sous diagonales jouxtant la diagonale principale de la matrice.

    Bonne continuation.

  10. #10
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    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 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par bertry Voir le message
    Je connais la décomposition LU, mais je ne connais pas cette notion d'horizon des matrices, et je ne trouve rien sur le net à ce sujet!
    De quoi s'agit-il?
    Citation Envoyé par Ehouarn Voir le message
    L'horizon (en fait les horizons, il y a l'horizon supérieur et l'horizon inférieur) est la diagonale au delà de laquelle (jusqu'au coin supérieur droit ou inférieur gauche) la matrice ne contient que des zéros.
    En complément, on voit plus souvent passer les notions de demi-largeurs (droite et gauche) de bande dans la littérature pour les matrices bandes.
    Pour la notion d'horizon, il faut faire les recherches en anglais avec le terme "skyline", qui va t'amener au format de stockage SKS (skyline matrix storage, souvent utilisé dans les logiciels éléments finis).
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  11. #11
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut
    Merci Ehouarn et plegat pour vos réponses.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 294
    Points : 128
    Points
    128
    Par défaut
    Ca se fait tres bien avec UMFPACK library en ligne....

    Je l'ai fait comme projet c++.

  13. #13
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Sur le site netlib.org, tu trouveras la bibliothèque linpack, et dans cette bibliothèque, les sous-programmes spbfa.f et spbsl.f (dpbfa.f et dpbsl.f si tu travailles en double précision). C'est exactement ce qu'il te faut.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

Discussions similaires

  1. Tri d'un tableau par un algorithme
    Par recome dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 14/01/2009, 09h04
  2. complexité d'un algorithme par un...algorithme??
    Par afrikha dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 02/11/2005, 00h59
  3. algorithme de tri tableau :afficher que les éléments unique
    Par sofiane61 dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 31/03/2005, 19h50

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