[PDF] TP 8/9 : Implémentation de l’algorithme du pivot de Gauss



Previous PDF Next PDF







METHODE DU PIVOT DE GAUSS - {toutes les Maths}

L™idØe de la mØthode du pivot de Gauss consiste donc à remplacer le systŁme (S) par une matrice faisant intervenir à la fois des coe¢ cients des inconnues et le second membre du systŁme, exactement dans l™ordre dans lequel ils apparaissent Cette matrice s™appelle la matrice augmentØe associØe à (S):Dans notre exemple, elle s



Pivot de Gauss

1) En s'inspirant de la procédure "resolution" mettant en place le pivot de Gauss, écrire une fonction Det_Pivot qui prend pour argument une matrice carrée et qui retourne le déterminant de cette matrice en utilisant la méthode du pivot de Gauss Calculer le nombre d'opérations nécessaires pour calculer le déterminant d'une matrice de



Calcul matriciel et pivot de Gauss 0 Rappels sur les matrices

Calcul matriciel et pivot de Gauss Motivation : Le but de la premi ere partie du T P (partie 1 et 2) est de manipuler les matrices pour se familiariser avec elles Dans un second temps, vous allez impl ementer les algorithmes de r esolutions de syst emes lin eaires et d’op erations el ementaires sur les matrices (vraisemblablement



Analyse numérique TP 7 : Pivot de Gauss 1 Méthode du pivot de

Analyse numérique TP 7 : Pivot de Gauss 1 Méthode du pivot de Gauss (pivot naturel) 1 1 Position du problème On cherche à résoudre un système de n équations à n inconnues, de la forme : AX = Y avec A une matrice carrée de taille n et Y un vecteur colonne de longueur n Par exemple ( n = 3) : A = 2 4 2 1 3 3 5 4 1 3 1 3 5; Y = 2 4 1 4 1



TP 8/9 : Implémentation de l’algorithme du pivot de Gauss

ECE1-B 2017-2018 I TesterlafonctioncalcInv surlamatriceP Commenterlerésultatobtenu IV Déterminer si une matrice est inversible par pivot de Gauss IV 1 Trouverlepivot



The Gauss-Jordan Elimination Algorithm

De nitions The Algorithm Solutions of Linear Systems Answering Existence and Uniqueness questions Pivots Leading Entries and Pivot Positions De nition A pivot position of a matrix A is a location that corresponds to a leading entry of the reduced row echelon form of A, i e , a ij is in a pivot position if an only if RREF(A) ij = 1



La Méthode de Gauss/ Gauss-Jordan - Abbes AZZI

équations de façon à placer dans la case pivot le plus grand nombre en valeur absolue Autre chose, la méthode Gauss-Jordan peut aussi être utilisée pour trouver l’inverse d’une matrice Pour cela, il suffit de poser la matrice en question côte à côte avec la matrice identité (AI) et faire les



Gaussian-elimination

0 0 -2 0 -2 0 -8 0 0 0 0 0 1 0 0 0 However, it would be nice to show the individual steps of this process This requires some programming 2 Code to interactively visualize Gaussian elimination



Metode Numerice

Lucrarea de laborator nr 5 I Scopul lucr ării Aplica ţii ale elimin ării gaussiene cu pivotare par ţial ă: - calculul determinantului unei matrice - rezolvarea sistemelor liniare - calculul inversei unei matrice II Con ţinutul lucr ării 1 Prezentarea metodei de eliminare Gauss cu pivotare par ţial ă 2



COLLE 14 Mathématiques

Echelonnement Matrice échelonnée par lignes Pivot, rang d’un système (d’une matrice) Inconnues principales, inconnues secondaires Algorithme de Gauss : Toute matrice est équivalente par lignes à une matrice échelonnée par lignes

[PDF] exemple de questionnaire etude de marché

[PDF] matrice méthode de cramer

[PDF] etude de marché d'un projet pdf

[PDF] questionnaire découverte entreprise

[PDF] echelle de qualité de vie

[PDF] méthode de factorisation lu

[PDF] echelle de mesure qualité de vie

[PDF] methode de gauss wikipedia

[PDF] questionnaire qualite de vie

[PDF] échelle qualité de vie psychiatrie

[PDF] questionnaire qualité de vie sf 36

[PDF] algorithme de horner matlab

[PDF] algorithme de horner en c

[PDF] module 1 rencontres 1ére année

[PDF] exposé sur le film intouchable

TP 8/9 : Implémentation de l’algorithme du pivot de Gauss ECE1-B2017-2018TP 8/9 : Implémentation de l"algorithme du pivot de Gauss

Pré-requis: avant d"entamer ce TP, il faut avoir lu / compris / effectué les manipulations présentes

dans le cours " Chapitre 7 : Structur esitérativ esScilab» ainsi que les précédents. IDans le dossierInfo_1a, créer le dossierTP_8_9.

I. Pivot de Gauss : rappel théorique

Le but de ce TP est d"implémenter enScilabl"algorithme du pivot de Gauss. Pour rappel, cet algorithme a été utilisé dans deux chapitres. CH 12 : pour calculer les solutions d"un système linéaire. CH 13 : pour calculer l"inverse d"une matrice (ce qui revient à résoudre un système ...)

Nous implémentons ici l"algorithme du pivot de Gauss dans le but de calculer l"inverse d"une matrice.

Nous optons ici pour la présentation matricielle de l"algorithme, bien plus adaptée àScilabque la

présentation utilisant des systèmes linéaires.Données d"entrée :une matriceM2Mn(R). (?)

Principe de l"algorithme :on peut le décrire en 3 étapes. Première étape: mise sous forme triangulaire. Partant du couple(M;In), on applique à ces deux matrices une suite d"opérations sur

les lignes permettant de transformerMen une matrice triangulaire supérieureT.(M;In)Étape19999999K(T;P)Deuxième étape: mise sous forme diagonale.

Partant du couple(T;N), on applique à ces deux matrices une suite d"opérations sur

les lignes permettant de transformerTen une matrice diagonale.(T;P)Étape29999999K(;R)Troisième étape: mise sous forme identité.

Partant du couple(;N), il s"agit de multiplier chaque ligneLde(et donc deN)

par l"inverse du coefficient diagonal présent surL.(;R)Étape39999999K(In;U)Sortie :la matriceU2Mn(R), inverse de la matriceMen entrée.(?)Dans un premier temps, le programme ne sera appliqué qu"à des matrices in versibles.Il sera ensuite

modifié pour repérer, au cours de l"exécution, les matrices qui ne sont pas inversibles.1 ECE1-B2017-2018II. Implémentation de l"algorithme du pivot de Gauss II.0. Manipulation de matrices en Scilab : quelques rappels

Dans la suite, on considère la matriceS=0

B

B@1 3 2 5

7 41 0

3 81 3

15 4 61

C CAIDans la consoleScilab, stocker cette matrice dans une variableS.

IPar quel appel accède-t-on au coefficient(3;2)de la matriceS?IOn souhaite remplacer le coefficient(3;2)de la matriceSpar le réel2.

Quel appel doit-on utiliser?IPar quel appel accède-t-on à la3èmecolonne de la matriceS?IPar quel appel accède-t-on à la2èmeligne de la matriceS?IOn souhaite effectuer, sur la matriceS, l"opération élémentaire suivante :L2 L27L1.

Quel appel doit-on réaliser?IPar quel appel peut-on récupérer la taille (= 44) de la matriceS?

(on notera que le résultat apparaît sous forme d"une vecteur ligne de taille12)IPar quel appel peut-on récupérer le nombre de lignes de (= 4) de la matriceS?IPar quel appel peut-on récupérer le nombre de colonnes de (= 4) de la matriceS?IPar quel appel peut-on obtenir la matrice identité d"ordre4?

Stocker cette matrice dans la variableI.2

ECE1-B2017-2018II.1. Première étape de l"algorithme

La première étape de l"algorithme consiste à transformer, par opérations élémentaires sur les lignes, la

matriceMen une matrice sous forme triangulaire supérieure.

Pour ce faire :

1)on commence par placer des0sous la diagonale dans la première colonne,

2)on place ensuite des0sous la diagonale dans la deuxième colonne,

