A l'aiiiiide!!!!

Dorn17 Messages postés 9 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 21 juin 2008 - 21 juin 2008 à 21:57
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 - 21 juin 2008 à 22:06
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

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
21 juin 2008 à 22:06
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.
0
Rejoignez-nous