Para você pode usar a representação
adição funciona obviamente. Para multiplicação, você pode verificar
que preserva a representação, portanto, temos um homomorfismo em anel. ( a - 3 b b a ) ( a 1 - 3 b 1 b 1 a 1 ) ( a 2 - 3 b 2 b 2 a 2 ) = ( a 1a + b - 3---√
( ab- 3 buma)
( a1 1b1 1- 3 b1 1uma1 1) ( a2b2- 3 b2uma2) = ( a1 1uma2- 3 b1 1b2uma1 1b2+ b1 1uma2- 3 ( a1 1b2+ b1 1uma2)uma1 1uma2- 3 b1 1b2)
Tomando o determinante da matriz, obtém-se a norma (ao quadrado) , portanto os recíprocos correspondem a matrizes inversas, conforme o esperado.uma2+ 3 b2
Você já pensou em usar triplos , pelo que suponho que usaria números inteiros e um denominador comum. Essa abordagem também pode ser útil na representação matricial.
Atualização : Um método geral para representações de matriz usa a matriz associada . Por exemplo, suponha que você queira representar vez de onde
, assim . A matriz complementar de é , e isso se comporta em todas as suas operações de anel associadas, como o próprio . Obviamente, pode ser representado como ; portanto, uma representação matricial de é
ω = exp ( 2 π ia + b ωω = exp( 2 πEu3)ω2+ ω + 1 = 0ω( 01 1- 1- 1)ω1 1( 10 00 01 1)a + b ω
( ab- ba - b)
Você pode verificar se esse é um homomorfismo em anel. Além disso, isso é fácil de ver. Para multiplicação, as fórmulas correspondentes agora são
( a1 1+ b1 1ω ) ( a2+ b2ω )( a1 1b1 1- b1 1uma1 1- b1 1) ( a2b2- b2uma2- b2)= ( a1 1uma2- b1 1b2) + ( a1 1b2+ b1 1uma2- b1 1b2) ω= ( a1 1uma2- b1 1b2uma1 1b2+ b1 1uma2- b1 1b2- ( a1 1b2+ b1 1uma2- b1 1b2)uma1 1uma2- um1 1b2- b1 1uma2)
numpy
operações da matriz acelerada com as dos tipos de dados definidos pelo usuário. Não tenho certeza sobre o que o vencedor seria.