#include /* pour les entrer/sortie... */ #include /* pour les allocations dynamique... */ //#include "nrutil.h" #include /* Les prototypes de fonctions utilisé */ int Menu ( void ); float** Allocate_Mat_Memory ( int ); void Free_Mat_Memory ( float**, int ); void Affiche_Mat ( float**, int ); void Saisi_Mat ( float**, int ); void qrdcmp(float **A, int N, float *c, float *d, int *sing); /* Cette fonction permet d'allouer de la memoire pour une matrice qulquonque */ float** Allocate_Mat_Memory(int N) { int i; float **A = NULL; /* On fait l'allocation de memoire pour un vecteur de N cases, C'est un vecteur de pointeurs */ A = (float**) malloc( sizeof(float*) * N ); /* Si l'allocation à réussi, On fait une allocation de N cases pour chaque ligne */ if( A != NULL ) for( i=0; i=fabs(A[i][k])) { scale=scale; } else { scale=fabs(A[i][k]); } } if (scale == 0.0) { *sing=1; c[k]=d[k]=0.0; } else { for (i=k;i=0) { sigma=sqrt(sum); } else { sigma=-sqrt(sum); } A[k][k] += sigma; c[k]=sigma*A[k][k]; d[k] = -scale*sigma; for (j=k+1;j