Próximo: Funções e Variáveis Definidas para o Pacote atensor, Previous: 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, Previous: Pacote atensor, Acima: Pacote atensor [Conteúdo][Índice]