Partage
  • Partager sur Facebook
  • Partager sur Twitter

methode gauss-seidel

10 juin 2008 à 9:53:44



j'ai un gros probleme avec les mèthodes itiratives,SVP j'aimerais savoir
pourquoi ce programme concernant la rèsolution d'un système linèaire par la methode de gauss-seidel ne tourne pas.

merci bien.



<code type="cpp"></code>



#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>


//void affiche(long *tableau, long tailleTableau);
float Xnp[3],Xn[3],Z[3];
void main(int argc, char *argv[])
{
FILE* fichier1 = NULL ;
FILE* fichier2 = NULL;

float a[3][3],b[3],m;
double eps=0.01;
int i,j,iter=0;

fichier1 = fopen("donnee.d", "r");
fichier2 = fopen("res.r", "w");

for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
a[i][j]=0.;
}
}
for(i=0;i<3;i++)

{

Xnp[i]=0;
Xn[i]=0;
Z[i]=0;
}
for(i=0;i<3;i++)
{
fscanf(fichier1, "%f %f %f\n", &a[i][0], &a[i][1], &a[i][2]);
}
for(i=0;i<3;i++)
{
fscanf(fichier1, "%ld\n", &b[i]);
}
iter=0;
m=10;
do
{if (m>eps)
{for (i=0;i<3;i++)
{
Xnp[i]=b[i];
for(j=0;j<i;j++)
{
Xnp[i]-=a[i][j]*Xnp[j];
}
for(j=i+1;j<3;j++)
{
Xnp[i]-=a[i][j]*Xn[j];
}
Xnp[i]/=a[i][i];

}
for(i=0;i<3;i++)
{
Z[i]=Xnp[i]-Xn[i];
Xn[i]=Xnp[i];
}

for(i=0;i<3;i++)
{
m+=Z[i]*Z[i];
}
m=sqrt(abs(m));
iter++;

{fprintf(fichier2, "%ld %f\n", iter,m);}
}
else
{for(i=0;i<3;i++)

{fprintf(fichier2, "%f\n", Xn[i]);}
}
}

while(iter<100);
fclose(fichier1);
fclose(fichier2);


}
  • Partager sur Facebook
  • Partager sur Twitter
10 juin 2008 à 9:54:53

Je pense que tu devrais indenter le code, utiliser les balises et poser ta question sur le forum C, puisqu'ici c'est pour le C++.
  • Partager sur Facebook
  • Partager sur Twitter
Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
10 juin 2008 à 13:47:53

Récidiviste xD
C'est vrai que même le code avec la balise serait complexe à lire, vu que tout est collé !
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
10 juin 2008 à 15:46:01

Bonjour,

Faudrait éviter de se foutre du monde..
Merci de faire un effort, ça sera le dernier avertissement.
  • Partager sur Facebook
  • Partager sur Twitter