Next: Функции и переменные пакета atensor, Previous: Пакет atensor, Up: Пакет atensor [Contents][Index]
Пакет atensor
предназначен для вычислений с тензорными алгебрами.
Для того, чтобы использовать atensor
, надо ввести
load("atensor")
, с последующим вызовом функции init_atensor
.
Основой пакета atensor
является набор правил упрощения для
оператора некоммутативного произведения (".
" – dot product).
atensor
знает несколько типов алгебр и соответствующий
набор правил активизируется при вызове функции init_atensor
.
Возможности пакета atensor
можно продемонстрировать определив
алгебру кватернионов как алгебру Клиффорда Cl(0,2) с двумя базисными
векторами. В этом случае три кватернионные мнимые единицы
представляются двумя базисными векторами и их произведением:
i = v j = v k = v . v 1 2 1 2
Хотя atensor
имеет встроенное определение алгебры кватернионов,
оно не используется в данном примере, в котором мы построим
таблицу умножения кватернионов в виде матрицы:
(%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
использует переменные с
индексом. Символ переменой хранится в asymbol
а индекс
может принимать значения от 1 до adim
.
Для переменных с индексом вычисляются билинейные формы
sf
, af
и av
. Вычисление подставляет значение
aform[i,j]
вместо fun(v[i],v[j])
,
где v
есть значение asymbol
и fun
есть af
или sf
; либо подставляет v[aform[i,j]]
вместо
av(v[i],v[j])
.
Функции sf
, af
и av
могут быть переопределены
пользователем.
Когда пакет atensor
загружен, устанавливаются следующие
значения переключателей:
dotscrules:true; dotdistrib:true; dotexptsimp:false;
Если вы хотите поэкспериментировать с неассоциативными алгебрами
надо присвоить dotassoc
значение false
. Однако, в
данном случае atensimp
не всегда может получить желаемое
упрощение.
Next: Функции и переменные пакета atensor, Previous: Пакет atensor, Up: Пакет atensor [Contents][Index]