lunes, 3 de julio de 2023

Ejemplo de cálculo de la matriz canónica de Jordan de una matriz dada

 (%i39)	load(diag)$
	/* Carga de la librería necesaria 
	para calcular con matrices de Jordan */

(%i40)	/* Introducción de la matriz 
	de un cierto endomorfismo 
	expresado con respecto a la base canónica */
	A:matrix([322,-323,-323,322],[325,-326,-325,326],
      [-259,261,261,-260],[-237,237,238,-237]);
	
(%o40)	/* Ésta es la matriz introducida: */
        matrix(
		[322,	-323,	-323,	322],
		[325,	-326,	-325,	326],
		[-259,	261,	261,	-260],
		[-237,	237,	238,	-237]
	)
(%i41)	/* Cálculo de los valores propios y sus
	multiplicidades */
	vp:jordan(A);
(%o41)	[[5,4]]
        /* en este caso, hay un sólo valor propio, 5,
        y su multiplicidad es 4 */
        
(%i42)	/* Cálculo de la matriz canónica de Jordan */
	J:dispJordan(vp); 
(%o42)	matrix(
		[5,	1,	0,	0],
		[0,	5,	1,	0],
		[0,	0,	5,	1],
		[0,	0,	0,	5]
	)
(%i43)	/* Cálculo de la matriz del cambio de base */
	B:ModeMatrix(A,jl);
	/* Las columnas de dicha matriz corresponden
	a las coordenadas de los vectores de la 
	nueva base */
(%o43)	matrix(
		[5922,	2857,	317,	1],
		[4230,	2363,	325,	0],
		[-3572,	-1962,	-259,	0],
		[-5170,	-2392,	-237,	0]
	)
(%i44)	is (A=B.J.invert(B));
	/* comprobación */
(%o44)	true
(%i45)	is (J=invert(B).A.B);
	/* comprobación */
(%o45)	true
-oOo-

Utilidades:

  [1] GNU MAXIMA

No hay comentarios:

Publicar un comentario