#include "matrix.h" #define MAX 10 /* Algorithme de Rutishauser On decompose la matrice A en 2 matrices L et R, L etant une matrice triangulaire inferieure a diagonale unite et R une matrice triangulaire superieure telles que A = L R On calcule A1 = R L qui a les memes valeurs propres que A puis on decompose A1 = L1 R1 on calcule A2 = R1 L1, etc... Dans certaines conditions, on obtient une matrice qui devient triangulaire superieure ou les valeurs propres se trouvent sur la diagonale. */ char buf[60]; int lr (matrix A, matrix L, matrix R) { int i, j, k, n; real tr, tl; n = DIM(A,0); init_matrix (L, 0.0); init_matrix (R, 0.0); for (i=0; i 0.5) */ lf ) { lr (A, L, R); printf ("L : "); print_matrix (L); printf ("R : "); print_matrix (R); prod_matrix (L, R, A); printf ("LR: "); print_matrix (A); prod_matrix (R, L, A); printf ("A : "); print_matrix (A); gets (buf); er = 0; m++; for (i=0; i er) er = x; } } lf = 0; for (i=0; i 1e-4) lf = 1; } for (i=0; i