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 :

[Pivot de Gauss] probleme si pivot nul


Sujet :

Mathématiques

  1. #1
    Membre éclairé
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par défaut [Pivot de Gauss] probleme si pivot nul
    Bonjour, je viens de me replonger dans les matrices pour les etudes et j'ai creer un programme en C++ pour faire l'inverse d'une matrice par la methode du pivot de Gauss Jordan. Mon probleme est si une des valeurs de la diagonales est nul, comment contourner ce probleme ? En parcourant les forums il explique qu'il faut chager les lignes ?? mais comment faire pour reussir a transposer les lignes sans faire un autre "trou" dans la diagonale ??

    Est ce que cela peut etre fait a n'importe quelle moment ou dois - je inverser les lignes avant tout calcul ??

    Merci de votre aide .

  2. #2
    Membre éclairé
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par défaut
    personne n'a de reponse ??

  3. #3
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Tu peux permuter les lignes avant chaque etape d'elimination.

    Je te conseille meme de les permuter a chaque fois, de maniere a avoir la plus grande valeur (absolue) sur la diagonale. Ca reduit la propagation des erreurs de calculs
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #4
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    C'est ce que je faisais également. Il te faut calculer le maximum pour le pivot.

    Dans le cas où cette valeur est nulle, c'est que ta matrice n'était pas inversible.

  5. #5
    Membre éclairé
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par défaut
    Si j'ai bien compris avant chaque etape pour arriver a l'inverse, je cherche la ligne qui aura le maximum et je l'insere à la place de l'ancienne !!

    Je peux permutter les lignes a tout moment ?? Par exemple si j'en suis à la troisieme colonne pour les pivots, je peux prendre la premiere ligne alors que ces valeurs ont été modifié ??

  6. #6
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par jmjmjm
    Je peux permutter les lignes a tout moment ?? Par exemple si j'en suis à la troisieme colonne pour les pivots, je peux prendre la premiere ligne alors que ces valeurs ont été modifié ??
    Heu.. oui, dans la theorie, tu peux. Mais le but c'est quand meme de diagonaliser ta matrice ! Ca implique de ne pas toucher aux lignes/colonnes a Gauche/au Dessus du pivot actuel.

    Donc tu dois permutter ta ligne actuelle avec les lignes qui sont en dessous.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Membre éclairé
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par défaut
    Je dois donc tester avant si mon pivot n'est pas dans les lignes d'avant avant de commencer mes transpo ! c bien ca ??

  8. #8
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par jmjmjm
    Je dois donc tester avant si mon pivot n'est pas dans les lignes d'avant avant de commencer mes transpo ! c bien ca ??
    Hein ? Ton pivot est forcement dans les lignes d'apres. !

    A lire --> Méthode d'élimination de Gauss
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  9. #9
    Membre éclairé
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par défaut
    Oui je vois pourquoi tu t'arrache les cheveux avec ma precedente reflexion lol.
    En fait j'ai decider de codé precisement ce qui est ds mon cours et dans mon cours l'inversion par pivot ne se fait pas comme cela!!

    Tu prend ta matrice Ex 3,3

    3 5 6
    4 5 3
    3 4 7




    et tu fais

    ----------3 5 6 1 0 0
    ----------4 5 3 0 1 0
    ----------3 4 7 0 0 1
    1/3 0 0
    -4/3 1 0
    -1 0 0

    As tu deja vu ce genre de proceder ??
    tu prend pour ta colonne n
    pour l'enplacement du pivot 1/pivot
    pour les autres - la valeur / pivot

    pour une matrcie de taille 3*3 , j'ai donc trois transpo pivot (1,1) (2,2) et (3,3)


    vois tu ce que je veux dire si non , je te montrerai un exemple complet

  10. #10
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par jmjmjm
    As tu deja vu ce genre de proceder ??
    C'est exactement ce qui est ecrit dans le PDF que j'ai indiqué:

    Au lieu d’annuler uniquement les termes situés sous le pivot, on va annuler les termes au-dessous et au-dessus du pivot. On obtient ainsi une matrice D diagonale
    Ca n'empeche qu'il faut utiliser les pivots dans l'ordre en partant de (1,1) jusqu'a (n,n). Si a une des etapes, tu as ton pivot (i,i) qui est nul, tu echange la ligne "i" avec une des lignes "j", ou "j" est supérieur a "i".
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #11
    Membre éclairé
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par défaut
    je ne comprend pas bien par exemple si j'ai cette matrice à inverser :

    [ 1 0 5 0 ]
    [ 5 9 0 2 ]
    [ 9 0 0 0 ]
    [ 5 6 0 6 ]


    Mais deux dernier pivot son nul alors en arrivant a l'etape 3, je ne peux pas inverser la ligne 3 avec la ligne 4, mon pivot sera nul quand meme !!
    Vois tu ce que je veux dire ??
    J'ai peut etre mal compris

  12. #12
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par jmjmjm
    Mes deux dernier pivot son nul alors en arrivant a l'etape 3
    Qu'est-ce que tu obtiens comme matrice a l'etape 3 ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  13. #13
    Membre éclairé
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par défaut
    en fait dans notre methode que je te parlais tout a l'heure on additionne pas les lignes ou les soustraits ...
    on fait des multiplication entre la matrice identité avec le pivot et la matrice a inversé

  14. #14
    Membre éclairé
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par défaut
    Connais tu le C++ ?? Si oui je te passe l'algo que j'ai deja fait et tu verras ma methode et tu me diras ce que tu en pense !!

  15. #15
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Bon, on va faire l'algo a la main avec une matrice simple:

    [ 1 0 5 ]
    [ 5 9 0 ]
    [ 9 0 0 ]

    Tout d'abord, on lui colle la matrice identité:

    [ 1 0 5 | 1 0 0 ]
    [ 5 9 0 | 0 1 0 ]
    [ 9 0 0 | 0 0 1 ]

    ******* Etape 1: le pivot est (1,1) *******
    * Etape 1.a: Echanger la ligne 1 avec une des lignes suivantes pour avoir le plus grand pivot
    L3 <-> L1

    [ 9 0 0 | 0 0 1 ]
    [ 5 9 0 | 0 1 0 ]
    [ 1 0 5 | 1 0 0 ]
    * Etape 1.b: normalisation de la ligne du pivot et elimination des autres lignes par soustraction
    L1' = L1/9
    L2' = L2-(5/9)*L1 = L2-5*L1'
    L3' = L3-(1/9)*L1 = L3-1*L1'

    [ 1 0 0 | 0 0 1/9 ]
    [ 0 9 0 | 0 1 -5/9 ]
    [ 0 0 5 | 1 0 -1/9 ]
    ******* Etape 2: le pivot est (2,2) *******

    on recommence...

    ******* Etape 3: le pivot est (3,3) *******

    voila on a fini.


    A gauche on a la matrice identité, et a droite la matrice inverse
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  16. #16
    Membre éclairé
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par défaut
    moi on ma appris comme ca :
    http://jeremy45190.info/Gauss.doc

    j'ai fait un texte vite fait regarde stp et dis moi si tu connais le principe

  17. #17
    Membre éclairé
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par défaut
    Je ne suis pas un expert en matrice, je dirais meme que je debute mais a premier e vue ta methode fait faire plus de calcul donc plus de risque d'erreur non ??

  18. #18
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par jmjmjm
    j'ai fait un texte vite fait regarde stp et dis moi si tu connais le principe
    C'est exactement le meme algo, avec les memes formules et dans le meme ordre. Je ne vois strictement aucune difference.

    Citation Envoyé par jmjmjm
    Je ne suis pas un expert en matrice, je dirais meme que je debute mais a premier e vue ta methode fait faire plus de calcul donc plus de risque d'erreur non ??
    Bah vu que c'est le meme algo, on a le meme nombre/type d'operations: o(n^3)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  19. #19
    Membre éclairé
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par défaut
    oui, je viens de comprendre que les operations que tu fais sur les lignes sont celles que je fais avec ma multiplication


    Donc en faite a chaque fois tu choisis le pivot le plus important ???
    c bien ca ??
    mais tu ne peux pas prendre une ligne que tu as deja utilisé !!
    j'ai compris ??

  20. #20
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par jmjmjm
    Donc en faite a chaque fois tu choisis le pivot le plus important ??? c bien ca ??
    Oui, c'est ca.

    Citation Envoyé par jmjmjm
    mais tu ne peux pas prendre une ligne que tu as deja utilisé !! j'ai compris ??
    Exact, tu dois prendre une des lignes d'apres.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] Code Pivot de Gauss
    Par didier35 dans le forum MATLAB
    Réponses: 1
    Dernier message: 27/03/2014, 22h27
  2. programme pivot de Gauss
    Par azertysq123 dans le forum MATLAB
    Réponses: 7
    Dernier message: 17/11/2010, 18h39
  3. Résolution pivot de Gauss
    Par haraigo dans le forum C
    Réponses: 7
    Dernier message: 16/05/2008, 23h08
  4. Explication de pivot de gauss
    Par bilou_2007 dans le forum Mathématiques
    Réponses: 6
    Dernier message: 01/03/2007, 22h33
  5. [LG]Matrice et pivot de Gauss
    Par Loopingus dans le forum Langage
    Réponses: 3
    Dernier message: 16/03/2005, 17h26

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