Académique Documents
Professionnel Documents
Culture Documents
Le but de cet exercice est de montrer qu’un mauvais choix du pivot lors de l’élimination de Gauss peut
entraîner une perte de précision catastrophique pour des calculs en virgule flottante. On considère le
système suivant
1.00 · 10−4 · x1 + 1.00 · x2 = 1.00
(1)
1.00 · x1 + 1.00 · x2 = 2.00
1) Déterminer la solution exacte du système (1).
2) En utilisant une arithmétique flottante à 3 chiffres, appliquer l’élimination de Gauss avec 1.00·10−4
comme pivot. Le résultat obtenu correspond-il à la solution exacte ?
3) Changer les deux équations de (1) et réappliquer l’élimination de Gauss, en prenant cette fois
1.00 comme pivot. Comparer le nouveau résultat numérique avec celui de la question précédente.
1) À l’aide de l’équation (2), donner un algorithme récursif pour calculer le déterminant d’une ma-
trice A de taille n × n. Montrer que cet algorithme nécessite O(n!) opérations arithmétiques.
1
Montrer que det(E i ) = xi .
3) Montrer que
AE i = [a1 , . . . , ai−1 , b, ai+1 , . . . , an ] ,
où aj est la j ème colonne de la matrice A.
4) En déduire que
det(Ai )
xi = pour tout 1 ≤ i ≤ n,
det(A)
où Ai est la matrice obtenue en remplaçant la ième colonne de A par b.
6) Programmation Matlab :
6.a) Ecrire une fonction pour extraire des sous-matrices dont l’entête est :
function M = submat(A,i,j)
% submat élimine la i-ème ligne
% et la j-ème colonne de la matrice A
6.b) Ecrire une fonction detlaplace qui calcule le déterminant d’une matrice récursivement en
utilisant le développement de Laplace :
6.c) Ecrire une fonction cramer pour résoudre le système linéaire Ax = b en utilisant la règle
de Cramer :