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


Documents pareils