Un changement de base
> restart:with(linalg):
Warning, the protected names norm and trace have been redefined and unprotected
> f1:=vector([1,1,1]):f2:=vector([1,-1,2]):f3:=vector([-1,1,1]):
> A:=matrix([f1,f2,f3]);
> rank(A);
Ainsi, les trois vecteurs constituent une famille de rang 3, donc une base de l'espace.
> T:=matrix([[2,1,0],[0,2,0],[0,0,-1]]);
Ben oui : voir la définition de u...
> P:=transpose(A);
C'est la matrice de passage de la base canonique vers la base des fi
> A:=evalm(P&*T&*inverse(P));
> I3:=Matrix(3,3,shape=identity);
> kernel(A-2*I3);
Forcément...
> kernel(A+I3);
Pareil... Ces deux derniers sous-espaces ne sont pas supplémentaires : voir les dimensions.
> seq(evalm(T^k),k=1..10);
Ca ne serait pas du genre triangulaire, avec 2^k et (-1)^k sur la diagonale, et k*2^(k-1) dessus ???
> evalm(matrix([[2^k,k*2^(k-1),0],[0,2^k,0],[0,0,(-1)^k]])&*T);
Gagné (pour la preuve par récurrence, un calcul à la main va plus vite...)
> An:=evalm(P&*matrix([[2^n,n*2^(n-1),0],[0,2^n,0],[0,0,(-1)^n]])&*inverse(P));
> subs(n=50,evalm(An));
> evalm(A^50);
> %-%%;
N H !!!!!!!!
> evalm(A^51-subs(n=51,evalm(An)));