Vous êtes sur la page 1sur 2

MACS1 2010-2011 Analyse numérique

feuille d’exercices n˚2

Méthodes directes de résolution de systèmes linéaires I

Exercice 1 : Choix du pivot pour la méthode de Gauss.

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.

Exercice 2 : Méthode de Cramer.

Une façon de résoudre un système d’équations linéaires Ax = b est d’utiliser la méthode de


Cramer , qui donne une formule explicite de chaque composante xi du vecteur x. Rappelons que le
déterminant, d’une matrice carrée d’ordre n, peut être évalué à l’aide de la formule de Laplace :
X
n
det(A) = aij (−1)i+j det(Aij ) pour i ∈ [[1, n]], (2)
j=1

où Aij est la sous-matrice de taille (n − 1) × (n − 1) obtenue par la suppression de la ième ligne et la


j ème colonne.

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.

2) Soit (ei )1≤i≤n la base canonique de Rn et soit x la solution de l’équation Ax = b. Définissons la


matrice E i par
E i = [e1 , . . . , ei−1 , x, ei+1 , . . . , en ] .

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.

5) Quel est le coût de cet algorithme pour résoudre le système linéaire Ax = 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 :

function val = detlaplace(A)

6.c) Ecrire une fonction cramer pour résoudre le système linéaire Ax = b en utilisant la règle
de Cramer :

function cramer = cramer(A,b)

Vous aimerez peut-être aussi