Previous: Einführung in atensor, Up: Paket atensor [Contents][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

Previous: Einführung in atensor, Up: Paket atensor [Contents][Index]