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.