Próximo: Definições para o Pacote atensor, Anterior: Pacote atensor, Acima: Pacote atensor [Conteúdo][Índice]
atensor
é um pacote de manipulção de tensores algébricos. Para usar atensor
,
digite load("atensor")
, seguido por uma chamada à função
init_atensor
.
A essência de atensor
é um conjunto de regras de simplificação para o operador
de produto (ponto) não comutativo (".
"). atensor
reconhece
muitos tipos de álgebra; as regras de simplificação correspondentes são activadas quando
a função init_atensor
é chamada.
A compatibilidade de atensor
pode ser demonstrada pela
definição da álgebra de quaterniões como uma
álgebra de Clifford Cl(0,2) com dois vectores fundamentais. As três
unidades quaterniónicas imaginárias fundamentais são então os
dois vectores base e seu produto, i.e.:
i = v j = v k = v . v 1 2 1 2
Embora o pacote atensor
tenha uma definição
interna para a álgebra dos quaterniões, isso não foi usado nesse
exemplo, no qual nós nos esforçamos para construir a
tabela de multiplicação dos quaterniões como uma
matriz:
(%i1) load("atensor"); (%o1) /share/tensor/atensor.mac (%i2) init_atensor(clifford,0,0,2); (%o2) done (%i3) atensimp(v[1].v[1]); (%o3) - 1 (%i4) atensimp((v[1].v[2]).(v[1].v[2])); (%o4) - 1 (%i5) q:zeromatrix(4,4); [ 0 0 0 0 ] [ ] [ 0 0 0 0 ] (%o5) [ ] [ 0 0 0 0 ] [ ] [ 0 0 0 0 ] (%i6) q[1,1]:1; (%o6) 1 (%i7) for i thru adim do q[1,i+1]:q[i+1,1]:v[i]; (%o7) done (%i8) q[1,4]:q[4,1]:v[1].v[2]; (%o8) v . v 1 2 (%i9) for i from 2 thru 4 do for j from 2 thru 4 do q[i,j]:atensimp(q[i,1].q[1,j]); (%o9) done (%i10) q; [ 1 v v v . v ] [ 1 2 1 2 ] [ ] [ v - 1 v . v - v ] [ 1 1 2 2 ] (%o10) [ ] [ v - v . v - 1 v ] [ 2 1 2 1 ] [ ] [ v . v v - v - 1 ] [ 1 2 2 1 ]
atensor
reconhece como bases vectoriais símbolos indexados, onde o símbolo
é aquele armazenado em asymbol
e o iíndice está entre 1 e adim
.
Para símbolos indexado, e somente para símbolos indexados, as formas bilineares
sf
, af
, e av
são avaliadas. A avaliação
substitui os valores de aform[i,j]
em lugar de fun(v[i],v[j])
onde v
representa o valor de asymbol
e fun
é
ainda af
ou sf
; ou, isso substitui v[aform[i,j]]
em lugar de av(v[i],v[j])
.
Desnecessário dizer, as funções sf
, af
e av
podem ser redefinidas.
Quando o pacote atensor
é chamado, os seguintes sinalizadores são configurados:
dotscrules:true; dotdistrib:true; dotexptsimp:false;
Se quiser experimentar com uma álgebra não associativa, pode
também considerar a configuração de dotassoc
para false
. Nesse caso, todavia, atensimp
não stará
sempre habilitado a obter as simplificações desejadas.
Próximo: Definições para o Pacote atensor, Anterior: Pacote atensor, Acima: Pacote atensor [Conteúdo][Índice]