Next: Funktionen und Variablen für atensor, Previous: Paket atensor, Up: Paket atensor [Contents][Index]
Das Paket atensor erlaubt das algebraische Rechnen mit Tensoren. Mit
dem Kommando load(atensor) wird das Paket geladen. Um das Paket zu
initialisieren, wird die Funktion init_atensor ausgeführt.
Im wesentlichen enthält das Paket atensor Regeln für die
Vereinfachung von Ausdrücken mit dem dot-Operator Operator
".". atensor kennt verschiedene Algebren. Mit der Funktion
init_atensor werden die Regeln einer Algebra initialisiert.
Um die Möglichkeiten des Paketes atensor zu zeigen, wird im Folgenden
die Algebra der Quaternionen als eine Clifford-Algebra Cl(0,2) mit zwei
Basisvektoren definiert. Die drei imaginären Einheiten i, j
und k werden durch die zwei Vektoren v[1] und v[2] sowie
das Produkt v[1] . v[2] dargestellt:
i = v j = v k = v . v
1 2 1 2
Das Paket atensor hat eine vordefinierte Algebra der Quaternionen. Hier
wird die Algebra der Quaterinonen als Clifford-Algebra Cl(0,2) definiert und
die Multiplikationstabelle der Basisvektoren konstruiert.
(%i1) load(atensor)$
(%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 ]
Indizierte Symbole mit dem Namen, der in der Optionsvariablen asymbol
abgelegt ist, werden von atensor als Basisvektoren erkannt. Dabei
läuft der Index von 1 bis adim. Für indizierte Symbole
werden die Bilinearformen sf, af und av ausgewertet.
Die Auswertung ersetzt die Bilinearform fun(v[i].v[j]), durch das
Matrixelement aform[i,j], wobei v einen Basisvektor bezeichnet
und fun einer der Bilinearformen sf oder af ist. Ist
fun die Bilinearform av, dann wird v[aform[i,j]] für
av(v[i],v[j]) substituiert. Siehe auch die Optionsvariable
aform.
Die Bilinearformen sf, af und av können vom Nutzer
neu definiert werden, um eine gewünschte Algebra zu definieren.
Wird das Paket atensor geladen, werden die folgenden Schalter auf die
angegebenen Werte gesetzt:
dotscrules : true dotdistrib : true dotexptsimp : false
Wird das symbolische Rechnen in einer nicht-assoziativen Algebra gewünscht,
kann auch noch der Schalter dotassoc auf den Wert false gesetzt
werden. In diesem Fall kann jedoch die Funktion atensimp nicht immer
eine gewünschte Vereinfachung erzielen.
Next: Funktionen und Variablen für atensor, Previous: Paket atensor, Up: Paket atensor [Contents][Index]