Vnějí kalkulus

Jako příklad práce v Mathematice si uáeme zavedení aparátu pro práci s antisymetrickými formami, vnějím násobením a vnějí derivací.

Dimenze variety

Proměnná dimension bude obsahovat dimenzi variety. Nastevení dimenze nebude nezbytně potřeba. Její zadání vak zajistí, e formy vyího stupně vymizí.

ClearAll[dimension]

dimension = 10;

Deklarace form

Nejprve musíme Mathematicu naučit, které výrazy jsou antisymetrické formy. Zavedeme proto funkci afdegree[α], která bude vracet stupeň formy α. Pokud α není forma, afdegree[α] vrátí nulu.

ClearAll[afdegree]

Pokud není určeno jinak, afdegree vrací nulu.

afdegree[_] := 0

Pravidla pro určení stupně součtu a součinu form:

afdegree[a_Plus] := Max @@ (afdegree /@ (List @@ a))

afdegree[a_Times] := 
      Plus @@ (afdegree /@ (List @@ a))

afdegree[a_Wedge] := 
      Plus @@ (afdegree /@ (List @@ a))

Nakonec pravidlo pro určení stupně formy získané vnějím diferencováním.

afdegree[exD[f_]] :=  1 +  afdegree[f]

Příklady

Pro dalí poití si deklarujeme několik antisymetrických forem.

\(afdegree[α] = 1; 
afdegree[β] = 1; 

    afdegree[γ] = 1; \)

\(afdegree[aa]\  = \ 2; 
afdegree[bb]\  = \ 2; 
afdegree[cc]\  = \ 2; 
    \)

\(afdegree[aaa]\  = \ 3; 
afdegree[bbb]\  = \ 3; 

    afdegree[ccc]\  = \ 3; \)

Přehled definic

Definice funkce afdegree nyní vypadá následovně.

Definition[afdegree]

Vnějí násobení

Nyní můeme přikročit k definování vnějího násobení. To provedeme postupným zadáním základních vlastností.

Při definování vlastností vnějího násobení budeme pouívat plný zápis Wedge[a,b,...] místo zkráceného a⋀b⋀.... V definicích je takovýto zápis přehlednějí a bezpečnějí.

ClearAll[Wedge]

Nejprve pravila pro degenerované případy vnějího násobení.

Wedge[] = 1;

Wedge[x_] := x

Vnějí násobení je asociativní a distributivní.

Wedge[b___, HoldPattern[Wedge[w__]], e___] := Wedge[b, w, e]

HoldPattern[Wedge[b___, x_ + y_, e___]]  :=  
      Wedge[b, x, e] + Wedge[b, y, e]

HoldPattern[vzor] způsobí, e vzor nebude vyčíslen. Pokud bychom nepouili HoldPattern, vzor Wedge[...] by se vypočetl pomocí ji zadaného pravidla pro Wedge.

Formálně připoutíme výrazy α⋀f⋀β, kde f je obyčejná funkce (forma stupně nula). V tomto případě můeme f vytknout. Stejně tak pro výrazy typu α⋀(f β)⋀γ.

Wedge[b___, f_ , e___] := 
      f Wedge[b, e]  /;  afdegree[f] == 0

Wedge[b___, f_ m_, e___] := 
      f Wedge[b, m, e]  /;  afdegree[f] == 0

Vnějí součin dvou totoných forem lichého stupně je nula.

Wedge[___, α_, ___, α_, ___] := 
      0  /;  OddQ[afdegree[α]]

Vnějí součin je antisymetrický. Abychom docílili správné porovnávání součinů skládajících se ze stejných členů, avak seřazených v jiném pořadí, uspořádáme činitele vdy do standardního pořadí.

Wedge[b___, x_, y_, e___] := 
      (((-1))^(afdegree[x] afdegree[y])) Wedge[b, y, x, e]  /; 
        Order[x, y] == -1

Order[x,y] vrací 1,0 nebo -1 podle uspořádání x a y.

Pokud je stupeň výsledné antisymetrické formy vyí ne dimenze, forma je nulová.

Wedge[a___] := 0 /; Plus @@ afdegree /@ {a} > dimension

Příklady

Asociativita:

bb⋀(f aa⋀(3  γ))

Forma příli vysokého stupně:

α⋀aa⋀bb⋀aaa⋀bbb

Součin dvou stejných členů:

bbb⋀α⋀(aaa⋀β)⋀aaa

Distributivita a součin stejných členů:

t z 
      bb⋀(β + γ)⋀(
          α + β + γ)

% // Simplify

Vnějí derivace

Nakonec definujeme vnějí derivaci exD.

Nejprve zavedeme funkci constantQ — pokud constantQ[f] vrátí True, f bude povaováno za konstantu.

ClearAll[exD, constantQ]

Derivace je lineární vůči sčítání a násobení konstantním číslem.

exD[a_ + b_] := exD[a] + exD[b]

exD[_?NumberQ] := 0

exD[_?constantQ] := 0

K derivování sloené funkce pouijeme totální derivaci Dt.

exD[fc_[a__]] := (Dt[fc[a]] /. Dt -> exD)

Pravidla derivování součinu a vnějího násobení:

exD[HoldPattern[f_ w_]] := 
      exD[f]⋀w + f exD[w] /; afdegree[f] == 0

exD[HoldPattern[w_⋀e___]] := 
      Wedge[exD[w], e] + 
        (((-1))^afdegree)[w] Wedge[w, exD[Wedge[e]]]

Vnějí derivace vnějí derivace je nula:

exD[exD[_]] := 0

Derivace vedoucí k formě stupně vyího ne dimenze je nula.

exD[w_] := 0 /; afdegree[w] ≥ dimension

Příklady

Deklarace κ za konstantu:

constantQ[κ] =  True;

Derivování obecné lineární kombinace forem:

exD[ g aa⋀(3  β) +  α⋀β] // 
      Expand

Derivace z konstanty a vnějí derivace:

exD[κ aa  +  f exD[β] ]

Derivace sloené funkce:

exD[h[r, s] α]

Přehled definic

Tím jsme zavrili definice vnějího násobení a vnějí derivace. Jetě uvedeme přehled vech definic v pořadí, v jakém se budou vykonávat.

Definition[Wedge]

Definition[exD]

Elektromagnetické pole v Kerr-Newmanově prostoročase

dimension = 4;

constantQ[q] = True;  constantQ[a] =  True;

Vektorový potenciál elektromagnetického pole:

potA =  
      -((q r)/(ρ^2)) 
        (exD[t] - a Sin[ϑ]^2 exD[φ]);

Tenzor elektromagnetického pole je dán vnějí derivací potenciálu.

exD[potA]

Dosadíme za ρ, Mathematica provede vnějí derivace a pak zpětně zavedeme ρ.

%  /.  ρ -> (Sqrt[(r^2) + (a^2) Cos[ϑ]^2])

%  /.  (r^2) + (a^2) Cos[ϑ]^2  ->  (ρ^2)  //  
      Simplify

Vytkneme členy s vnějím součinem.

Map[Collect[#, _Wedge]&, %, 1]

Dosadíme za ρ v koeficientu u posledního vnějího součinu.

MapAt[
      Simplify[# /.  
            (ρ^2) -> (r^2) + (a^2) Cos[ϑ]^2]&, %, {3, 4}]

Čím jsem dostali výraz, který lze nalézt např. v MTW.

Pro kontrolu provedeme vnějí derivaci a dosadíme za ρ — měli bychom dostat nulu.

exD[%]  /.  ρ -> (Sqrt[(r^2) + (a^2) Cos[ϑ]^2]) // 
      Simplify