implémentation algo du pivot de Gauss
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

implémentation algo du pivot de Gauss



  1. #1
    221

    implémentation algo du pivot de Gauss


    ------

    bonjour a tous,

    j'essaye d'implémenter l'algo d'élimination par la méthode du pivot de gauss ,
    j ai un problème avec la partie triangularisation de la matrice de mon programme, le débogueur n'indique aucune erreur mais le programme ne triangularise pas la matrice .
    Code:
    for (k=0; k<ligne; k++)
        {
    
                    pivot=score[k][k];
                    if (pivot!= 0){
                        for (i=k+1; i<ligne; i++)
                        {
                         for (j=0; j< colone; j++)
                            {
                            matrice[i][j]=matrice[i][j] - (matrice[k][j]/pivot)*matrice[i][j];
                            printf("%7d", matrice[i][j]);
                            }
                            printf("\n");
                        }
        }
    le code est tiré de l algorithme de triangularisation :
    Nom : tri.PNG
Affichages : 333
Taille : 59,5 Ko

    merci,

    -----

  2. #2
    Jack
    Modérateur

    Re : implémentation algo du pivot de Gauss

    Je n'ai pas vérifié ton algo, mais d'une manière générale, tu peux utiliser un débogueur qui va te permettre d'exécuter ton programme pas-à-pas en visualisant dynamiquement l'état de tes variables (et de ta matrice par conséquent).

    Sinon, à l'ancienne, tu appelles une fonction qui t'affiche ta matrice lorsque tu veux connaitre son état.

    A+

  3. #3
    221

    Re : implémentation algo du pivot de Gauss

    y avait une erreur d affectation dans mon programme que j ai corrigé :
    Code:
    for (k=0; k<ligne; k++)
        {
    
                    pivot=matrice[k][k];
                    if (pivot!= 0){
                        for (i=k+1; i<ligne; i++)
                        {
                         for (j=0; j< colone; j++)
                            {
                            matrice[i][j]=matrice[i][j] - (matrice[k][j]/pivot)*matrice[i][j];
                            printf("%7d", matrice[i][j]);
                            }
                            printf("\n");
                        }
        }
    ca ne triangularise tjr pas la matrice
    merci de m éclairer
    Dernière modification par Jack ; 23/12/2015 à 16h02. Motif: Ajout balises code

  4. #4
    221

    Re : implémentation algo du pivot de Gauss

    merci jack,
    si quelqu un a un algo plus probant plus simple a implémenter il est le bienvenue

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : implémentation algo du pivot de Gauss

    Mon dernier cours d'analyse numérique remontant à une trentaine d'années, je ne me sens plus vraiment capable de ce genre de performances

  7. #6
    221

    Re : implémentation algo du pivot de Gauss

    j comprends c est de l ordre du souvenir lointain x) .

    le fait que le débogueur n'indique rien ne m aide pas trop, je vois vraiment pas ou ca déconne
    je ne vois rien d illogique dans :
    matrice[i][j]=matrice[i][j] - (matrice[k][j]/pivot)*matrice[i][j];

  8. #7
    jojo150393

    Re : implémentation algo du pivot de Gauss

    Code:
    for (i=k+1; i<ligne; i++)
                        {
                         for (j=0; j< colone; j++)
    C'est jusqu'à n et par n-1 (ici ligne et colonne). Remplace par <=

  9. #8
    jojo150393

    Re : implémentation algo du pivot de Gauss

    C'est normale que les indices de cette ligne :
    Code:
    matrice[i][j]=matrice[i][j] - (matrice[k][j]/pivot)*matrice[i][j]
    ne correspondent pas aux indices de l'algo ?

  10. #9
    Jack
    Modérateur

    Re : implémentation algo du pivot de Gauss

    Citation Envoyé par 221 Voir le message
    j comprends c est de l ordre du souvenir lointain x) .

    le fait que le débogueur n'indique rien ne m aide pas trop, je vois vraiment pas ou ca déconne
    je ne vois rien d illogique dans :
    matrice[i][j]=matrice[i][j] - (matrice[k][j]/pivot)*matrice[i][j];
    Tu es sur de cette dernière ligne, parce que si on regarde l'algo que tu as donné, il me semble que c'est plutôt:
    matrice[i][j]=matrice[i][j] - (matrice[k][j]/pivot)*matrice[i][k];

    PS : grillé par jojo. Je n'avais pas vu ta réponse car j'avais du interrompre ma saisie pendant quelques minutes
    Dernière modification par Jack ; 23/12/2015 à 21h29.

  11. #10
    221

    Re : implémentation algo du pivot de Gauss

    merci jojo150393,
    j ai pas vraiment suivi l algo question indices
    enfaîte dans la ligne :

    matrice[i][j]=matrice[i][j] - (matrice[k][j]/pivot)*matrice[i][j]

    -matrice[k][j] est l élément j eme de ma linge K a savoir la ligne du pivot actuel ,pour chaque ligne on a un pivot donc k varie de 0 jusqu au nbr de ligne .
    -le pivot de chaque ligne est l element matrice[k][k] qui varie aussi de 0 jusqu a nbr de ligne.
    -matrice [i][j] est l élément j eme de la ligne i=k+1, ligne juste en dessous de la ligne du pivot ,il varie de i=k+1 jusqu a nbr ligne.
    en gros j ai ca donne
    nouvelle linge en dessous du pivot(éléments de la ligne)= éléments de la ligne en dessous du pivot -(éléments de la lignes du pivot /pivot lui meme)*éléments de la ligne du dessous

    j espère que c est lisible

  12. #11
    jojo150393

    Re : implémentation algo du pivot de Gauss

    Je comprend pas désolé. Il faut plus de clarté ou on pourra pas t'aider.

Discussions similaires

  1. Pivot de Gauss
    Par invite32e1bb91 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 15/06/2015, 08h50
  2. Pivot de gauss
    Par invitead69c65f dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 21/09/2014, 20h40
  3. Pivot de gauss.51
    Par invite9c5f7482 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 06/10/2013, 09h59
  4. pivot de gauss
    Par invitebfb3395d dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 08/05/2013, 15h42
  5. Pivot de Gauss
    Par invite8741c18e dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 25/10/2009, 20h48