Resulta que con Octave se puede "cargar" esa tabla de Cayley y usarla por ejemplo para comprobar si cierto conjunto de matrices se multiplican como los elementos del grupo. En vez de usar las letras e para el elemento identidad, a b y c para los tres ciclos de longitud 2 y f y g para los dos ciclos de longitud 3, usamos índices numéricos del 1 al 6, en función de los cuales la tabla de Cayley queda como se ve a la derecha en la figura siguiente, que incluye las otras dos formas alternativas de poner lo mismo.
En Octave definimos la tabla como una matriz, así, con comentarios incluidos:
# tabla de Cayley de S3, con entradas en el orden
# g1=(1)(2)(3) ; g2=(12) ; g3=(23) ; g4=(31) ; g5=(123) ; g6 = (321)
# de modo que gi o gj = gk con k=Cayley(i,j)
Cayley=[ 1 2 3 4 5 6 ;
2 1 5 6 3 4 ;
3 6 1 5 4 2 ;
4 5 6 1 2 3 ;
5 4 2 3 6 1 ;
6 3 4 2 1 5 ];
Con Octave podemos usar dos importantes caracteristicas suyas: los Cell Array y las Permutation Matrices. Con lo primero tenemos un contenedor para guardar las 6 matrices, e indexarlas con un valor de 1 a 6. La peculiaridad de las permutation matrices es que permiten definir directamente cada matriz de la Representación Regular a partir de cada fila de la tabla de Cayley. En código queda más corto que cualquier explicación:
# matrices de la Representacion Regular, usando las "permutation matrices" de Octave
# la permutacion para el elemento k la establece la fila k de la tabla de Cayley
# usando un Cell Array ponemos las 6 matrices indexadas en un contenedor
Reg=cell(6,1);
for k=1:6
Reg{k}=eye(6)(:,Cayley(k,:));
endfor
Tenemos pues 6 matrices distintas, en código Octave Reg{1} a Reg{6}. Para comprobar que se multiplican exactamente igual que los elementos de S3 podemos hacer todos los productos posibles y ver que se obtiene en cada caso lo correcto, algo como
# la funcion all() de Octave puede usarse para comprobar que las matrices
# asi definidas cumplen la ley de grupo, concretada en la tabla de Cayley.
# all(all(Reg{6}==r6)) devuelve 1 mientras all(all(Reg{6}==r5)) devuelve 0
# i=3;j=5; all(all(Reg{i}*Reg{j}==Reg{Cayley(i,j)})) debe dar 1
numok=0
for i = 1:6
for j = 1:6
numok = numok + all(all(Reg{i}*Reg{j}==Reg{Cayley(i,j)})) ;
endfor
endfor
numok # debe ser 36, 1 por cada producto correcto
Hacemos la prueba lógica de que Reg{i}*Reg{j} sea igual a Reg{Cayley(i,j)} y aprovechamos la función de Octave all(). La comprobación lógica al comparar dos matrices 6x6 da una matriz 6x6 llena de unos si las matrices comparadas son iguales. Solo entonces al aplicar la función all dos veces se llega a obtener el valor 1, mientras que si las matrices comparadas no son exactamente iguales, al final obtendriamos un 0.
Qué bonito representar nuestros abstractos e,a,b,c, f,g con matrices que les "siguen el rollo" de la ley de grupo. Por un lado la Representación Regular es una de una infinidad de representaciones posibles del grupo con conjuntos de matrices.
Por otro lado, la Representación Regular es la Madre de Todas las Representaciones, pues la Representación Regular contiene todas las posibles Representaciones Irreducibles (R.I.), los bloques elementales en base a los cuales puede descomponerse cualquier representación del grupo. Además contiene cada R.I. repetida tantas veces como la dimensión de la R.I., el número de filas o columnas de las matrices que forman la R.I.
Nuestro pequeño y manejable grupo S3 tiene 3 representaciones irreducibles, dos de ellas de dimensión 1 ("matrices" 1x1, es decir, números), y otra de dimensión 2 (de matrices 2x2).
La primera es común a todo grupo, y se llama trivial con razón, pues se hace corresponder a cada elemento del grupo el mismo entero 1. La segunda es la que asigna 1 a las permutaciones pares (e,f y g) y -1 a las impares (a,b y c). Ambos casos son ejemplos de homomorfismo entre S3 y un conjunto de matrices. La ley de grupo se preserva estructuralmente, pero perdiendo detalle, al asociar a elementos diferentes de S3 un mismo elemento del grupo de matrices. La tercera R.I. de S3 es sin embargo fiel o exacta, cada una de sus 6 matrices es diferente y forma un grupo isomorfo a S3. La elección de matrices de esta R.I. no es única, pero es conveniente usar matrices unitarias, como estas:
Con Octave definimos las 6 matrices que ponemos en un cell array para accederlas más convenientemente, y comprobar que en efecto se multiplican como debe ser. En la comprobación hay que hacer un "apaño" para tener en cuenta el error de redondeo al tratar con valores decimales y no enteros como antes.
# Representaciones Irreducibles (R.I.) de S3 :
# R.I. 1, de dimension 1, la trivial, unidad o simetrica, a todo elemento de S3 se le hace corresponder un 1
U1 = { 1 , 1 , 1 , 1 , 1 , 1};
# R.I. 2, de dimension 1, la de signo o antisimetrica, se asocia 1 a las 3 permutaciones pares, y -1 a las 3 impares
U2 = { 1 , -1 , -1 , -1 , 1 , 1};
# R.I. 3, de dimension 2, exacta o fiel. Sus matrices unitarias se definen a continuacion.
um=0.5; # 1/2 un medio
mr=0.5*sqrt(3); # 1/2 por la raiz de 3
U3_1=[ 1 0 ; 0 1];
U3_2=[ 1 0 ; 0 -1];
U3_3=[-um mr; mr um];
U3_4=[-um -mr;-mr um];
U3_5=[-um mr;-mr -um];
U3_6=[-um -mr; mr -um];
U3 = {U3_1, U3_2, U3_3, U3_4, U3_5, U3_6};
# Comprobacion de la ley de grupo
# Como las entradas no son enteras hay que tener en cuenta el error de redondeo,
# de ahí usar la resta y la desigualdad
numok=0
for i = 1:6
for j = 1:6
numok = numok + all(all( U3{i}*U3{j}-U3{Cayley(i,j)} < ones(2,2)*0.00001 )) ;
endfor
endfor
numok # debe ser 36, 1 por cada producto correcto
# comprobacion de la unitariedad.
numok=0
for i = 1:6
numok = numok + all(all( U3{i}*(U3{i}') - eye(2) < ones(2,2)*0.00001 )) ;
endfor
numok # debe ser 6, 1 por cada matriz unitaria, o elemento del grupo
Las 6 matrices originales de la Representación Regular tienen sus unos repartidos por todas las filas y columnas. Son la expresión de 6 operadores lineales en una base concreta de un espacio vectorial de dimensión 6. Como tal espacio vectorial podemos tomar el constituido por todas las combinaciones lineales (con coeficientes ci complejos, por ejemplo) de los elementos del grupo, considerados estos como vectores linealmente independientes que generan el espacio vectorial:
VG = { c1 g1 + c2 g2 + c3 g3 + c4 g4 + c5 g5 + c6 g6 }
Además de tener así un espacio vectorial, se tiene el llamado álgebra de grupo, pues además de la suma de vectores se define el producto de dos vectores en base al producto de grupo, extendido linealmente a todo elemento del espacio vectorial:
(Σici gi).(Σjdj gj) = ΣiΣj cidj gi.gj
Por tanto un g ∈ G puede considerarse según las circunstancias como un elemento del grupo, un vector del espacio vectorial, o un elemento del álgebra, que a la vez puede considerarse como un operador lineal, el de la acción por la izquierda, cuya matriz es la asociada a ese mismo elemento en la Representación Regular. Por tanto la Representación Regular esta definida, respecto a la base inicial de los elementos del grupo, de coordenadas g1=(1 0 0 0 0 0)T, ..., g6=(0 0 0 0 0 1)T , por las matrices
Vamos a encontrar otra base final, respecto a la cual las matrices de esos 6 operadores tengan la forma diagonal por cajas correspondiente a las diferentes R.I. Esta segunda base expresa directamente la descomposición del espacio vectorial 6-dimensional como suma directa de un subespacio 1-dimensional que corresponde a la R.I. 1, otro subespacio 1-dimensional que corresponde a R.I. 2, y un subespacio 4-dimensional que corresponde a dos copias de la R.I. 3, por lo que se desglosará en dos subespacios 2-dimensionales. La forma de obtener los vectores (o funciones en la jerga más fisico-mecano-cuantica) de esta segunda base es emplear unos operadores muy especiales, que nos ayudan a "proyectar" sobre cada uno de los 4 subespacios mencionados.
To be continued ...