12.07.2015 Views

- Systèmes Linéaires et algorithme de Gauss1 - 1 Résolution de ...

- Systèmes Linéaires et algorithme de Gauss1 - 1 Résolution de ...

- Systèmes Linéaires et algorithme de Gauss1 - 1 Résolution de ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

IUT <strong>de</strong> Laval Année Universitaire 2007/2008Département Informatique, 2ème annéeAlgèbre linéaire <strong>et</strong> GéométrieTP- Systèmes Linéaires <strong>et</strong> <strong>algorithme</strong> <strong>de</strong> Gauss 1 -1 Résolution <strong>de</strong> systèmes linéairesUn système <strong>de</strong> p équations linéaires à n inconnues se présente sous la forme⎧a 11 x 1 + a 12 x 2 + · · · + a 1n x n = y 1⎪⎨ a 21 x 1 + a 22 x 2 + · · · + a 2n x n = y 2(E). . ⎪⎩a p1 x 1 + a p2 x 2 + · · · + a pn x n = y pEn utilisant le produit matriciel, on peut l’écrire <strong>de</strong> la manière suivante :⎛⎞ ⎛ ⎞ ⎛ ⎞a 11 a 12 . . . a 1n x 1 y 1a 21 a 22 . . . a 2nx 2⎜⎟ ⎜ ⎟⎝ . . . ⎠ ⎝ . ⎠ = y 2⎜ ⎟⎝ . ⎠ ⇔ Ax = ya p1 a p2 . . . a pn x n y pScilab possè<strong>de</strong> plusieurs primitives pour résoudre <strong>de</strong>s sytèmes d’équations linéaires commelinsolve(A,y) qui renvoie une solution <strong>de</strong> l’équation Ax + y = 0 (sans dire s’il y ena d’autres) ou la matrice vi<strong>de</strong> [ ] avec un warning s’il n’y a pas <strong>de</strong> solution. Attention,pour trouver une solution <strong>de</strong> Ax = y, il faudra donc taper linsolve(A,-y).Exercice 1 : Utiliser la comman<strong>de</strong> linsolve pour trouver une solution <strong>de</strong> l’équationAx = y avec⎛⎞ ⎛ ⎞−2 2 2 −1−2A = ⎜ 1 3 −1 −2⎟⎝ 2 1 −2 2 ⎠ y = ⎜ 1⎟⎝ 2 ⎠0 −1 0 10Calculer le produit <strong>de</strong> A par le vecteur u=[0 ;0 ;-1 ;0]. Que peut-on en déduire ?Que se passe-t-il si on remplace le 2ème coefficient <strong>de</strong> y par 0 ?Faire help linsolve pour plus d’informations.Pour résoudre un système carré (autant <strong>de</strong> lignes que <strong>de</strong> colonnes), on peut aussiutiliser l’inverse <strong>de</strong> la matrice, s’il existe. En eff<strong>et</strong>, dans ce cas, on a<strong>et</strong> il y a alors unicité <strong>de</strong> la solution.Ax = y ⇔ A −1 Ax = A −1 y ⇔ x = A −1 yAttention, si la matrice n’est pas inversible, alors il peut arriver n’importe quoi (pas<strong>de</strong> solution, infinité <strong>de</strong> solutions,. . .)1 Merci à Philippe Roux qui est l’auteur <strong>de</strong> ce TP


Exercice 2 : Soit E un espace vectoriel. Dans chacun <strong>de</strong>s cas suivants, on veut décomposerle vecteur y en combinaison linéaire <strong>de</strong> vecteurs <strong>de</strong> F. Pour celà :– écrire le système d’équations linéaires sur les coefficients d’une combinaison linéaire<strong>de</strong> vecteurs <strong>de</strong> F– résoudre ce système en utilisant linsolve puis l’inversion <strong>de</strong> matrice1. E = R 3 avec F = {a, b, c} où⎛a = ⎝−111⎞⎛⎠ b = ⎝2. E = C 3 avec F = {a, b, c} où⎛a = ⎝1−1i⎞⎛⎠ b = ⎝3. E = R 4 avec F = {a, b, c, d} oùa =⎛⎜⎝12−1−2⎞ ⎛⎟⎠ b = ⎜⎝230−11−111−11⎞⎛⎠ c = ⎝⎞⎞ ⎛⎟⎠ c = ⎜⎝⎛⎠ c = ⎝13−1011−1i1−1⎞⎛⎠ <strong>et</strong> y = ⎝⎞⎞ ⎛⎟⎠ d = ⎜⎝⎛⎠ <strong>et</strong> y = ⎝12142−3−11 + i1 − ii⎞⎠⎞ ⎛⎟⎠ <strong>et</strong> y = ⎜⎝⎞⎠714−12⎞⎟⎠Exercice 3 : Soient⎛A = ⎝2 0 2−1 2 11 1 2⎞⎛⎠ x = ⎝220⎞⎛⎠ y = Ax <strong>et</strong> u = ⎝1. Calculer y puis comparer le résultat <strong>de</strong> linsolve(A,-y) avec x.2. Montrer que tout vecteur <strong>de</strong> la forme z = x + λu avec λ ∈ R est solution<strong>de</strong>l’équation Az = y.3. Montrer qu’il n’y a pas d’autre solution à c<strong>et</strong>te équation (si z est solution, regar<strong>de</strong>rz − x . . . ).11−1⎞⎠2 Algorithme <strong>de</strong> GaussLa métho<strong>de</strong> la plus employée pour résoudre <strong>de</strong>s systèmes linéaires est la métho<strong>de</strong> <strong>de</strong>Gauss. Elle consiste à transformer le système (E), par une série <strong>de</strong> manipulations élémentairessur les équations du système (permutations, addition d’équations, multilication parun réel), en un système triangulaire qui est alors facile à résoudre :⎧a 11 x 1 + a 12 x 2 + · · · + a 1n x n = y 1⎪⎨ a 21 x 1 + a 22 x 2 + · · · + a 2n x n = y 2(E). . ⎪⎩a p1 x 1 + a p2 x 2 + · · · + a pn x n = y pGauss−−−−−→⎧⎪⎨⎪⎩ã 11 x 1 + ã 12 x 2 + · · · + ã 1n x n = ỹ 1ã 22 x 2 + · · · + ã 2n x n = ỹ 2. .. . .ã pn x n = ỹ pMatriciellement, il faudra appliquer les opérations élémentaires à la fois sur la matriceA <strong>et</strong> sur y.2


