Vorige: Einführung in ATENSOR, Nach oben: Paket ATENSOR [Inhalt][Index]
Initialisiert das Paket atensor
mit der angegebenen Algebra
alg_type. Das Argument alg_type kann einen der folgenden
Werte haben:
universal
Eine allgemeine Algebra, für die keine Vertauschungsregeln definiert sind.
grassmann
Eine Graßmann-Algebra, für die die Vertauschungsregel u.v + v.u = 0
definiert ist.
clifford
Eine Clifford-Algebra, die durch die Vertauschungsregel u.v + v.u =
-2*sf(u,v)
definiert ist. Die Bilinearform sf
ist eine symmetrische
Funktion, die einen skalaren Wert als Ergebnis hat. Das Argument opt_dims
kann bis zu drei positive ganze Zahlen sein, die die positiven,
entarteten und negativen Dimensionen der Algebra bezeichnen. Die Dimension
adim
und die Matrix aform
werden entsprechend der angegebenen
Argumente opt_dims initialisiert. Sind keine Argumente opt_dims
vorhanden, wird die Dimension adim
zu Null initialisiert und keine
Matrix aform
definiert.
symmetric
Eine symmetrische Algebra, die durch die Vertauschungsregel u.v - v.u = 0
definiert ist.
symplectic
Eine symplektische Algebra, die durch die Vertauschungsregel
u.v - v.u = 2*af(u,v)
definiert ist. Die Bilinearform af
ist
eine antisymmetrische Funktion, die einen skalaren Wert als Ergebnis hat. Das
Argument opt_dims kann bis zu zwei positive ganze Zahlen enthalten,
die die nicht-degenerierten und degenerierten Dimensionen der Algebra
bezeichnen. Die Dimension adim
und die Matrix aform
werden entsprechend der angegebenen Argumente opt_dims initialisiert.
Sind keine Argumente opt_dims vorhanden, wird die Dimension adim
zu Null initialisiert und keine Matrix aform
definiert.
lie_envelop
Eine einhüllende Lie-Algebra, die durch die Vertauschungsregel
u.v - v.u = 2*av(u,v)
definiert ist, wobei die Bilinearform av
eine antisymmetrische Funktion ist. Das Argument opt_dims kann eine
positive ganze Zahl sein, welche die Dimension der Lie-Algebra angibt. Die
Dimension adim
und die Matrix aform
werden entsprechend des
Argumentes opt_dims initialisiert. Ist kein Argument opt_dims
vorhanden, wird die Dimension adim
zu Null initialisiert und keine Matrix
aform
definiert.
Die Funktion init_atensor
kennt weiterhin einige vordefinierte
Algebren:
complex
Die Algebra der komplexen Zahlen, die als eine Clifford-Algebra Cl(0,1)
definiert wird. Das Kommando init_atensor(complex)
ist äquivalent zum
Kommando init_atensor(clifford, 0, 0, 1)
.
quaternion
Die Algebra der Quaternionen, die als eine Clifford-Algebra vom Typ Cl(0,2)
definiert wird. Das Kommando init_atensor(quaternion)
ist äquivalent zum Kommando init_atensor(clifford, 0, 0, 2)
.
pauli
Die Algebra der Pauli-Matrizen, die als eine Clifford-Algebra Cl(3,0)
definiert wird. Das Kommando init_atensor(pauli)
ist äquivalent
zum Kommando init_atensor(clifford, 3)
.
dirac
Die Algebra der Dirac-Matrizen, die als eine Clifford-Algebra Cl(3,0,1)
definiert wird. Das Kommando init_atensor(dirac)
ist äquivalent zum
Kommando init_atensor(clifford, 3, 0, 1)
.
Vereinfacht einen Ausdruck expr entsprechend der Regeln für die Algebra,
die mit der Funktion init_atensor
festgelegt ist. Die Regeln werden
rekursiv auf den Ausdruck angewendet. Dabei werden auch Bilinearformen
sf
, af
und av
ausgewertet.
Beispiele:
Die folgenden Beispiele zeigen das Rechnen mit der Algebra der Quaternionen.
(%i1) load("atensor")$ (%i2) init_atensor(quaternion); (%o2) done (%i3) atensimp(v[1].v[1]); (%o3) - 1 (%i4) atensimp(v[2].v[2]); (%o4) - 1 (%i5) atensimp((v[1].v[2]) . (v[1].v[2])); (%o5) - 1 (%i6) expand((2*v[1]+3*v[2])^^2); (%o6) 9 (v . v ) + 6 (v . v ) + 6 (v . v ) + 4 (v . v ) 2 2 2 1 1 2 1 1 (%i7) atensimp(%); (%o7) - 13
Standardwert: universal
Der Typ der Algebra, die bei der Vereinfachung von Ausdrücken mit der
Funktion atensimp
angewendet wird. Die Algebra wird von der Funktion
init_atensor
initialisiert. Mögliche Algebren sind universal
,
grassmann
, clifford
, symmetric
, symplectic
und
lie_envelop
. Siehe für eine ausführliche Erläuterung der Algebren
die Funktion init_atensor
.
Standardwert: 0
Die Dimension der Algebra, die bei der Vereinfachung von Ausdrücken mit der
Funktion atensimp
angewendet wird. Die Dimension wird von der Funktion
init_atensor
initialisiert. Ein indiziertes Symbol mit dem Bezeichner
asymbol
ist dann ein Basisvektor, wenn der Index kleiner oder gleich
der Dimension adim
ist.
Beispiel:
Die Dirac-Algebra hat die Dimension 4
und v[4]
ist ein
Basisvektor.
(%i1) load("atensor")$ (%i2) init_atensor(dirac); (%o2) done (%i3) adim; (%o3) 4 (%i4) abasep(v[4]); (%o4) true
Standardwert: ident(3)
Matrix mit den Werten der Bilinearformen sf
, af
und
av
. Der Standardwert ist die dreidimensionale Einheitsmatrix.
Beispiel:
Das Beispiel zeigt die Matrix aform
für eine Lie-Algebra mit drei
Dimensionen und die Ergebnisse der Bilinearform av
für diese Algebra.
(%i1) load("atensor")$ (%i2) init_atensor(lie_envelop, 3); (%o2) done (%i3) aform; [ 0 3 - 2 ] [ ] (%o3) [ - 3 0 1 ] [ ] [ 2 - 1 0 ] (%i4) av(v[1], v[2]); (%o4) v 3 (%i5) av(v[1], v[3]); (%o5) - v 2
Standardwert: v
Enthält das Symbol, das einen Basisvektor des Paketes atensor
bezeichnet. Mit der Funktion abasep
kann getestet werde, ob ein
indiziertes Symbol einen Basisvektor der Algebra bezeichnet.
Beispiel:
In diesem Beispiel wird asymbol
auf den Wert x
gesetzt.
(%i1) load("atensor")$ (%i2) init_atensor(symmetric, 2); (%o2) done (%i3) asymbol; (%o3) v (%i4) abasep(v[2]); (%o4) true (%i5) asymbol: x; (%o5) x (%i6) abasep(x[2]); (%o6) true
Eine symmetrische Bilinearform, die bei der Vereinfachung von Ausdrücken
mit der Funktion atensimp
angewendet wird. Die Funktion kann vom Nutzer
durch eine neue Funktion ersetzt werden. Die Standardimplementation prüft
mit der Funktion abasep
, ob die Argumente u und v
Basisvektoren sind und setzt für diesen Fall den entsprechen Wert der Matrix
aform
ein.
Eine antisymmetrische Bilinearform, die bei der Vereinfachung von Ausdrücken
mit der Funktion atensimp
angewendet wird. Die Funktion kann vom Nutzer
durch eine neue Funktion ersetzt werden. Die Standardimplementation prüft
mit der Funktion abasep
, ob die Argumente u und v
Basisvektoren sind und setzt für diesen Fall den entsprechenden Wert der
Matrix aform
ein.
Eine antisymmetrische Bilinearform, die bei der Vereinfachung von Ausdrücken
mit der Funktion atensimp
angewendet wird. Die Funktion kann vom Nutzer
durch eine neue Funktion ersetzt werden. Die Standardimplementation prüft
mit der Funktion abasep
, ob die Argumente u und v
Basisvektoren sind und setzt für diesen Fall den entsprechenden Wert
v[aform[i,j]]
der Matrix aform
ein.
Beispiel:
(%i1) load("atensor")$ (%i2) adim: 3; (%o2) 3 (%i3) aform:matrix([0,3,-2],[-3,0,1],[2,-1,0]); [ 0 3 - 2 ] [ ] (%o3) [ - 3 0 1 ] [ ] [ 2 - 1 0 ] (%i4) asymbol: x; (%o4) x (%i5) av(x[1], x[2]); (%o5) x 3 (%i6) av(x[1], x[3]); (%o6) - x 2
Prüft, ob das Argument v ein Basisvektor ist. Ein Basisvektor ist ein
indiziertes Symbol mit dem Symbol asymbol
als Bezeichner und einem
Index im Bereich von 1
bis adim
.
Beispiel:
(%i1) load("atensor")$ (%i2) asymbol: x$ (%i3) adim:3$ (%i4) abasep(x[1]); (%o4) true (%i5) abasep(x[3]); (%o5) true (%i6) abasep(x[4]); (%o6) false
Vorige: Einführung in ATENSOR, Nach oben: Paket ATENSOR [Inhalt][Index]