n-1)on place enfin des0sous la diagonale dans la(n1)èmecolonne.

On rappelle que ces opérations doivent être effectuées en parallèle sur deux matrices (MetInini-

tialement). Graphiquement, l"idée est donc la suivante (on représente uniquement les modifications

successives sur la matriceMet pas surInpour conserver de la lisibilité).0 B

BBBBBBBBB@m

1;1::: ::: ::: ::: m1;n......

m n;1::: ::: ::: ::: mn;n1 C

CCCCCCCCCA99K0

B

BBBBBBBBB@m

1;1::: ::: ::: ::: m1;n

0::: ::: :::...

0::: ::: :::1

C

CCCCCCCCCA99K0

B

BBBBBBBBB@m

1;1::: ::: ::: ::: m1;n

0... ...0::: :::...

0 0::: :::1

C

CCCCCCCCCA99K0

B

BBBBBBBBB@m

1;1::: ::: ::: ::: m1;n

0... ...0... ......0:::...

0 0 0:::1

C

CCCCCCCCCA99K::: ::: :::99K0

B

BBBBBBBBB@m

1;1::: ::: ::: ::: m1;n

0... ...0... ......0......

0 0 0 (0)1

C

CCCCCCCCCALa matrice obtenue à la fin de cette étape est sous forme triangulaire supérieure.

Dans la suite, on considère la matriceA=0

B

B@1 3 2 5

11 1 2

2 41 3

3 5 4 61

C

CAque l"on utilsera pour effectuer les tests

sur nos programmes.

IStocker cette matrice dans une variableA.

IProgrammer la fonctionzeroColSousDiagqui :

prend en paramètre un numéro de colonnej, une matriceM, une matriceN, renvoie en sortie le couple de matrices[G,D]obtenu comme suit : a)Gcontient initialement la matriceM, b)Dcontient initialement la matriceN,

c)Gest modifiée afin d"obtenir, par une succession d"opérations élémentaires, une matrice dont

les coefficients sous-diagonaux de lajèmecolonne sont tous nuls, (on devra utiliser une structure itérative)

d)Dest modifiée par application successive des mêmes opérations élémentaires que surG.

ITester la fonctionzeroColSousDiagsur le couple(A,I)pour la colonne1. On stockera le résultat dans le couple[G,D]. Noter l"appel correspondant.3 ECE1-B2017-2018IOn souhaite maintenant testerzeroColSousDiagsur le couple(G,D)pour la colonne2. Noter l"appel correspondant.IProgrammer la fonctiontransfTriangSupqui : prend en paramètre une matriceM, une matriceN, renvoie en sortie le couple de matrices[G,D]obtenu comme suit : a)Gcontient initialement la matriceM, b)Dcontient initialement la matriceN,

c)Gest modifiée afin d"obtenir une matrice triangulaire supérieure. On devra faire appel à la

fonctionzeroColSousDiagpour les colonnes de la matriceMinitiale. (on devra utiliser une structure itérative)

d)Dest modifiée par application successive des mêmes opérations élémentaires que surG.

ITester votre fonctiontransfTriangSupsur le couple(A,I).

Noter ci-dessous le résultat obtenu.IComparer ce résultat avec le résultat obtenu lorsque vous effectuez à la main cette première étape

de l"algorithme.4 ECE1-B2017-2018II.2. Deuxième étape de l"algorithme

La première étape de l"algorithme a consisté à transformer le couple(A;In)de matrices en un couple

(T;P)où la matriceTest une matrice triangulaire supérieure. La deuxième étape de l"algorithme

consiste à transformer, par opérations élémentaires sur les lignes, la matriceTen une matrice sous

forme triangulaire diagonale.

Pour ce faire :

1)on commence par placer des0au-dessus de la diagonale dans la dernière colonne,

2)on place ensuite des0au-dessus de la diagonale dans l"avant dernière colonne,

n-1)on place enfin des0au-dessus de la diagonale dans la1èrecolonne.

On rappelle que ces opérations doivent être effectuées en parallèle sur deux matrices (TetPini-

tialement). Graphiquement, l"idée est donc la suivante (on représente uniquement les modifications

successives sur la matriceTet pas surPpour conserver de la lisibilité).0 B

BBBBBBBBB@m

1;1::: ::: ::: ::: m1;n

0... ...0... ......0......

0 0 0 (0)1

C

CCCCCCCCCA99K0

B

BBBBBBBBB@m

1;1::: ::: :::0

0......

...0...... ......0...... ............0

0 0 0 (0)1

C

CCCCCCCCCA99K0

B

BBBBBBBBB@m

1;1::: :::0 0

0.........

...0 ...... ......0...0... ............0

0 0 0 (0)1

C

CCCCCCCCCA99K::: ::: :::99K0

B

BBBBBBBBB@m

1;10::: :::0 0

0...(0)......

...0............ ......0...0... ............0

0 0 0 (0)1

C CCCCCCCCCALa matrice obtenue à la fin de cette étape est sous forme diagonale. On testera les programmes qui suivent sur la matriceAintroduite précédemment :A=0 B

B@1 3 2 5

11 1 2

2 41 3

3 5 4 61

C CA. On l"utilsera de nouveau pour effectuer les tests sur nos programmes.

IProgrammer la fonctionzeroColSurDiagqui :

prend en paramètre un numéro de colonnej, une matriceT, une matriceP, renvoie en sortie le couple de matrices[G,D]obtenu comme suit : a)Gcontient initialement la matriceT, b)Dcontient initialement la matriceP,

c)Gest modifiée afin d"obtenir, par une succession d"opérations élémentaires, une matrice dont

les coefficients sur-diagonaux de lajèmecolonne sont tous nuls, (on devra utiliser une structure itérative)

d)Dest modifiée par application successive des mêmes opérations élémentaires que surG.

IOn note(T,P)le couple obtenu par application de la fonctiontransfTriangSupsur le couple (A,I). Tester votre fonctionzeroColSurDiagsur(T,P)pour la colonne4. On stockera le résultat dans le couple[G,D]. Noter l"appel correspondant.5 ECE1-B2017-2018IOn souhaite maintenant testerzeroColSurDiagsur le couple(G,D)pour la colonne3.

On stockera de nouveau le résultat dans le couple[G,D]. Noter l"appel correspondant.IProgrammer la fonctiontransfDiagqui :

prend en paramètre une matriceT(supposée triangulaire supérieure) et une matriceP, renvoie en sortie le couple de matrices[G,D]obtenu comme suit : a)Gcontient initialement la matriceT, b)Dcontient initialement la matriceP,

c)Gest modifiée afin d"obtenir une matrice triangulaire supérieure. On devra faire appel à la

fonctionzeroColSurDiagpour les colonnes de la matriceTinitiale. (on devra utiliser une structure itérative)

d)Dest modifiée par application successive des mêmes opérations élémentaires que surG.

ITester votre fonctiontransfDiagsur le couple(T,P)défini précédemment.

Stocker le résultat obtenu dans le couple[Delta,R]. Noter ci-dessous le résultat obtenu.IComparer ce résultat avec le résultat obtenu lorsque vous effectuer à la main cette première étape

de l"algorithme.6 ECE1-B2017-2018II.3. Troisième étape de l"algorithme

La deuxième étape de l"algorithme consiste à transformer, par opérations élémentaires sur les lignes, le

couple(T;P)en le couple(;R)oùest une matrice sous forme triangulaire diagonale. La troisième

étape de l"algorithme consiste à transformer, par opérations élémentaires sur les lignes, la matrice

diagonaleen la matriceIn. On rappelle que ces opérations doivent être effectuées en parallèle sur

deux matrices (etRinitialement). Pour ce faire, il suffit de diviser chaque ligne par son terme diagonal.

(on rappelle que si la matrice initialeAest inversible, tous les termes diagonaux de la matrice diagonalesont non nuls)

IPar quel appelScilabpeut-on effectuer l"opération élémentaireL1 12

L1?IProgrammer la fonctiontransfIdqui :

prend en paramètre une matriceDelta(supposée diagonale) et une matriceR, renvoie en sortie le couple de matrices[G,D]obtenu comme suit : a)Gcontient initialement la matriceDelta, b)Dcontient initialement la matriceR, c)Gest modifiée afin d"obtenir la matrice identité.

d)Dest modifiée par application successive des mêmes opérations élémentaires que surG.

ITester votre fonctiontransfIdsur le couple(Delta,R)défini précédemment.

Stocker le résultat obtenu dans le couple[L,U]. Noter ci-dessous le résultat obtenu.IQue doit contenir la matriceL?IVérifier que la matriceUest bien l"inverse de la matriceAinitiale.

Noter ci-dessous la commande utilisée pour ce test.7 ECE1-B2017-2018III. Calculer l"inverse d"une matrice par pivot de Gauss

Toutes les étapes de l"algorithme du pivot de Gauss étant codées, il ne reste plus qu"à les effectuer de

manière successive pour obtenir l"algorithme permettant le calcul de l"inverse d"une matrice.

IProgrammer la fonctioncalcInvqui :

prend en paramètre une matriceM(supposée inversible), et renvoie en sortie la matriceInv, inverse de la matriceM. IOn rappelle que l"on a introduit précédemment la matriceA=0 B

B@1 3 2 5

11 1 2

2 41 3

3 5 4 61

C CA. Tester la fonctioncalcInvsur la matriceA. On stockera le résultat dans une variableV. Noter le résultat obtenu.IQuel appel doit-on réaliser pour vérifier queVest l"inverse deA? Commenter le résultat obtenu par cet appel.IStocker la matrice0 B

B@1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 11

C

CAdans une variableJ.

ITester la fonctioncalcInvsur la matriceJ. Commenter le résultat obtenu.IOn considère la matriceP=0 1

1 0. Est-elle inversible? La stocker dans une variableP.8

ECE1-B2017-2018ITester la fonctioncalcInvsur la matriceP. Commenter le résultat obtenu.IV. Déterminer si une matrice est inversible par pivot de Gauss

IV.1. Trouver le pivot

Une phase importante de l"algorithme a été oubliée!

Lors de la mise sous forme triangulaire supérieure, nous avons choisi comme pivot à lajèmephase le

coefficient diagonal en position(j;j).

Cependant cet élément peut être nul et ce même si la matrice considérée est bien inversible.

(cf matricePprécédente)

En fait, le pivot de cetjèmephase doit être choisi parmi les éléments sous-diagonaux non nuls. Le

plus simple, algorithmiquement parlant, est de choisir (s"il existe) le premier élément sous-diagonal

non nul comme pivot.

IProgrammer la fonctiontrouvePivotqui :

prend en paramètre un numéro de colonnej, une matriceM, renvoie en sortie l"entierpcalculant la ligne du premier coefficient sous-diagonal non nul de la j

èmecolonne deM,

s"il n"y a pas de tel coefficient,pdevra contenirn+1oùnest le nombre de lignes de la matrice. ITester la fonctiontrouvePivotsur la matricePprécédente (en colonne1).

IV.2. Échanger deux lignes

IOn considère le programme suivant.1x = grand(1,1,"uin",1,8)

2y = grand(1,1,"uin",1,8)

3disp("La valeur de x est de : " + string(x))

4disp("et la valeur de y est de : " + string(y))

Copier ce programme dans un nouvel ongletSciNotes. Que réalise-t-il?9

ECE1-B2017-2018IÀ la fin de ce programme, ajouter une série d"instructions permettant de mettre à jour le contenu

des variablesxetyde sorte que : xcontienne la valeur initiale dey, ycontienne la valeur initiale dex.

INoter ci-dessous les commandes permettant d"échanger les contenus de la1èreet3èmeligne de la

matriceU.IProgrammer la fonctionechangeLignesqui : prend en paramètre deux matricesMetNainsi que deux entiersi1eti2, renvoie en sortie le couple[G,D]obtenu en échangeant les contenus de lai1èmeeti2èmeligne des matricesMetN. ITester la fonctionechangeLignessur le couple de matrice(U,J).

Noter ci-dessous l"appel permettant de stocker le résultat dans un couple de matrice[A,B].IV.3. Modification des programmes précédents

IModifier la fonctiontransfTriangSupcomme suit :

avant la structure itérative, ajouter une variablejcontenant initialement0,

avant la structure itérative, ajouter une variablepcontenant initialement le résultat detrouvePivot

appliqué au couple(M,N), dans la structure itérative, et avant d"effectuer l"appel dezeroColSousDiag, procéder à un échange de ligne adéquat sur les matricesGetD, les variablespetjdoivent être mises à jour dans la structure itérative,

modifier la structure itérative de telle sorte que l"itération s"arrête sipvautn+ 1ou sijvaut

n+ 1(oùnest le nombre de colonnes de la matriceG), ajouter une variableboolen sortie de boucle qui contientTsi la matriceMest inversible etF sinon. Cette variablebooldevra apparaître comme un paramètre de sortie detransfTriangSup.

IModifier la fonctioncalcInvafin :

qu"elle affiche le messageLa matrice n"est pas inversiblesi la matrice considérée n"est pas inversible, qu"elle calcule l"inverse de la matrice considérée si elle est inversible.10quotesdbs_dbs33.pdfusesText_39