sábado, 1 de julio de 2023

Cálculo de la matriz semejante a una matriz dada. Ejemplo para el caso de una matriz diagonalizable:

Cálculo con MAXIMA

(%i1)	load(eigen);
(%o1)	"C:/maxima-5.44.0/share/maxima/5.44.0/share/matrix/eigen.mac"
(%i10)	A:matrix([0,1,-1],[1,1,0],[-1,0,1]);
(%o10)	matrix(
		[0,	1,	-1],
		[1,	1,	0],
		[-1,	0,	1]
	)
 -->	eigenvalues(A);
	/*Devuelve los valores propios y sus multiplicidades respectivas*/
(%o11)	[[2,-1,1],[1,1,1]]
(%i14)	eigenvectors(A);
	/*Devuelve una lista con 2 sublistas. 
    La primera la forman los valores propios con sus multiplicidades, 
	la segunda está formada por los correspondientes vectores propios*/
	
(%o14)	[[[2,-1,1],[1,1,1]],[[[1,1,-1]],[[1,-1/2,1/2]],[[0,1,1]]]]
(%i22)	B:transpose(matrix([1,1,-1],[1,-1/2,1/2],[0,1,1]));
(%o22)	matrix(
		[1,	1,	0],
		[1,	-1/2,	1],
		[-1,	1/2,	1]
	)
 -->	/*Cálculo de la matriz semejante a A*/
	invert(B).A.B;
	/* ... resulta ser una matriz diagonal (se dice que 
	A es diagonalizable)*/
	
(%o19)	matrix(
		[2,	0,	0],
		[0,	-1,	0],
		[0,	0,	1]
	)

$\diamond$

-oOo-

Utilidades:

  [1] GNU MAXIMA

No hay comentarios:

Publicar un comentario