Colle XIII
>
Exercice XIII.1
> restart;with(linalg):
Warning, the protected names norm and
trace have been redefined and unprotected
> A:=matrix(3,3,[a,1,b,1,c,d,e,f,-1]);
> u:=vector([1,1,0]);v:=vector([1,2,1]);w:=vector([1,1,2]);
> P:=concat(u,v,w);
> det(P);
Le déterminant de la famille (u,v,w) est non nul, donc la famille est libre dans R3, donc est une base de R3
> B:=evalm(multiply(P^(-1),A,P));
B est la matrice de f dans la nouvelle base. Cette matrice est diagonale si et ssi tous les coefficients non diagonaux sont non nuls.
> syst:={seq(seq(B[i,j],i=1..3),j=1..3)} minus {seq(B[i,i],i=1..3)};
> incs:={a,b,c,d,e,f};
> solve(syst,incs);
> assign(%);
> map(eval,B);
> map(eval,A);
>
Exercice XIII.2
> restart;with(linalg):
Warning, the protected names norm and
trace have been redefined and unprotected
>
crochet:=proc(A::matrix,B::matrix)
evalm(A&*B-B&*A)
end;
> A:=matrix(3,3);B:=matrix(3,3);C:=matrix(3,3);
> M1:=crochet(A,crochet(B,C)):
> M2:=crochet(B,crochet(C,A)):
> M3:=crochet(C,crochet(A,B)):
> map(simplify,evalm(M1+M2+M3));
>
Exercice XIII.3
> restart:with(linalg):
Warning, the protected names norm and
trace have been redefined and unprotected
>
A:=matrix(5,5,1):
for i to 5 do A[i,i]:=2 od:
evalm(A);
> evalm(A^n);
Bien-sûr, ça ne marche pas directement... Trois pistes
se présentent :
Réservons la troisième méthode pour plus tard.
1ère méthode
> for i from 2 to 4 do evalm(A^i) od;
Bof bof. Bon, les termes diagonaux semblent les mêmes, et les autres ce terme diagonal -1
Notons an ce terme diagonal pour A^n. Notre hypothèse de récurrence s'écrit alors
> I5:=diag(1,1,1,1,1);
> An:=evalm(matrix(5,5,(i,j)->an-1)+I5);
> evalm(An&*A);
Ainsi, la matrice est bien de la forme proposée (initialisé + hérédité), et sont terme diagonal an satisfait la relation de récurrence a(n+1)=6a(n)-4. Il suit que la suite b(n)=(a(n)-4/5) satisfait la relation de récurrence b(n+1)=6b(n) donc est géométrique. Donc b(n)=6^(n-1)*b(1)=6^(n-1)*(2-4/5)=6^(n)/5. Et donc a(n)=(6^n+4)/5
> an:=(6^n+4)/5;
> map(eval,An);
2ème méthode.
> C:=evalm(A-I5);
Il est [très] facile de montrer par récurrence que C^k=5^(k-1)C. On applique la formule du binôme de Newton à C et I5 qui commutent.
> An:=evalm(I5+sum(5^(k-1)*binomial(n,k),k=1..n)*C);
Troisième méthode.
On la développera plus tard, en donnant des indications.
>
>
Exercice XIII.4
> restart;with(linalg):
Warning, the protected names norm and
trace have been redefined and unprotected
Construisons une nouvelle base de R^3, dans laquelle les deux premiers vecteurs sont base de P et le troisième base de D.
> ppp:=matrix(1,3,[1,1,1]);
> linsolve(ppp,[0]);
Ainsi une base de P est donnée par
> e1:=vector([-1,1,0]);e2:=vector([-1,0,1]);
> e3:=vector([1,2,3]);
> Pass:=concat(e1,e2,e3);
> det(Pass);
Les trois vecteurs proposés forment donc une base de R^3. Dire qu'une matrice laisse globalement invariant P et D, c'est dire que l'endomorphisme sous-jacent envoit e3 sur D , e1 et e2 sur P, donc que sa matrice dans la base (e1,e2,e3) est de la forme :
> B:=matrix(3,3,[a,b,0,c,d,0,0,0,e]);
La matrice de tels endomorphismes, exprimée dans la base canonique, s''écrivent donc :
> A:=multiply(Pass,B,Pass^(-1));
>
>
Exercice XIII.5
> restart;with(linalg):
Warning, the protected names norm and
trace have been redefined and unprotected
> n:=6;
Il est clair que la matrice de f dans la base considérée est de la forme :
> A:=matrix(n,n,(i,j)->if j=n then a||i elif i=j+1 then 1 else 0 fi);
On cherche maintenant les matrices qui commutent à A
> B:=matrix(n,n);
> C:=evalm(A&*B-B&*A):
> syst:={seq(seq(C[i,j],j=1..n),i=1..n)}:
> incs:={seq(seq(B[i,j],j=1..n),i=1..n)}:
> sol:=solve(syst,incs):
> assign(sol);
> map(eval,B);
On repère dans l'expression ci-dessus les coefficients de B en fonctions desquels sont exprimés les autres. Ici, ce sont B[2,2], B[4,1], B[4,2], B[4,3], B[5,1] et B[6,1], mais cela dépend de la session Maple (choix des inconnues principales du système). En tous cas, il y en a 6, donc l'espace des matrices qui commutent à A est de dimension 6. Donc l'espace des endomorphismes qui commutent à f est de dimension 6.
Or (Id, f, f^2, f^3, f^4, f^5) est manifestement une famille d'endomorphismes qui commutent avec f. Montrons que c'est une famille libre :
> testlibre:=evalm(add(beta||i*A^i,i=0..n-1)):
> eqs:={seq(seq(testlibre[i,j],j=1..n),i=1..n)}:
> incs:={seq(beta||i,i=0..n-1)}:
> solve(eqs,incs);
La famille des f^i est donc une famille libre à 6 éléments dans un espace de dimension 6. C'est donc une base de l'e.v. des endomorphismes commutant avec f.