1) Conception de la classe SystèmeEquations : Attributs : flottant A[][] // la matrice des coefficients et des termes connus entier n // le nombre de variables/équations Méthodes : SystèmeEquations(entier nVars) // constructeur n <- nVars A <- nouveau flottant[n][n + 1] affecterCoeff(entier i, j, flottant v) si 1 <= i <= n et 1 <= j <= n A[i][j] <- v affecterTermeConnu(entier i, flottant v) si 1 <= i <= n A[i][n + 1] <- v ... outre aux méthodes demandées par les exercices suivants 2.1) Échange(i, j) entier temp pour k de 1 à n + 1 temp <- A[i][k] A[i][k] <- A[j][k] A[j][k] <- temp 2.2) ProdScalaire(i, x) pour k de 1 à n + 1 A[i][k] <- A[i][k]/x 2.3) CombLin(i, j, x) pour k de 1 à n + 1 A[j][k] <- A[j][k] + x*A[i][k] 3) Élimination simplifiée : Pseudo-code haut niveau : pour i de 1 à n // Normalisation : diviser les deux membres de l'i-ème équation par le pivot A[i][i], de façon à ce que le pivot devienne 1 pour j de 1 à n si i <> j // Élimination de x_i : soustraire de la j-ème équation la i-ème équation multipliée par A[j][i], de façon à annuler A[j][i] Ceci donne, en développant les opérations : Résoudre() pour i de 1 à n // Normalisation : pivot <- A[i][i] ProdScalaire(i, 1/pivot) pour j de 1 à n si i <> j // Élimination de x_i : CombLin(i, j, -A[j][i]) 4) Pseudocode de l'algorithme de Gauss-Jordan (source : Wikipédia) : Gauss-Jordan r = 0 (r est l'indice de ligne du dernier pivot trouvé) Pour j de 1 jusqu'à m (j décrit tous les indices de colonnes) | Rechercher max(|A[i,j]|, r+1 ≤ i ≤ n). Noter k l'indice de ligne du maximum | (A[k,j] est le pivot) | Si A[k,j]≠0 alors | | r=r+1 | | Diviser la ligne k par A[k,j] | | Échanger les lignes k et r | | Pour i de 1 jusqu'à n | | | Si i≠r alors | | | | Soustraire à la ligne i la ligne r multipliée par A[i,j] (de façon à annuler A[i,j]) | | | Fin Si | | Fin Pour | Fin Si Fin Pour Fin Gauss-Jordan