Voici un exemple très simple <strong>de</strong> mise en oeuvre <strong>de</strong> la métho<strong>de</strong> <strong>de</strong> Gauss :⎧⎨⎩⎧⎨⎩⎧⎨⎩système d’équationsA =x + y + z = 1 L 1⎛x − y + 2z = 2 L 2⎝−x + 2y + z = −4 L 3A =x + y + z = 1 L 1⎛− 2y + z = 1 L 2 − L 1⎝3y + 2z = −3 L 3 + L 1A =x + y + z = 1 L 1⎛− 2y + z = 1 L 2 − L 1⎝7z = −3 2˜L 3 + 3˜L 2version matricielle1 1 11 −1 2−1 2 11 1 10 −2 10 3 21 1 10 −2 10 0 7⎞⎛⎠ y = ⎝⎞⎛⎠ y = ⎝⎞⎛⎠ y = ⎝12−411−311−3⎞⎠⎞⎠⎞⎠C<strong>et</strong>te métho<strong>de</strong> se décompose en trois actions principales :– la recherche d’un pivot (la partie la plus difficile quand la première variable a pourcoefficient 0 dans la première équation non traitée)– l’élimination d’une variable dans les lignes suivantes (à partir du pivot choisi précé<strong>de</strong>mmment)– permutation <strong>de</strong>s équations le cas échéantEn utilisant l’écriture matricielle du système (E), on peut écrire une fonction qui appliquela métho<strong>de</strong> <strong>de</strong> Gauss au couple (A, y). Vous trouverez c<strong>et</strong>te fonction (qui sera à compléterdans l’exercice qui suit) sur le serveur sous le nom Gauss.sce. Lisez l’<strong>algorithme</strong><strong>et</strong> faites apparaître les différentes parties mentionnées ci-<strong>de</strong>ssus, puis faites l’exercice ci<strong>de</strong>ssous.Exercice 4 :1. Écrire la fonction Scilab permutation(A, y, i, l) qui permute les lignes i <strong>et</strong> l dusystème.2. Écrire la fonction Scilab elimination(A, y, i, j) qui élimine la variable x j <strong>de</strong>s lignesi + 1 à p.3. Tester la fonction obtenue en comparant le résultat donné par linsolve(A,-y)avant <strong>et</strong> après l’appel à la fonction Gauss(A,y) avec un jeu <strong>de</strong> “données tests”aléatoires :-->A=int(5*rand(4,4)-2),x=rand(5*rand(4,1)-2),y=A*x//jeu <strong>de</strong> test-->[B,z]=Gauss(A,y)-->linsolve(A,-y)//r\’esolution avant la m\’<strong>et</strong>ho<strong>de</strong> <strong>de</strong> Gauss-->linsolve(B,-z)//r\’esolution apr\‘es la m\’<strong>et</strong>ho<strong>de</strong> <strong>de</strong> Gauss3


Exercice 5 :1. Écrire une fonction scilab qui résoud un système linéaire à l’ai<strong>de</strong> <strong>de</strong> l’<strong>algorithme</strong><strong>de</strong> Gauss.2. Écrire une fonction scilab qui résoud un système linéaire à l’ai<strong>de</strong> <strong>de</strong> l’<strong>algorithme</strong><strong>de</strong> Gauss-Jordan.3. Écrire une fonction scilab qui calcule le déterminant d’une matrice carrée à l’ai<strong>de</strong><strong>de</strong> l’<strong>algorithme</strong> <strong>de</strong> Gauss.4. Écrire une fonction scilab qui calcule le rang d’une matrice à l’ai<strong>de</strong> <strong>de</strong> l’<strong>algorithme</strong><strong>de</strong> Gauss.5. Écrire une fonction scilab qui calcule l’inverse d’une matrice carrée à l’ai<strong>de</strong> <strong>de</strong>l’<strong>algorithme</strong> <strong>de</strong> Gauss-Jordan.4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!