CHAPITRE 2 - ALGEBRE LINEAIRE

publicité
UPMC – Licence mention Mathématiques – LM 203: Calcul Scientifique
1
CHAPITRE 2 - ALGEBRE LINEAIRE
Ce Chapitre 2 est consacré à l’utilisation du logiciel MuPAD en Algèbre linéaire. Il s’agit là
d’une composante essentielle du logiciel, l’Algèbre Linéaire intervenant très fréquemment y
compris dans d’autres domaines mathématiques (équations différentielles par exemple). Les
instructions correspondantes sont regroupées dans la bibliothèque linalg. On les découvrira à
partir de questions, qu’il est donc indispensable de traiter avant de s’engager dans la rédaction
du devoir.
1 Systèmes linéaires – L’instruction solve permet de résoudre les systèmes d’équation et en
particulier les systèmes d’équations linéaires.
Question 1 - Soit les trois équations
• eq1:=x+2*y=a
x + 2 y = a
• eq2:=2*x-y=b
2 x - y = b
• eq3:=2*x+3*y=c
2 x + 3 y = c
(noter que l’on assigne à chaque eq une valeur qui est une équation : à distinguer dans
eq1:=x+2*y=a l’instruction d’assignation « := » d’une valeur à l’identificateur eq1 de la
relation « = » composante de l’objet qu’est l’équation x+2*y=a)
1. Tenter de résoudre par solve le système {eq1, eq 2, eq3} - la notation { } désigne l’ensemble
à trois éléments eq1,eq2,eq3 – des trois équations en spécifiant l’ensemble des inconnues par
rapport auxquelles on résout
• s:=solve({eq1,eq2,eq3},{x,y})
{}
Expliquer le résultat.
2. Résoudre le système formé des deux premières équations : la réponse s1 est donnée sous la
forme d’un ensemble dont l’unique élément est une liste (c'est-à-dire une suite ordonnée
d’éléments)
3. Extraire la liste unique élément de s1
et utiliser l’instruction assign pour assigner aux
variables ces valeurs solutions (on vérifiera que l’assignation a été correctement effectuée en
appelant x et y :
• x;y
)
UPMC – Licence mention Mathématiques – LM 203: Calcul Scientifique
2
4. Qu’obtient si l’on appelle eq3 ?
Fin de la question 1
2. Systèmes linéaires et matrices – Le système précédent peut se représenter sous la forme
⎛1 2 ⎞
⎛a⎞
⎜
⎟⎛ x ⎞ ⎜ ⎟
matricielle ⎜ 2 −1⎟ ⎜ ⎟ = ⎜ b ⎟ . Et on sait que ce système admet une solution si et seulement si
⎜ 2 3 ⎟⎝ y ⎠ ⎜c ⎟
⎝
⎠
⎝ ⎠
⎛1 2 ⎞
⎛a⎞
⎜ ⎟
( u v w) ⎜ b ⎟ = 0 pour tout vecteur ligne ( u v w ) tel que ( u v w ) ⎜⎜ 2 −1⎟⎟ = 0
⎜2 3 ⎟
⎜c ⎟
⎝
⎠
⎝ ⎠
2.1 Entrée des matrices – On entre la matrice des coefficients par
• A:=matrix(3,2,[[1,2],[2,-1],[2,3]])
+-+
| 1, 2 |
|
|
| 2, -1 |
|
|
| 2, 3 |
+-+
On notera que la liste des listes des coefficients de chaque ligne. De la même façon le vecteur
colonne des données sera entré par
• B:=matrix(3,1,[[a],[b],[c]])
Attention – On a une liste de trois listes réduites chacune à un élément.
2.2 L’équation homogène AX = 0 a-t-elle des solutions autres que la solution 0 ?
L’instruction nullspace de la bibliothèque linalg renvoie une base de l’espace vectoriel des X
tels que AX = 0 , ce que l’on appelle le noyau de A :
• N:=linalg::nullspace(A)
[]
ce qui montre que ce noyau a une base vide et que l’unique solution de AX = 0 est la solution
identiquement nulle.
UPMC – Licence mention Mathématiques – LM 203: Calcul Scientifique
3
On sait d’autre part – résultat mathématique connu - que l’équation AX = B admet une
solution si et seulement si YB = 0 pour tout vecteur ligne Y tel que YA=0. C’est ce que l’on va
examiner dans la question 2.
Question 2 – a. Résoudre l’ équation YA=0 par transposition (voir linalg ::transpose)
b. Retrouver la condition nécessaire et suffisante pour l’existence d’une solution de l’équation
AX=B donnée dans la question 1.
Fin de la question 2
3. Matrices en virgule flottante – Introduisons la matrice
• A:=matrix(3,3,[[1,m,-2],[m+2,-2,2*m],[m+1,-m,3]])
+-+
|
1,
m, -2 |
|
|
| m + 2, -2, 2 m |
|
|
| m + 1, -m, 3
|
+-+
Question 3 – 1. a. Calculer le déterminant dA de la matrice A : rechercher l’instruction
correspondante dans la bibliothèque linalg.
b. Déterminer numériquement les valeurs de m qui annule de déterminant
c. Former la matrice inverse (puissance – 1 de la matrice).
2. On se propose maintenant de déterminer l’image de la matrice A lorsque m est égal à la
racine réelle µ de l’équation det A=0. On utilisera 25 chiffres significatifs.
Indication – La lettre grecque µ n’est pas accessible dans l’éditeur et il faut simplement
l’introduire par le mot « mu » (un identificateur peut être constitué de plusieurs lettres).
On doit effectuer une résolution numérique de l’équation dA = 0 d’inconnue m. On peut
utiliser float(solve(dA=0,m)).
a. Ecrire la matrice A1 à coefficients réels (nombres écrits en virgule flottante) que l’on
obtient en remplaçant m par µ .
Attention – On pourrait penser qu’il suffit d’assigner m := mu et qu’il y aura alors
remplacement automatique de m par mu dans les coefficients de A. Les choses sont plus
compliquées car une matrice est un objet « complexe » dont les composantes sont protégées.
On introduit d’abord la fonction fmu := x − > subs ( x, m = mu ) dont l’objet est de remplacer
dans l’expression x la lettre m par mu. On demande ensuite l’application de cette fonction à tous
les coefficients de A par A1:= map ( A, fmu ) .
L’instruction map permet ainsi d’appliquer une fonction à toutes des composantes d’une
« structure complexe ». On va la rencontrer de façon répétée dans ce qui suit.
b. Calculer le déterminant de A1. Refaire le calcul en utilisant 30 chiffres significatifs :
pour améliorer la lisibilité on pourra utiliser un affichage « exponentiel » - voir floatFormat –
UPMC – Licence mention Mathématiques – LM 203: Calcul Scientifique
4
Puis tester l’instruction linalg ::nullspace sur A1.
Commentaire - La détermination de l’image de la matrice A1 ne peut plus suivre la méthode du
paragraphe 2. On utilise alors l’orthogonalisation de Gram-Schmidt (instruction orthog de la
bibliothèque linalg)
c. Créer la liste S des vecteurs colonnes de la matrice à l’aide de l’instruction
linalg ::col.
d. Orthogonaliser la liste S en une liste S1 – instruction linalg ::orthog. Que constate-ton avec le 3ième vecteur de S1 ?
Commentaire - On peut considérer ainsi que les deux premiers vecteurs donne une base de
l’image avec une bonne approximation.
3. On se propose maintenant de déterminer le noyau de A lorsque m est égal à la racine réelle
µ de l’équation det A = 0.
On se heurte alors à une difficulté : µ n’est connue qu’à travers une valeur approchée. La
matrice A1 obtenue en remplaçant m par cette valeur approchée est une matrice de déterminant
très petit mais non nul, cf ci-dessus 2b. On doit alors procéder de façon détournée : le noyau de
Am = µ est l’orthogonal de l’image de la matrice transposée Am = µ T de la matrice Am= µ .
Pour faire les calculs on va identifier Am = µ à A1.
a. Déterminer la transposée A1T de A1.
b. Déterminer l’image de A1T par la méthode de la question 2.
⎛1⎞
c. Compléter la liste des deux vecteurs ainsi obtenus par le vecteur E1 = ⎜⎜ 0 ⎟⎟ puis
⎜ 0⎟
⎝ ⎠
orthogonaliser le système ainsi obtenu
d. En déduire une base du noyau de Am = µ (ou plus précisément une approximation
d’une telle base) : on normalisera le vecteur K1 obtenu pour la norme euclidienne usuelle
(linalg ::normalize)
e. Valider la construction de d en calculant A1*K.
Fin de la question 3.
4. Etude d’une matrice dépendant d’un paramètre – Calcul symbolique
Revenons à la matrice
• A:=matrix(3,3,[[1,m,-2],[m+2,-2,2*m],[m+1,-m,3]])
On se propose d’étudier la matrice A et son inverse A−1 lorsque m est proche d’une racine non
précisée a de l’équation det(A)=0. Plus précisément on va montrer que, si l’on remplace m par
a + t on a un développement limité
UPMC – Licence mention Mathématiques – LM 203: Calcul Scientifique
5
1
A−1 = A−1 + A0 + A+ (t )
t
où A−1 et A0 sont des matrices dont les coefficients ne dépendent pas de t et où A+ a pour
limite 0 lorsque t tend vers 0.
Question 4 - 1. a. Calculer le déterminant dAm de A puis former la matrice (inverse modifiée)
Aim = dAm * A ^ (−1)
Remarque – L’intérêt de la matrice Aim est que ses coefficients sont des polynômes en m.
b. Substituer a + t à m dans dAm (pour obtenir dAt) et dans Aim (pour obtenir Ait).
Indication – On pourra introduire f := x − > subs ( x, m = a + t ) et employer l’application map.
On simplifiera dAt en tenant compte du fait que a est racine de dAm.
c. Décomposer 1/dAt en éléments simples, l’indéterminée étant t.
Remarque – C’est de cette expression que l’on peut déduire qu’il existe un développement limité
1
A−1 = A−1 + A0 + A+ (t )
t
d. Déterminer A−1
1
Ait = A−1 . Substituer 0 à t dans (t / dAt ) Ait après avoir forcé
Indication – On rappelle que
dAt
la simplification des coefficients – instruction normal combinée avec map. Si on ne normalise
pas – c'est-à-dire si on ne simplifier les fractions rationnelles obtenues – on sera confronté à des
divisions par 0.
e. Déterminer A0 - Indication - Substituer 0 à t dans (1/ dAt ) Ait − A−1 / t - après avoir procéder
aux normalisations nécessaires et contrôler le résultat en substituant 0 à t dans
(1/ dAt ) Ait − A−1 / t − A0
2. Dans les calculs précédents on n’a pas utilisé le fait que a est une racine du polynôme dA0.
a. Montrer que dA0 = subs (dAm, m = a) est un polynôme à coefficients rationnels
irréductible, c'est-à-dire que les seuls polynômes à coefficients rationnels divisant dA0 sont les
polynômes constants et les multiples de dA0 (test irreducible)
Commentaire - Le nombre a est l’une des racines (non précisée) de l’équation dA0 = 0. On sait
alors que l’ensemble des nombres complexes de la forme p + qa + ra 2 où p, q et r sont des
nombres rationnels est un sous-corps noté Q[a] du corps des complexes, tout nombre de Q[a]
pouvant s’écrire d’une façon et d’une seule sous la forme p + qa + ra 2 . En particulier les
coefficients de la matrice A0 peuvent être vus comme des éléments de Q[a] et peuvent s’écrire
sous la forme p + qa + ra 2 . Dans MuPad on peut introduire Q[a] - noté KA pour simplifier :
UPMC – Licence mention Mathématiques – LM 203: Calcul Scientifique
6
• KA:=Dom::AlgebraicExtension(Dom::Rational,dA0,a)
et on peut y écrire l’inverse de a par
• b:=coerce(1/a,KA)
2
3 a
a
--- + -- - 3/5
10
5
ou par
• KA(1/a);
2
3 a
a
--- + -- - 3/5
10
5
b. En utilisant une fonction g convenable étendue aux matrices par map simplifier les
expressions de A−1 et de A0
A la matrice obtenue en faisant en faisant m=a dans la matrice originale A. De l’écriture
3. Soit i
1
AX = B admet une
A−1 = A−1 + A0 + A+ valable au voisinage de 0, on déduit que l’équation i
t
solution si et seulement si A−1 B = 0 et que A0 B est une telle solution. Par suite l’image de i
A
n’est autre que le noyau de A−1 .
a. Déterminer le noyau N de A−1
Indication – On va utiliser linalg ::nullspace mais cette instruction ne s’applique qu’à des
matrices. On a à transformer la version simplifiée A1mb de A−1 en une matrice. Pour cela on
introduit MKA := Dom :: Matrix( KA) qui est le domaine des matrices à coefficients dans KA et
on pose A1mc :=MKA(A1mb)
b. Calculer les images J1 et J2 des vecteurs de N par A0.
e. Quelles sont les images des vecteurs J par la matrice Aa , copie dans MKA de la
matrice A dans laquelle on a remplacé m par a ?
Fin de la question 4
UPMC – Licence mention Mathématiques – LM 203: Calcul Scientifique
7
5. Valeurs et vecteurs propres en virgule flottante – On se propose de chercher les valeurs
propres d’une matrice carrée à coefficients rationnels. Soit la matrice carrée d’ordre 4
• M:=matrix(4,4,[[-1,2,-3,4],[1,-3,5,-2],[4,1,3,2],[-1,0,5,1]])
Question 5 – a. Déterminer le polynôme caractéristique P de M avec l’indéterminée x – il y a
dans linalg une instruction pour cela.
b. Pour le calcul des valeurs et vecteurs propres (eigenvalues et eigenvectors, deux mots issus
de l’allemand) on peut utiliser
linalg ::eigenvalues qui dans le cas présent renvoie une liste d’expressions très
compliquée – Le logiciel sait résoudre exactement l’équation du 4ième degré P = 0 avec une
accumulation de radicaux, donnant un résultat inutilisable (on revient sur cette instruction dans
le prochain paragraphe)
numeric ::eigenvalues qui renvoie une liste de nombres écrits en virgule flottante (avec
10 chiffres significatifs, comme il est normal en l’absence d’une instruction DIGITS) réels et
complexes
Calculer numériquement les valeurs propres de M.
c. Pour les vecteurs propres, l’instruction linalg ::eigenvectors s’appuie sur les valeurs propres
exactes fournies par linalg ::eigenvalues. Compte tenu de la complication des expressions
obtenues il est « prudent » de ne pas chercher à déterminer les vecteurs propres à partir de ces
valeurs propres exactes. On peut utiliser les valeurs propres numériques à l’aide de
numeric ::eignevectors.
Calculer numériquement les vecteurs propres de M – identificateur VectM Remarque – Le résultat se présente sous la forme d’une liste de trois termes :
le premier terme, accessible par VectM[1] est la liste des valeurs propres en virgule
flottante
le deuxième terme VectM[2] est une matrice carrée d’ordre 4 dont les colonnes sont des
vecteurs propres, la i-ième colonne étant vecteur propre pour la i-ème valeur propre de la liste
des valeurs propres
le troisième terme est une estimation des erreurs – dues à la représentation décimale
approchée en virgule flottante – pour les valeurs propres.
d. Utiliser la question précédente pour assigner à l’identificateur VectM2 la matrice dont les
colonnes sont les vecteurs propres de M.
Introduire la matrice diagonale VP d’ordre 4 dont les coefficients diagonaux sont les valeurs
propres de M – voir l’option Diagonal de l’instruction matrix
Calculer Merr :=M* VectP2- VectP2*DiagVP et commenter le résultat.
Fin de la question 5.
UPMC – Licence mention Mathématiques – LM 203: Calcul Scientifique
8
6. Valeurs et vecteurs propres : la démarche algébrique – Le polynôme P :=charpoly(M,x)
n’a pas de racines rationnelles : il est irréductible sur le corps des rationnels comme le signale
• irreducible(P) ;
TRUE
On peut alors introduire le corps QP extension algébrique du corps des rationnels définie par P :
le corps QP est un espace vectoriel de dimension 4 sur Q , admettant la base 1, x, x 2 , x 3 et dans
lequel le produit est défini en convenant que xi * x j est le reste de la division euclidienne de
xi + j par P. On a tout fait pour que l’équation P = 0 considérée comme équation coefficients
dans QP admette une racine, à savoir x considéré comme élément de QP.
On introduit ensuite
• MatQP:=Dom::Matrix(QP) ;
•
domaine des matrices à coefficients dans QP et on introduit la copie MP de M considérée
comme matrice à coefficients dans KP
• MP:= MatQP(M) ;
Question 6 –
a. Déterminer à l’aide de linalg ::eigenvalues les valeurs propres de MP et expliquer le résultat.
b. Appliquer l’instruction linalg ::eigenvectors et utiliser l’aide en ligne pour expliquer le
résultat.
Assigner à l’identificateur V le vecteur propre pour la valeur propre x.
c. Vérifier le résultat de b en calculant MP*V-x*V.
Fin de la question 6
7. Matrices à coefficients symboliques – La démarche précédente s’adapte aux matrices à
coefficients symboliques. C’est d’ailleurs l’occasion de voir pleinement l’apport d’un
logiciel de calcul symbolique, même si c’est un nettement plus compliqué. Soit
M1:=matrix(4,4,[[-1,2+t,-3,4],[1+t^2,-3,5,-2],[4,1,3,2-3*t],[-1,0,54*t,1]]).
On se propose d’étudier les valeurs et vecteurs propres pour les « petites valeurs » de t : c’est
ce que l’on appelle faire un calcul de perturbations pour les éléments en question.
Mathématiquement la matrice M1 peut être vue comme une matrice à coefficients dans le corps
Q(t ) des des fractions rationnelles en l’indéterminée t et à coefficients rationnels. D’après ce
qu’on a vu au paragraphe 6 on va chercher les vecteurs et valeurs propres comme des éléments
de l’extension algébrique de Q(t ) définie par le polynôme caractéristique de M1.
UPMC – Licence mention Mathématiques – LM 203: Calcul Scientifique
9
Un tel résultat mathématique ne serait guère utilisable. Mais on va voir comment on peut
donner de la valeur propre et les composantes des vecteurs propres des développements limités
en t.
La matrice a un polynôme caractéristique :
• P:=linalg::charpoly(M1,x);
dont il n’est pas inutile de contrôler le type
• domtype(P);
Dom::DistributedPolynomial([x], Dom::ExpressionField(),
LexOrder)
On a un polynôme qui est à coefficient dans un « corps universel » Dom ::ExpressionField()
qui contient toutes les expressions algébriques. Ce qui va entraîner – propriété appelée hérédité
– que l’on peut voir P comme un polynôme à coefficients dans n’importe quel corps dans
lequel on peut interpréter les coefficients de M1.
Ici on va interpréter les coefficients de M1 dans
Q [t ] par
Q(t ) . On introduit l’anneau des polynômes
• Qt:=Dom::UnivariatePolynomial(t,Dom::Rational)
puis son corps de fractions Q(t ) par
• Q_t:=Dom::Fraction(Qt)
On passe à l’extension algébrique définie par P
• QP:=Dom::AlgebraicExtension(Q_t,P,x)
puis le domaine des matrices à coefficients dans QP
• MQP:=Dom::Matrix(QP)
Soit J la matrice identité
• J:=matrix(4,4,[1,1,1,1],Diagonal)
UPMC – Licence mention Mathématiques – LM 203: Calcul Scientifique
+|
|
|
|
|
|
|
+-
1, 0, 0, 0
0, 1, 0, 0
0, 0, 1, 0
0, 0, 0, 1
10
-+
|
|
|
|
|
|
|
-+
La détermination des vecteurs propres va utiliser la matrice
• M1a:=MQP(x*J-M1)
Question 7 –
1. Déterminer le noyau N de M1a par l’instruction nullspace
Comme on pouvait le prévoir il n’y a qu’un seul vecteur générateur, vecteur propre pour la
valeur propre x (considéré comme élément de QP), la matrice M1 étant vue comme matrice à
coefficients dans QP. On obtient ce vecteur propre par
• V:=N[1]
Mais ce n’est pas encore le résultat cherché dans la mesure où il faut intervenir x, dont on sait
seulement qu’il est racine du polynôme caractéristique. Or t est un paramètre « petit » ; on va
donc chercher des développements limités de ces racines.
2.a Transformer P en une expression (instruction expr) pour résoudre l’équation P = 0 par
rapport à x.
On obtient une solution sous forme de RootOf
b. On peut appliquer l’instruction series à un RootOf . Donner un développement limité à
l’ordre 3 de la solution obtenue en a – on pourra assigner le résultat à l’identificateur sols.
La solution se présente sous la forme d’un ensemble {ξ | B} où ξ est un développement limité
qui contient un paramètre choisi par la machine, que nous appellerons ici ζ , et où B est une
condition portant sur ζ . En fait la condition B traduit simplement le fait que ζ est une valeur
propre de la matrice M (c'est-à-dire M1 avec t = 0). Ce qui nous intéresse le plus directement
ici est ξ , qui est le développement limité de la valeur de M1 proche de la valeur propre ζ de
M.
On va l’obtenir en décomposant l’expression complexe sols par l’instruction op (en fait op va
supprimer les {} et on va récupérer une liste dont ξ est le premier membre :
• xi:=op(sols)[1]
dont on fait une expression par
• xi1:=expr(xi)
UPMC – Licence mention Mathématiques – LM 203: Calcul Scientifique
11
Expression que l’on va chercher à substituer à x dans V. Mais ATTENTION : les composantes de
V sont des éléments de QP et avant d’effectuer une substitution il convient de les transformer en
expressions. On pourrait penser le faire à l’aide de map mais il peut y avoir des difficultés. On
conseille la démarche plus détaillée
• V1:=matrix(4,1) ;
• for i from 1 to 4 do V1[i]:=expr(V[i]) end_for ;
On peut alors effectuer substituer xi1 à x à l’aide de l’instruction map ce qui donne le vecteur
Vx
c. On écrit le vecteur propre Vx sous la forme d’un développement limité
Vx = Vx0 + tVx1 + ...
Déterminer Vx0 et Vx1.
d. Le calcul n’est pas achevé : on n’a pas pris en compte que les développements limités
s’écrivent avec un paramètre auxiliaire choisi par la machine ζ - solution du polynôme
caractéristique P0 de la matrice M . On obtient une simplification du résultat en remplaçant les
coefficients de Vx1 par les restes de leur division par P0 : effectuer ces divisions puis, pour y
voir plus clair, passer à l’affichage en virgule flottante.
Remarque – En passant de M à M1 on perturbe les valeurs et vecteurs propres par adjonction de
termes qui dépendent de t. Le vecteur Vx1 mesure la perturbation du premier ordre du vecteur
propre correspondant à la valeur propre ξ , elle-même perturbation de ζ .
Fin de la question 7
8. Matrices symétriques –
8.1 Introduction - Une matrice carrée d’ordre n à coefficients réels S est symétrique si
elle est égale à sa transposée : S = S T . Pour une telle matrice on sait que :
ses valeurs propres sont réelles
elle est diagonalisable dans une base orthogonormée de vecteurs propres.
On appelle inertie de S le triple (p,n,n0) des trois entiers p = « nombre de valeurs propres
strictement positives » ,n = « nombre de valeurs propres strictement négatives »,n0 = « nombre
de valeurs propres nulles ». Soit T une deuxième matrice symétrique à coefficients réels ; les
matrices S et T ont la même inertie si et seulement s’il existe une matrice inversible W à
coefficients réels telle que T = WSW T
UPMC – Licence mention Mathématiques – LM 203: Calcul Scientifique
12
⎛ x1 ⎞
⎜ ⎟
x
A la matrice S est associée la forme quadratique Q( x1 , x2 ,..., xn ) = ( x1 x2 ... xn ) S ⎜ 2 ⎟ .
⎜ ... ⎟
⎜ ⎟
⎝ xn ⎠
On sait alors que l’on peut trouver p+n nombres réels r1 , r2 ,..., rp + n >0 et p+n combinaisons
p
linéaires L1 , L2 ,..., Lp + n à coefficients réels des xi tels que Q( x1 ,..., xn ) = ∑ ri Li 2 −
i =1
p+n
∑ rL
j = p +1
j
2
j
(loi
d’inertie de Sylvester). Si S est à coefficients rationnels on peut prendre les ri rationnels et les
Li à coefficients rationnels
8.2 Soit la matrice
• S:=matrix(4,4,[[1,2,3,4],[-1,-3,2,0],[-2,3,1,5],[0,-3,2,1]])
La matrice T = S + S T
•
+|
|
|
|
|
|
|
+-
-+
|
|
1, -6, 5, -3 |
|
1, 5, 2, 7 |
|
4, -3, 7, 2 |
-+
2,
1, 1,
4
est une matrice symétrique.
On obtient des valeurs approchées des valeurs propres et des vecteurs propres par
numeric ::eigenvectors
Question 8 – a. Déterminer les valeurs propres et vecteurs propres de T .
b. Montrer que la matrice W des vecteurs propres est « presque orthogonale » en calculant
WW T (il s’agit de vérifier que les coefficients de WW T − Id sont très petits).
Une matrice carrée symétrique réelle M est dite définie positive si X T MX > 0 pour tout
vecteur colonne réel X (une telle matrice est évidemment inversible et plus précisément toutes
ses valeurs propres sont réelles strictement positive). Une telle matrice peut se représenter sous
la forme LLT où L est une matrice triangulaire inférieure : la décomposition M = LLT est
appelée décomposition Cholesky du nom du capitaine Cholesky (artilleur durant la guerre
1914-1918) ; et c’est une décomposition fondamentale en algèbre linéaire numérique. Dans
MuPad elle est réalisée par l’instruction linalg ::factorCholesky.
UPMC – Licence mention Mathématiques – LM 203: Calcul Scientifique
13
Supposons maintenant que la matrice M soit seulement inversible. Si l’on applique
l’algorithme formellement on obtient encore une représentation M = LLT où L est à
coefficients complexes. Lorsque l’on opère avec des nombres en virgule flottante, il est
déconseillé d’effectuer cette décomposition en raison de phénomènes d’instabilité (le résultat
peut être une matrice L telle que M et LLT soient très différentes). En calcul exact les choses
sont différentes.
c. Appliquer à T l’instruction factorCholesky de la bibliothèque linalg, avec l’option NoCheck
qui bloque la vérification du caractère défini positif.
d. Introduire la matrice Dia, matrice diagonale 4 × 4 dont les coefficients diagonaux sont les
paramètres a,b,c et d.
Déterminer a,b,c,d pour que les coefficients diagonaux de L1:=L*Dia soient égaux à 1 puis
écrire la matrice Dia pour ces valeurs de a,b,c,d.
Que remarque- t-on pour la matrice L1 (nature des coefficients- rationnels, réels,complexes- ,
coefficients diagonaux) ?
e. Ecrire la matrice T sous la forme MHM T où M est une matrice triangulaire inférieure
rationnelle à coefficients diagonaux égaux à 1 et où H est une matrice diagonale rationnelle.
f. Ecrire la forme quadratique Q1 en w, x, y, z associée à T puis la forme quadratique Q1 en p,
q, r ,s associée à H.
g. Vérifier que la forme Q1 est la réduction de la forme Q à travers le changement de variables
⎛ p⎞
⎛ w⎞
⎜ ⎟
⎜ ⎟
⎜ q ⎟ = L 2T ⎜ x ⎟
⎜r⎟
⎜ y⎟
⎜ ⎟
⎜ ⎟
⎝s⎠
⎝s⎠
Fin de la question 8.
Téléchargement