Próximo: Funções e Variáveis Definidas 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 ativadas quando
a função init_atensor
é chamada.
A compatibilidade de atensor
pode ser demonstrada pela definição da
álgebra de quatérnios como uma álgera-Clifford Cl(0,2) com dois vetores
fundamentais. As três unidades quaterniônicas imaginárias fundamentais são então os dois
vetores 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 quatérnios, isso não foi usado nesse exemplo, no qual nós
nos esforçamos para construir a tabela de multiplicação dos quatérnios 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 vetoriais 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 você deseja experimentar com uma álgebra não associativa, você 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: Funções e Variáveis Definidas para o Pacote atensor, Anterior: Pacote atensor, Acima: Pacote atensor [Conteúdo][Índice]