for(i=k+1;i<n;i++)
{
p=a[i][k]/a[k][k];
for (j=k;j<n;j++)
{
a[i][j]=a[i][j]-p*a[k][j];
if (fabs(a[i][j])<eps)
a[i][j]=0;
}
b[i]=b[i]-p*b[k];
if(fabs(b[i])<eps)
b[i]=0;
}
}
float s=0;
for(i=n-1;i>=0;i--)
{
for(j=i+1;j<n;j++)s=s+a[i][j]*x[j];
x[i]=(b[i]-s)/a[i][i];
s=0;
}
printf("\n-------- Gauss avec pivot partiel --------\n");
printf("\n * La triangularisation avec les pivotations partielles :\n\n");
affichage(a,b,n);
printf("\n * La resolution donne :\n\n");
for (i=0;i<n;i++)
printf(" X_%d = %f ;\n",i+1,x[i]);
printf("\n");
}
*/
// -------------------------------------------------------------
// Résolution Par Gauss pivot total
// -------------------------------------------------------------
void gauss_pivot_total(float a[19][19],float b[19],int n)
{
float x[19],p,eps=1e-6,ref,pivot;
int ligne,colonne,pivot_sol[19],sol;
// vecteur de pivotation des solutions
for(i=0;i<n;i++) pivot_sol[i]=i;
for(k=0;k<n-1;k++)
{
// max pour le pivot total
ref=0;
for(i=k;i<n;i++)
for (j=k;j<n;j++)
if((a[i][j])>ref) {ref=(a[i][j]);ligne=i;colonne=j;}
printf("\n--------- Gauss avec pivot total ---------\n");
printf("\n * La triangularisation avec les pivotations totales :\n\n");
affichage(a,b,n);
printf("\n * La resolution donne :\n\n");
for (i=0;i<n;i++)
printf(" X_%d = %f ;\n",i+1,x[i]);
printf("\n");
}
/*void choix_de_la_methode()
{
printf("\n-----------------------------------------------\n");
printf("\n * Resolution de A x = B :\n");
printf("\n * Choix de la methode:\n");
Se sont des prototypes belle et bien. Ce que veux dire que le "main" est vide.
C'est vrai que je n'ai pas employé les bonne termes ("je crois", "je pense", ...)
________________________________________________________________________________
A.B. :
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
Quant on place le main à la fin du module, c'est bien pour éviter de déclarer les prototypes...
Je pense que le problème ici vient du fait d'un copié/collé de code sans vraiment comprendre ce qu'il fait.