Académique Documents
Professionnel Documents
Culture Documents
11
x
1
+
12
x
2
+ +
1n
x
n
=
1
22
x
2
+ +
2n
x
n
=
2
.
.
.
nn
x
n
=
n
.
Lunique solution est donne par :
_
_
x
n
=
n
nn
i n 1, 1, x
i
=
1
ii
_
i
n
j=i+1
ij
x
j
_
2
Exercice 5. Coder la mthode du pivot de Gauss dcrite ci-dessus.
Exercice 6. La tester avec le systme suivant :
_
_
x + 3y + 2z = 7
2x + y + 4z = 8
x + 2y + 3z = 0.1
,
o = 10
16
.
Rsoudre ce systme la main : que sest-il pass ?
Exercice 7. Pour viter cet cueil, on choisit ltape i le pivot de module maximal dans la colonne
i partir de la ligne i. crire une version modie de la mthode du pivot de Gauss prenant en
compte cette amlioration. La tester avec le systme prcdent.
Indication : on pourra fabriquer une fonction pivotmax(A,i) qui prend en arguments une matrice
A et un indice i, et retourne lindice de la ligne du pivot maximal (en module) de la colonne i sur
les lignes i et suivantes.
Cette mthode est alors appele algorithme du pivot de Gauss avec recherche du pivot partiel.
3 Et en Python?
numpy dispose dune fonction solve dans la bibliothque numpy.linalg pour rsoudre les systmes
linaires. On lutilise de la manire suivante :
>>> from numpy.linalg import solve
>>> solve([[10**(-16),3,2],[2,1,4],[-1,2,3]],[[7],[8],[0.1]])
array([[ 3.7 ],
[ 2.68],
[-0.52]])
4 Et en Scilab?
On crira en Scilab par exemple :
-->A = [10^(-16) 3 2;2 1 4;-1 2 3]
A =
1.000D-16 3. 2.
2. 1. 4.
- 1. 2. 3.
--> B = [7;8;0.1]
B =
3
7.
8.
0.1
-->A\B
ans =
3.7
2.68
- 0.52
5 Complexit
Exercice 8. valuer la complexit de lalgorithme du pivot de Gauss avec recherche de pivot partiel.
Exercice 9. On considre les matrices M
n
suivantes :
M
n
=
_
_
_
_
_
_
_
_
_
_
_
2 1 (0)
1 2 1
.
.
.
.
.
.
.
.
.
1 2 1
(0) 1 2
_
_
_
_
_
_
_
_
_
_
_
Coder une fonction M(n) qui renvoie la matrice correspondante de taille n.
Exercice 10. En chronomtrant le temps ncessaire pour rsoudre M
n
X =
t
(1, . . . , 1) pour n
{50, 100, 200, 400}, valider (ou invalider) le calcul de la complexit eectu auparavant.
Lillustrer graphiquement.
Comparer avec les commandes ad hoc en Python ou en Scilab.
4