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]);

A := matrix([[1, 1, 1], [1, -1, 2], [-1, 1, 1]])

> rank(A);

3

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]]);

T := matrix([[2, 1, 0], [0, 2, 0], [0, 0, -1]])

Ben oui : voir la définition de u...

> P:=transpose(A);

P := matrix([[1, 1, -1], [1, -1, 1], [1, 2, 1]])

C'est la matrice de passage de la base canonique vers la base des fi

> A:=evalm(P&*T&*inverse(P));

A := matrix([[1/2, 1/6, 4/3], [3/2, 7/6, -2/3], [3/...

> I3:=Matrix(3,3,shape=identity);

I3 := _rtable[17755972]

> kernel(A-2*I3);

{vector([1, 1, 1])}

Forcément...

> kernel(A+I3);

{vector([-1, 1, 1])}

Pareil... Ces deux derniers sous-espaces ne sont pas supplémentaires : voir les dimensions.

> seq(evalm(T^k),k=1..10);

matrix([[2, 1, 0], [0, 2, 0], [0, 0, -1]]), matrix(...
matrix([[2, 1, 0], [0, 2, 0], [0, 0, -1]]), matrix(...

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);

matrix([[2*2^k, 2^k+2*k*2^(k-1), 0], [0, 2*2^k, 0],...

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));

An := matrix([[1/2*2^n+1/2*(-1)^n, 1/6*2^n-1/3*n*2^...

> subs(n=50,evalm(An));

matrix([[1125899906842625/2, -55169095435288577/6, ...

> evalm(A^50);

matrix([[1125899906842625/2, -55169095435288577/6, ...

> %-%%;

0

N H !!!!!!!!

> evalm(A^51-subs(n=51,evalm(An)));

matrix([[0, 0, 0], [0, 0, 0], [0, 0, 0]])