Vorige: , Nach oben: Paket ATENSOR   [Inhalt][Index]

20.4.2 Funktionen und Variablen für ATENSOR

Funktion: init_atensor (alg_type, opt_dims)
Funktion: init_atensor (alg_type)

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).

Funktion: atensimp (expr)

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
Optionsvariable: alg_type

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.

Optionsvariable: adim

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
Optionsvariable: aform

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
Optionsvariable: asymbol

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
Funktion: sf (u, v)

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.

Funktion: af (u, v)

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.

Funktion: av (u, v)

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
Funktion: abasep (v)

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: , Nach oben: Paket ATENSOR   [Inhalt][Index]