TP Maple Algèbre linéaire
Transcription
TP Maple Algèbre linéaire
TP Maple Algèbre linéaire Dans ce chapitre, nous exposerons également comment faire du calcul matriciel avec Maple. Vecteurs et matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Maple propose le package LinearAlgebra. Le calcul se fait uniquement en coordonnées. Autrement dit, Maple ne connaît que les espaces vectoriels Cn ou Rn . . Vecteurs et matrices Il y a plusieurs manières de créer un vecteur en ligne ou en colonne. Le produit scalaire est représenté par un point. > with(LinearAlgebra): u:=Vector([1,4,a]) ; v:=<1,2,0> ; 2 3 1 u := 4 45 a w:=<3|4|5> ; u-v ; 2 3 u.v ; Transpose(u) ; 2 3 1 v := 4 25 0 0 4 25 w := [3 4 5] 9 [1 4 a] a On distinguera entre le vecteur [1 2] et la liste [1, 2]. Executer par exemple les commandes suivantes > <1|2>+<3|4> ; [1,2]+[3,4] ; <1|2>+[3,4] ; On peut aussi créer des vecteurs à coordonnées formelles. > v:=Vector(3,symbol=a) ; v[2]:=0 : 2 v ; 3 a1 v := 4 a2 5 a3 2 , 3 a1 4 05 a3 Les matrices aussi peuvent être créées de plusieurs manières. TP Maple — Vecteurs et matrices Lycée Jean-Baptiste Say PCSI > Matrix(2,3,[1,2,3,4,5,6]) , 123 456 Matrix([[1,2,3],[4,5,6]]) , , 123 456 , <<1,4>|<2,5>|<3,6>> ; 123 456 Bien entendu, il existe aussi des matrices formelles. > A:=Matrix(2,2) ; A[1,2]:=a: A; B:=Matrix(2,2,symbol=b); B[2,1]:=2: B; A := 00 00 0a 00 B := b1,1 b1,2 b2,1 b2,2 b1,1 b1,2 2 a2,2 Manipulation des matrices ◮ A.B : produit des matrices A et B. ◮ IdentityMatrix(n) : Matrice identité d’ordre n. ◮ Transpose, Trace, MatrixInverse, Determinant, Rank, ColumnSpace, RowSpace : évidents. ◮ NullSpace(A) : Donne le noyau de la matrice A. ◮ GaussianElimination(A) : Applique la méthode de pivot à la matrice A. Puisque le logiciel ne peut pas expliciter des ensembles infinis, il représente un sous-espace vecteoriel de Kn par une base. Par exemple pour le noyeau et l’image d’une matrice on obtient : > A:=Matrix([[1,2,0],[0,1,1],[1,3,1]]); Noyau:=NullSpace(A); Image:=ColumnSpace(A); 2 3 120 A := 4 0 1 1 5 13 1 82 39 < 2 = N oyau := 4 −15 : 1 ; 22 3 2 33 1 0 Image := 44 05 , 4 155 1 1 De la même manière, si on veut donner un sous-espace vectoriel à Maple, on lui donne une famille génératrice. Essayez l’exemple suivant. > E:=[<1,2,3>,<4,5,6>,<5,7,9>]; www.mathoman.com Basis(E); TP Maple — Vecteurs et matrices Lycée Jean-Baptiste Say PCSI . Exercices Exercice . Exercice . Rechercher des informations sur la commande Maple LinearSolve, puis résoudre le système On considère la matrice carrée constituée des cent premiers nombres premiers (écrits dans l’ordre croissant, ligne après ligne). Est-elle inversible ? (Indication : Pour créer la suite des nombres premiers on pourra utiliser la commande isprime.) ( S : x + 2y + 3z = 1 −2x + 4y + z = 2 x + 18y + 17z = 9 Exercice . Exercice . Soit A= 1 1 2 1 −3 1 4 1 3 1 1 1 Le théorème de Cayley-Hamilton affirme que pour toute matrice carrée A on a PA (A) = 0 où PA est le polynôme caractéristique de A. Démontrer avec Maple le théorème de Cayley-Hamilton pour les matrices carrées d’ordre 2, 3, 4 et 5. Ǒ −2 2 6 2 . . Déterminer le rang de A ainsi qu’une base de Im(A). . Déterminer le noyau de A. En déduire des relations de liaisons entre les colonnes de A. Exercice . Trouver l’ensemble des matrices qui commutent avec ! A= Exercice . Soient A et B les matrices suivantes de M 3 (R) : ! A= −2 1 1 8 1 −5 4 3 −3 et B = 1 2 −1 2 −1 −1 −5 0 3 ! Déterminer toutes les matrices C telles que A = CB. (Indication : Utiliser LinearSolve.) Exercice . Soit F le sous-espace vectoriel de R5 engendré par les vecteurs v1 = (1, 5, 9, 3, 2), v2 = (1, 9, 26, 11, 5), v3 = (2, 6, 1, −2, 1) et v4 = (−4, −8, 15, 12, 1). Trouver un système linéaire dont F est l’espace de solutions. www.mathoman.com 211 121 003 . Exercice . Soient n ∈ N, En = Rn [X] et Tn l’endomorphisme de En défini par Tn (P ) = (nX + 1)P + (1 − X 2 )P ′ . . Ecrire une procédure MatriceT(n) d’argument n calculant la matrice Mn = mat Bn (Tn ) de Tn dans la base canonique Bn de En . . Ecrire deux procédures BaseNoyau(n) et BaseImage(n) renvoyant des bases de Ker(Tn ) et de Im(Tn ) pour un entier n quelconque. . Que trouve-t-on dans les cas n = 3 et n = 4 ? TP Maple — Vecteurs et matrices Lycée Jean-Baptiste Say PCSI Solutions Solution . On utilise par exemple la commande LinearSolve. > with(LinearAlgebra): A:=Matrix([[1,2,3],[-2,4,1],[1,18,17]]): b:=Vector([1,2,9]):LinearSolve(A,b); " _t 2 1/2 + _t 2 − 78 _t 2 0 L’espace de solutions est donc la droite donnée par 10 7 1 2 +λ # 10 0 7 −8 où λ ∈ R. Solution . Aucune difficulté, on utilise respectivement les commandes Rank, ColumnSpace et NullSpace. > with(LinearAlgebra): A:=Matrix([[1,-3,3,-2],[1,1,1,2],[2,4,1,6],[1,1,1,2]]): Rank(A),ColumnSpace(A),NullSpace(A); 2, 2 3 2 3 2 3 2 3 1 0 ¨ −3/2 −1 « 6 0 7 , 6 1 7 , 6 1/2 7 , 6−17 4−1/25 45/25 4 1 5 405 0 1 0 1 Solution . > restart: with(LinearAlgebra): > A:=<<-2,8,4>|<1,1,3>|<1,-5,-3>>; B:=<<1,2,-5>|<2,-1,0>|<-1,-1,3>>; La commande LinearSolve(R,S) donne toutes les matrices X telles que RX = S. Nous cherchons les matrices C telles que A = CB, ce qui équivaut à t B t C = t A. > Transpose(LinearSolve(Transpose(B),Transpose(A))); On trouve que les solutions sont de la forme ! 0 −1 0 2 3 0 2 1 0 ! +a 121 000 000 +b 000 121 000 ! +c 000 000 121 ! , où a, b, c sont des réels arbitraires. L’espace de solution est donc un sous-espace affine de dimension trois dans l’espace des matrices carrées d’ordre neuf. Solution . D’abord nous créons la matrice dont les vecteurs lignes sont v1 , . . . , v4 . 8 < b11 x : + b12 y + b13 z + b14 s + b15 t = 0 .. . bm1 x + bm2 y + bm3 z + bm4 s + bm5 t = 0 > restart: with(LinearAlgebra): > A:=<<1|5| 9| 3|2>, <1|9|26|11|5>, <2|6| 1|-2|1>, <2|6| 1|-2|1>>; dont F est solution. Autrement dit, pour k = 1, . . . , m les vecteurs (bk1 , . . . , bk5 ) doivent être dans le noyeau de la matrice A. La commande Nous cherchons un système de la forme donne une base de Ker(A) : www.mathoman.com > NullSpace(A); TP Maple — Vecteurs et matrices ¨ 7 −3 0 0 4 , 7 −2 0 1 0 Lycée Jean-Baptiste Say PCSI , 49 −17 4 0 0 « ( Ainsi le sous-espace vectoriel F est l’espace de solutions du système suivant. 7x − 3y + 4t = 0 7x − 2y + s = 0 49x − 17y + 4z = 0 On remarque que F est de dimension deux ; il faut trois équations indépendantes pour décrire F (car selon le théorème du rang 5 = 2 + 3). Solution . Nous établissons d’abord la suite S des cent premiers nombres premiers. Ensuite nous déclarons la matrice A, puis nous la remplissons avec les valeurs de la liste. > A:=Matrix(n,n,symbol=a); > for i from 1 to n do for j from 1 to n do A[i,j]:=S[(i-1)*n+j]: od:od: A; > Determinant(A); > restart: with(LinearAlgebra): n:=10: > S:=NULL: c:=0: k:=2: while c<n^2 do if isprime(k) then S:=S,k: c:=c+1: fi: k:=k+1: od: S; Puisque le déterminant est non-nul la matrice est inversible. (D’ailleurs on peut essayer avec d’autres valeurs de n, ça semble toujours rester vrai. . .) Solution . > restart: with(LinearAlgebra): n:=3: A:=Matrix(n,n,symbol=a): > P:=CharacteristicPolynomial(A,X): simplify(subs(X=A,P)); On trouve la matrice nulle pour différentes valeurs de n. A partir de n = 6 le temps de calcul devient long. . . Solution . On utilise la commande convert afin d’extraire sous forme d’un ensemble les coefficients de la matrice AX − XA. > with(LinearAlgebra): A:=Matrix([[2,1,1],[1,2,1],[0,0,3]]): X:=Matrix([[a,b,c],[d,e,f],[g,h,i]]): M:=A.X-X.A: sol:=solve(convert(M,set)): assign(sol): X; "i − d d 0 d f i−d f 0 i # Solution . . Il faut prendre garde au décalage dans la numérotation des lignes et colonnes (de 1 à n + 1 = dim(Rn [X])) par rapport aux puissances de X (de 0 à n). On définit une fonction f telle que f (i, j) soit égal au coefficient de Tn (X j−1 ) selon X i−1 . La matrice de Tn dans la base canonique s’obtient alors facilement par Matrix(n+1,n+1,f ). > with(LinearAlgebra): MatriceT:=proc(n) local i,j,M,S,f,P; f:=(i,j)->coeff((n*X+1)*X^(j-1)+(1-X^2)*diff(X^(j-1),X),X,i-1): M:=Matrix(n+1,n+1,f): end: www.mathoman.com TP Maple — Vecteurs et matrices Lycée Jean-Baptiste Say PCSI Effectuons un petit essai afin de se rassurer... > MatriceT(3); 2 3 1100 63 1 2 0 7 40 2 1 3 5 0011 . On commence par résoudre matricielle ment puis on revient aux polynômes. > BaseNoyau:=proc(n) local M,L,B,j,k,P,V; M:=MatriceT(n):L:=[op(NullSpace(M))]: if nops(L)=0 then print("vide") else B:=[]: for k from 1 to nops(L) do V:=L[k]:P:=0: for j from 0 to n do P:=P+V[j+1]*X^j: od: B:=[op(B),P]: od: B: fi:end: On applique le même principe pour l’image. > BaseImage:=proc(n) local M,L,B,j,k,P,V; M:=MatriceT(n):L:=[op(ColumnSpace(M))]: if nops(L)=0 then print("vide") else B:=[]: for k from 1 to nops(L) do V:=L[k]:P:=0: for j from 0 to n do P:=P+V[j+1]*X^j: od: B:=[op(B),P]: od: B: fi:end: . Cas n = 3. www.mathoman.com TP Maple — Vecteurs et matrices Lycée Jean-Baptiste Say PCSI > BaseNoyau(3); [1 − X − X 2 + X 3 ] > BaseImage(3); 1 − X 3 , X + 1/3 X 3 , X 2 + 1/3 X 3 ] Cas n = 4. > BaseNoyau(4); "vide" > BaseImage(4); [1, X, X 2 , X 3 , X 4 ] Remarque – On prouve sans peine que ce résultat est généralisable : rg(Tn ) = n + 1 lorsque n est pair et rg(Tn ) = n lorsque n est impair. www.mathoman.com