Sobre una extension algebraica de Q
> B:=matrix(2,2,[1,2,3,4]):
> alias(alpha=RootOf(x**2-5*x-2));
> DIAGONALIZA(B,P,{alpha});
> op(P);
Comprobando
> evalm(inverse(P)&*B&*P):
> map(evala,%);
> C:=companion((x**2-2)*(x**2-3),x);
> DIAGONALIZA(C,P,{sqrt(2)}); En caso de no diagonalizacion, se imprime el mensaje con la causa y se rompe el procedimiento con ERROR.
Error, (in diagonaliza_aux)
> DIAGONALIZA(C, P, {sqrt(2), sqrt(3)}); Al adjuntar al cuerpo base los valores propios necesarios, la matriz diagoaliza.
> op(P);
Comprobando