A l'aiiiiide!!!!

Signaler
Messages postés
9
Date d'inscription
jeudi 1 septembre 2005
Statut
Membre
Dernière intervention
21 juin 2008
-
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
-
Salut j'essaie depuis un moment de créer un programme pouvant résoudre des systèmes du type Ax=b par la méthode de Gauss.

Toutefois j'ai des résultats éronnés lorsque le programme doit exécuter les fonctions de permutation de lignes et d'élimination (c'est comme ça que je nomme l'opération consistant à ajouter aux lignes en dessous de la ligne pivot une combinaison linéaire de celle ci).

Voici mes deux fonctions:

void permutation(int z,int ligne, int n, float *M,float *v)
{
     int i,j,k,l;
     float s,p;
    
     if(z!=ligne)
     {      for(i=z;i<n;i++)
            {   k=(z*n)+i;
                l=(ligne*n)+i;
                s = *(M+l);
                *(M+l) = *(M+k);
                *(M+k)=s;
            }
          
            p=*(v+ligne);*(v+ligne)=*(v+z);*(v+z)=p;
     }
      

}

z représente l'étape à laquelle on se trouve,ligne la ligne pivot, n la taille de la matrice,M le pointeur sur la matrice du système, v le pointeur sur le vecteur du second membre du système.

void elimination(int z, int n, float *M, float *v)
{
     int i,j,k,l,m,p;
     float r;
    
     for(i=z+1;i<n;i++)
     {    k=(i*n)+z;l=(z*n)+z;
          r = *(M+k) / *(M+l) ;
         
          for(j=z;j<n;j++)
          {
               m=(i*n)+j;p=(z*n)+j;
               *(M+m) = *(M+m) - (r*(*(M+p))) ;
          }
         
          *(v+i)=*(v+i)-(r*(*(v+z)));
     }

return ;
}    

z,n,M et v garde les mêmes définitions que précédemment.

Mon problème est que à l'exécution on dirait que ces procédures ne sont  pas (ou sont mal) exécutées

Voila , j'attends vos réactions
T

1 réponse

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
C'est le genre de truc qu'il faut pas refaire soit meme puisque d'autres l'ont deja fait, et surement bien mieux qu'on ne le ferait soi meme.