Nächste: Funktionen und Variablen für ATENSOR, Vorige: Paket ATENSOR, Nach oben: Paket ATENSOR [Inhalt][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.
Nächste: Funktionen und Variablen für ATENSOR, Vorige: Paket ATENSOR, Nach oben: Paket ATENSOR [Inhalt][Index]