¿Cómo debo definir la transformación de Cayley?

Aug 21 2020

Soy un principiante en Mathematica. Estoy tratando de definir una función que evaluaría la transformación de la matriz de Cayley, es decir, tomar una matriz$M$ tal que $I + M$ es invertible a $(I-M)(I+M)^{-1}$. Supongo que primero me gustaría cubrir matrices de 2 por 2.

Mi codigo es

cayley[x_] := 
  (IdentityMatrix[2] - x) . (Inverse[IdentityMatrix[2] + x]) \; 
  Det[IdentityMatrix[2] + x] != 0

Recibo un error.

cayley [x_] no puede ser seguido por ...

Seguramente hay algún error de sintaxis muy básico, pero después de un poco de prueba y error no puedo descifrarlo de la documentación o del contenido del mensaje de error. ¡Cualquier ayuda muy apreciada!

PS puntos de bonificación por ayudarme a agregar el tamaño de la matriz como otro parámetro. ¿Sería esto simplemente cayley[x_,n_] := ...,y reemplazar 2 por nen la fórmula?

Respuestas

5 m_goldberg Aug 21 2020 at 23:05

Funcionara para ti?

cayley[x_] /;
    (SquareMatrixQ[x] && Det[IdentityMatrix[Length[x]] + x] != 0) :=
  Module[{i = IdentityMatrix[Length[x]]},
    (i - x).Inverse[i + x]]

Algunas pruebas

m = Partition[Range[16], 4];cayley[m]
{{-(13/9), -(4/3), -(2/9), 8/9}, {-(6/5), 1/5, -(2/5), 0}, 
 {2/45, -(4/15), 19/45, -(8/9)}, {58/45, 4/15, -(34/45), -(7/9)}}

No es una matriz cuadrada.

mx = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; cayley[mx]
cayley[{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}]

$M+I$ no invertible.

my = -IdentityMatrix[4]; cayley[my] 
cayley[{{-1, 0, 0, 0}, {0, -1, 0, 0}, {0, 0, -1, 0}, {0, 0, 0, -1}}]