Université Bordeaux 1 MHT 631 – Licence
Mathématiques Année 2016–2017
FEUILLE D’EXERCICES no6
Pivot de Gauss - Décomposition LU
Travail sur machine
Exercice 1 – Écrire une fonction Pivot0 qui applique l’algorithme du pivot
de Gauss sans permutation de lignes à une matrice A. Cette fonction pourra
s’appliquer à toute matrice A, y compris rectangulaire. Par contre, elle ne fera
pas de permutations sur les lignes. Si on arrive à un pivot nul, alors le calcul
devra s’arrêter.
En entrée, Pivot0 prendra une matrice Aquelconque à coefficients dans Q, et
donnera en sortie la décomposition LU sous forme compacte si aucun pivot nul
n’est rencontré, ou bien 0dans le cas où un tel pivot apparaît.
Exercice 2 – Écrire une fonction Pivot1 qui rend la même chose que Pivot0,
mais sous forme non compacte : la fonction rendra un couple (L, U)si aucun
pivot nul n’est rencontré.
Exercice 3 – Appliquer ces fonctions aux matrices de la feuille 5, exercices 1,2,3,
puis à des matrices de différentes tailles à coefficients dans Qchoisies au hasard.
Exercice 4 – Écrire une fonction Pivot2 qui étant donnée une matrice Aquel-
conque à coefficients dans Q, rend un triplet (P, L, U)correspondant à une dé-
composition P A =LU.
Là encore, appliquer cette fonction aux matrices de la feuille 5, et à des matrices
prises au hasard.
Exercice 5 – Écrire une fonction TriangleInf qui résout un système triangulaire
LX =B, où L T 1
n,inf, puis une fonction TriangleSup qui résout un système
triangulaire UX =B, où U∈ Tn,sup.
Exercice 6 – Écrire les fonctions suivantes, dans le cas où Aest une matrice
carrée inversible à coefficients dans Q.
1) Resout0(A,B) résout l’équation AX =Bet rend une décomposition P A =
LU (dans cette fonction, appliquer Pivot2 à la matrice (A|B)), puis utiliser
TriangleSup).
2) Resout1(P,L,U,B) suppose connue une décomposition P A =LU et résout
l’équation AX =B.
3) Appliquer ces fonctions aux exemples de la feuille 5et à des exemples pris au
hasard.
Exercice 7 – Dans cet exercice, on souhaite observer la taille des coefficients des
matrices qui interviennent dans l’agorithme du pivot de Gauss, lorsqu’on travaille
dans Mn(Q), et expérimenter différentes stratégies visant à minimiser cette taille.
Soient aet bdes entiers non nuls tels que pgcd(a, b) = 1 et b > 0. On définit la
taille de a/b :t(a/b) = max(|a|, b).
Soit A= (aij )Mn(Q). On définit la taille de A:
T(A) = max
i,j t(aij ).
1) Programmer l’algorithme du pivot partiel, en choisissant à chaque étape le
pivot le plus grand possible (au sens de la valeur absolue) situé sur la colonne
courante.
2) Programmer l’algorithme du pivot total en choisissant à chaque étape kle
pivot le plus grand possible parmi les coefficients (i, j)i>ket j>k.
3) Comparer sur des exemples pris au hasard la taille des matrices obtenues par
les trois algorithmes (pivot normal, pivot partiel, pivot total).
4) Changeons de stratégie. Au lieu de prendre le pivot le plus grand possible,
programmer les pivot partiel et total en choisissant à chaque fois le pivot non nul
le plus petit possible, au sens de la taille t.
5) Comparer les tailles des matrices obtenues par toutes les stratégies utilisées.
6) Soit P AQ =LU la décomposition obtenue après application de l’algorithme
du pivot total. Écrire une fonction Resout2(P,Q,L,U,B) qui résout l’équation
AX =B.
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !