[PDF] Résolution numérique de systèmes linéaires





Previous PDF Next PDF



Décomposition de Dunford et réduction de Jordan

La trigonalisation : transformer une matrice en une matrice triangulaire. Voici une méthode basique pour trouver la réduite de Jordan d'une matrice A ...



Triangularisation jordanisation

https://www.math.univ-paris13.fr/~schwartz/L2/jordan.pdf



1 Introduction 2 Théorème de Jordan

Théorème 1 (Jordan) Soit u un endomorphisme de E dont le polynôme La seconde méthode consiste à appliquer les théorèmes de Cayley-.



CORRECTION DU TD 3 Exercice 1

et qu'elle est aussi décomposable en blocs de Jordan dans ce même espace. 4). Trigonalisation. Pour trouver une base dans laquelle s'exprime sous la forme 



Diagonalisation et trigonalisation 1 Valeurs propres vecteurs

En complément (hors programme) : le théor`eme de Jordan en rapport avec la trigonalisation. 1 Valeurs propres vecteurs propres et polynôme caractéristique.



Technique de la réduite de Jordan

Partie I : Quelques mots sur la Trigonalisation CNS de Trigonalisation : ... Partie II : Méthode de la réduite de Jordan.



Fiche technique 5 - Diagonalisation trigonalisation

Pour trigonaliser une matrice il n'y a pas de méthode globale à connaître a priori. Trigonalisation de A en réduite de Jordan :.



Résolution numérique de systèmes linéaires

solution unique) nous allons utiliser des méthodes dites réduction de Gauss-Jordan



La classification des endomorphismes. Le théorème de Jordan

21 oct. 2021 2 Diagonalisation et trigonalisation. 8. 2.1 Sous-espaces en sommes directe ... 5 Le théorème de Jordan et la décomposition de Dunford.



Forme normale de Jordan dune matrice

FORME NORMALE DE JORDAN. 5. BLOCS INDÉPENDANTS. Pour l'algorithme de trigonalisation il n'est pas nécessaire que les valeurs propres.



Triangularisation jordanisation exponentielle de matrices

Triangularisation jordanisation exponentielle de matrices 1 Triangularisation Soient E un espace vectoriel de dimension n et ? un endomorphisme de E de matrice A dans une base donn´ee On suppose que le polynˆome caract´eristique est scind´e et soit ? 1 ? n les valeurs propres (non n´ecessairement 2 a 2 distinctes) Th´eor`eme 1 1



Décomposition de Dunford et réduction de Jordan - e Math

• La trigonalisation : transformer une matrice en une matrice triangulaire • La décomposition de Dunford : écrire une matrice comme la somme d’une matrice diagonali-sable et d’une matrice nilpotente • La réduction de Jordan : transformer une matrice en une matrice diagonale par blocs



Technique de la réduite de Jordan - Ensah-community

T particulièrement simple dîte de Jordan de la forme suivante : i) Tous les coeffs ne se trouvant ni sur la diagonale de T ni sur la diagonale d’au dessus sont nuls ii) Sur la diagonale on écrit les valeurs propres inscrites autant de fois que l’ordre de multiplicité iii) Sur la diagonale juste au dessus on a des 0 et des 1



Technique de la réduite de Jordan - reussirenmaths

Technique de la réduite de Jordan Partie I : Quelques mots sur la Trigonalisation Un endomorphisme f d’un espae vetoriel E sur un orps K est trigonalisa le si il existe une base sur laquelle la matrice de f est triangulaire supérieure Une matrice carrée A de taille n est dîte trigonalisable quand il existe une matrice triangulaire



Fiche technique 5 - Diagonalisation trigonalisation

PSI Dupuy de Lôme – Fiche technique 5 : diagonalisation trigonalisation - 1 - Diagonalisation trigonalisation Diagonalisation de matrices • Le principe pour diagonaliser en pratique une matrice est simple : calculer les espaces propres de la matrice et en déterminer des bases

Résolution numérique de systèmes linéaires 1

I ntroductionDanslechapitreprécédent,nousavonsétudiécommentilétaitpossibled"approcherune

racine d"une fonction grâce à différentes méthodes numériques. Il est possible d"étendre

ce genre de méthode à des systèmes d"équations, mais cela présente des difficultés impor-

tantes. Dans ce chapitre, nous nous intéresserons au cas, plus simple, de la résolution d"un système d"équationslinéaires. Ce problème n"en est pas moins assez général, car même si un problème scientifique

est non-linéaire, il n"est pas rare que l"on puisse le " linéariser » au voisinage d"un point

intéressant, et les méthodes que nous verrons ici sont donc très souvent utiles. On cherchera donc, dans ce chapitre, à résoudre un système ditde Cramer, tel que :

8>>>>>>><

>>>>>>:¡4aÅ4bÅ8c¡8dAE12

¡aÅbÅ2cÅ2dAE11

a¡eAE¡6

¡3a¡6c¡3eAE¡12

¡a¡c¡2dÅ2eAE5

c"est-à-dire déterminer lesa,b,c,detequi satisfassent aux cinq équations précédentes.

Un tel problème peut être réécrit sous une forme matricielle, de la formeA¢XAEB, oùA

est une matrice carrée,Xun vecteur contenant les différentes inconnues, etBun vecteur également. Par exemple, le problème suivant est équivalent à l"équation matricielle : 2 6

6664-4 4 8 -8 0

-1 1 2 2 0

1 0 0 0 -1

-3 0 -6 0 -3 -1 0 -1 -2 23 7

7775¢2

6 6664a
b c d e3 7

7775AE2

6

666412

11 ¡6

¡12

53
7 7775
On cherche donc à déterminer unXqui vérifieA¢XAEB. Dans le cas oùAest une matrice inversible, il existe un uniqueX, égal àA¡1B, qui convienne. SiAn"est pas inversible, il peut n"y avoir aucune solution, ou une infinité de solutions au problème. Pour déterminerX(on s"attachera particulièrement au cas oùAest inversible et la solution unique), nous allons utiliser des méthodes ditesréduction de Gauss-Jordan, ou méthode du"pivot de Gauss». Elles consistent à effectuer des opérations sur les lignes d"une matrice dans le but de lui donner une forme particulière. Dans un premier temps, nous présenterons les différentes opérations que l"on peut effectuer, et une façon de les écrire en Python. Dans un second temps nous étudierons

les réductions proprement dites, et leurs différents usages, qui ne sont pas limités à la

résolution de systèmes linéaires.2O pérationss urle smat ricesc arrées 2.1

R appelss url ama nipulationde mat rices

Nous utiliserons, dans ce cours, principalement desnumpy.arraypour représenter vecteurs et matrices, car ils permettent des manipulations aisées.

On définira par exemple la matrice A de l"exemple de la façon suivante :A= numpy .array( [ [- 4,4 ,8 ,- 8,0 ],

1 1 2 2 0 1 0 0 0 1 3 0 6 0 3 1 0 1 2 2 Rappelons queA[i, j]désigne alors l"élément situé à laieligne et lajecolonne de la matrice A, Pour obtenir la sous-matrice constitué des lignes comprises entrei1(incluse) eti2 (exclue) et des colonnes comprises entrej1(incluse) etj2(exclue), on peut utiliser un " slice » et écrireA[i1:i2, j1:j2]. Notamment,A[i,:]etA[:,j]désignent respectivement laieligne et lajecolonne de cette même matriceA. Lorsque l"on souhaite désigner une ligne, on écrira plus simplement A[i]. Enfin,A.shapepermet d"obtenir les dimensions d"unnumpy.arrayA, sous la forme d"un tuple contenant autant d"éléments qu"il y a de dimensions. Pour ce qui est du vecteur colonne B, on écrira :B= numpy .array( [ [12 ], 11 6 12 5 Ici, le vecteur colonneBest représenté par unarrayà deux dimensions (nlignes et une unique colonne). On pourrait tout aussi bien le définir comme un tableau à une seule dimension, mais ce serait laisser ànumpyle soin de déterminer si on parle d"un vecteur-ligne ou vecteur-colonne, ce qui peut parfois poser des problèmes, comme on l"a vu. 33

2.2T ransvectionL"opération detransvectionsur une matriceMconsiste à ajouter à laieligne®fois laje

ligne, aveci6AEjet®6AE0. On notera cette transformation L iÃLiÅ®Lj Cette opération revient à multiplier la matriceMà gauche par la matrice inversible suivante, où le coefficient®(seul coefficient non-nul situé en dehors de la diagonale) est situé sur laieligne et lajecolonne : T

LiÃLiÅ®LjAE1Å®Ei,jAE2

6

6666666666641

13 7

777777777775

Le déterminant de cette matrice est égal à 1. On peut écrire cette opération en Python en modifiant un à un tous les coefficients de la lignei1, de la sorte :defTransvection(M, i, j, a) : nblgns, nbcols M shape forcolinrange(nbcols) :

M[i, col]

M[i, col]

a

M[j, col] Le modulenumpynous permet cependant d"écrire cette même opération de façon bien

plus succinte :defTransvection(M, i, j, a) : M[i] M[i] a

M[j] Ou bien encore :

defTransvection(M, i, j, a) : M[i] a M[j] Rappelons qu"il n"est pas besoin de retourner quoi que ce soit ici : on effectue une mutation, et non une affectation, aussi les opérations que l"on effectue sur lenumpy.array désigné parMpersistent bien lorsque l"on a quitté la fonction.1

. On évitera d"écrire explicitement une multiplication matricielle, qui serait nettement plus coûteuse en

terme de calculs!2.3D ilatation L"opération dedilatationsur une matriceMconsiste à multiplier laieligne par un coefficient®non nul. On notera cette transformation L iîLi Cette opération revient à multiplier la matriceMà gauche par la matrice inversible

diagonale suivante, où le coefficient®est situé à l"intersection de laieligne et laiecolonne :

TLiîLiAE2

6

666666666641

1 1 13 7

77777777775

Le déterminant de cette matrice est égal à®. On peut écrire cette opération en Python en itérant sur les colonnes de la matrice, de la façon suivante :defDilatation(M, i, a) : nblgns, nbcols M shape forcolinrange(nbcols) :

M[i, col]

a

M[i, col]

Mais cette fois encore,numpyfournit des écritures plus courtes pour cette même opéra- tion de dilatation :defDilatation(M, i, a) : M[i] a

M[i] defDilatation(M, i, a) :

M[i] a

On pourrait par ailleurs définir la dilatation à partir de la fonction réalisant une transvec-

tion :defDilatation(M, i, a) :

Transvection(M, i, i, a

1 )34

2.4P ermutationL"opération depermutationsur une matriceMconsiste à échanger lesieetjelignes. On

notera cette transformation L i$Lj Cette opération revient à multiplier la matriceMà gauche par la matrice inversible

suivante, correspondant à une matrice identité où lesieetjelignes ont été échangées :

T

Li$LjAE2

6

66666666666666641

1 0 1 1 1 0 1 13 7

7777777777777775

Le déterminant de cette matrice est égal à¡1. On peut écrire cette opération en Python de la façon suivante :defPermutation(M, i, j) : nblgns, nbcols M shape forcolinrange(nbcols) :

M[i, col], M[j, col]

M[j, col], M[i, col] On pourrait penser que cette solution pourrait convenir defPermutation(M, i, j) :

M[i], M[j]

M[j], M[i]

# ATTENTION, INCORRECT Seulement, ce n"est pas le cas, et on obtient une copie de lajeligne sur laieligne à la place. En effet, lorsque l"on écritM[i], pour éviter de recopier inutilement des données en mémoire,numpyfournit ce qu"il appelle une " vue » de la ligne, qui n"est pas indépendante deM, ce qui est ici un problème. Décomposons l"instructionM[i], M[j]= M[j], M[i] en trois temps afin de mieux comprendre ce qui se passe. Python commence par évaluer les termes à droite du signe égal :tmp1= M[j] tmp2 M[i] Puis il effectue la première mutation, qui se passe bien : M[i] tmp1

Et enfin la seconde mutation :

M[j] tmp2 Et c"est lors de cette dernière étape que le problème survient : la première mutation a modifié lenumpy.arraydésigné parM,mais également ce que désignetmp2qui n"est qu"une vue deM. La ligne désignée partmp2est, après la première mutation, une copie de laje ligne. La dernière instruction n"a donc pas d"effet!

Il faut donc ruser et provoquer une copie deM[j], ce qui peut être réalisé de différentes

façon, en demandant explicitement une copie2:defPermutation(M, i, j) :

M[i], M[j]

M[j], M[i]

copy ()2.5R echerched uplus grand co efficient Afin d"implémenter la méthode du pivot de Gauss, nous aurons besoin d"une dernière opération. Parmi les termes de laiecolonne, situés sur la diagonale ou en-dessous, lequel est le plus grand en valeur absolue? C"est une variante d"un algorithme que nous avons déjà rencontré. On parcourt le morceau de colonne qui nous intéresse, en mémorisant la plus grande valeur absolue rencontrée, et la ligne correspondante :defLignePlusGrand(M, i) : nblgns, nbcols M shape plusGrand abs ( M[i,i] ) lignePlusGrand i forlgninrange(i+1, nblgns) : ifabs( M[lgn, i] )> plusGrand : plusGrand abs ( M[lgn, i] ) lignePlusGrand lgn returnlignePlusGrand On peut cependand parvenir exactement au même résultat en une seule instruction en2

. On peut aussi effectuer un quelconque opération surM[i]pour ce même résultat, par exemple en écrivant

M[i], M[j]

M[j], 0 M[i]. 35
utilisant les possibilités offerte parnumpy:defLignePlusGrand(M, i) :

returni+ numpy .argmax(numpy .abs( M[i:,i] ) )2.6S ansnumpyIln"estpasindispensabled"utilisernumpypourreprésenterdesmatrices,onpeuttrèsbien

le faire avec des listes de listes. Dans cette situation, il faudra réécrire les quatre opérations

élémentaires précédentes. Les compréhensions de listes permettent de simplifier l"écriture

de ces fonctions3:defTransvection(M, i, j, a) : M[i] [ M[i][k] a

M[j][k]forkinrange(len(M[i])) ]

defDilatation(M, i, a) : M[i] [ a

M[i][k]forkinrange(len(M[i])) ]

quotesdbs_dbs8.pdfusesText_14
[PDF] trigonalisation matrice 3x3

[PDF] qu'est ce qu'internet definition

[PDF] diagonalisation et trigonalisation des endomorphismes

[PDF] qu'est ce qu'internet pdf

[PDF] valeur propre xcas

[PDF] socialisme pdf

[PDF] principes du communisme engels

[PDF] difference entre capitalisme socialisme et communisme

[PDF] le communisme pour les nuls

[PDF] capitalisme pdf

[PDF] différence entre socialisme et communisme

[PDF] gluten de blé farine

[PDF] blé gluten pourcentage

[PDF] gluten de blé bio

[PDF] gluten de blé recette