SamplePublisher`GrassmannCalculus`
GrassmannBreakout |
|
| | ||||
Details and Options
Examples
(2)
Basic Examples
(2)
In[1]:=
<<GrassmannCalculus`
In[2]:=
★ |
4
The following breaks out an exterior product.
In[3]:=
step1=(★+a)⋀(b+c)%//
[Wedge,Automatic]
e
1
e
2
e
3
GrassmannBreakout |
Out[3]=
(★+a)⋀(b+c)
e
1
e
2
e
3
Out[3]=
b★⋀+c★⋀+ab⋀+ac⋀
e
2
e
3
e
1
e
2
e
1
e
3
Because of the restricted applicability it is significantly faster than the more general Grassmann routines.
In[4]:=
Do
[Wedge,Automatic][step1],{100}//TimingDo
[step1],{100}//TimingDo
[step1],{100}//Timing
GrassmannBreakout |
ExpandAndSimplifyExteriorProducts |
★ |
Out[4]=
{0.624004,Null}
Out[4]=
{1.51321,Null}
Out[4]=
{2.65202,Null}
The following breaks out a regressive product with some symbolic vectors.
In[5]:=
(★+a)⋁(bp-cq)%//
[RegressiveProduct,Automatic]
e
1
GrassmannBreakout |
Out[5]=
(★+a)⋁(bp-cq)
e
1
Out[5]=
b★⋁p-c★⋁q+ab⋁p-ac⋁q
e
1
e
1
The following expands only the exterior products within a regressive product.
In[6]:=
((★+a)⋀(3+e))⋁((bp-cq)⋀(2r+fs))%//
[ExteriorProduct,Automatic]
e
1
e
2
e
4
GrassmannBreakout |
Out[6]=
(★+a)⋀(3+e)⋁(bp-cq)⋀(2r+fs)
e
1
e
2
e
4
Out[6]=
(3★⋀+e★⋀+3a⋀+ae⋀)⋁(2bp⋀r+bfp⋀s-2cq⋀r-cfq⋀s)
e
2
e
4
e
1
e
2
e
1
e
4
The following breaks out only on the regressive product, leaving exterior products intact.
In[7]:=
((★+a)⋀(b+c))⋁(a+b)%//
[Vee,Automatic]
e
1
e
2
e
3
e
1
e
4
GrassmannBreakout |
Out[7]=
(★+a)⋀(b+c)⋁(a+b)
e
1
e
2
e
3
e
1
e
4
Out[7]=
a(★+a)⋀(b+c)⋁+b(★+a)⋀(b+c)⋁
e
1
e
2
e
3
e
1
e
1
e
2
e
3
e
4
The following breaks out on GrassmannComplement with vector symbols and basis elements.
In[8]:=
(⊖)p+cq+d
e
1
e
2
e
1
GrassmannBreakout |
GrassmannComplement |
Out[8]=
cq+p(⊖)+d
e
1
e
2
e
1
Out[8]=
(⊖)+c+d
e
1
e
2
p
q
e
1
The following specifies that graded symbols should also be regarded as vectors.
In[9]:=
(a+b)⋀3+c%//
Wedge,_?
e
1
e
2
p
2
q
2
GrassmannBreakout |
GradedSymbolQ |
Out[9]=
(a+b)⋀3+c
e
1
e
2
p
2
q
2
Out[9]=
3a⋀+ac⋀+3b⋀+bc⋀
e
1
p
2
e
1
q
2
e
2
p
2
e
2
q
2
The following does linear expansion over interior and exterior products.
In[10]:=
((★+a)⋀(b+c))⊖(a+(p⊖q))%//
[InteriorProduct|ExteriorProduct,Automatic]
e
1
e
2
e
3
e
1
e
4
GrassmannBreakout |
Out[10]=
(★+a)⋀(b+c)⊖(a+(p⊖q))
e
1
e
2
e
3
e
1
e
4
Out[10]=
ab(★⋀⊖)+b(p⊖q)(★⋀⊖)+ac(★⋀⊖)+c(p⊖q)(★⋀⊖)+b(⋀⊖)+ab(p⊖q)(⋀⊖)+c(⋀⊖)+ac(p⊖q)(⋀⊖)
e
2
e
1
e
2
e
4
e
3
e
1
e
3
e
4
2
a
e
1
e
2
e
1
e
1
e
2
e
4
2
a
e
1
e
3
e
1
e
1
e
3
e
4
Sometimes the easiest thing is just to use for the arguments.
All
In[11]:=
((★+a)⋀(b+c))⊖(a+b)+%//
[All,All]
e
1
e
2
e
3
e
1
e
4
(⊖)p+cq+d
e
1
e
2
e
1
GrassmannBreakout |
Out[11]=
(★+a)⋀(b+c)⊖(a+b)+
e
1
e
2
e
3
e
1
e
4
cq+p(⊖)+d
e
1
e
2
e
1
Out[11]=
ab(★⋀⊖)+(★⋀⊖)+ac(★⋀⊖)+bc(★⋀⊖)+b(⋀⊖)+a(⋀⊖)+c(⋀⊖)+abc(⋀⊖)+(⊖)+c+d
e
2
e
1
2
b
e
2
e
4
e
3
e
1
e
3
e
4
2
a
e
1
e
2
e
1
2
b
e
1
e
2
e
4
2
a
e
1
e
3
e
1
e
1
e
3
e
4
e
1
e
2
p
q
e
1
GrassmannBreakout
★
ExpandAndSimplifyExteriorProducts
GrassmannBreakout
In[1]:=
★ℬ |
5
In[2]:=
mvector=
[4,a]step1=value1=mvector//
[Wedge,Automatic];//Timingstep2=value2=mvector//
;//Timingstep3=value3=mvector//
;//Timingvalue1value2value3//SimplifyFirst[step2]/First[step1]First[step3]/First[step1]
ComposeSimpleMVector |
GrassmannBreakout |
ExpandAndSimplifyExteriorProducts |
★ |
Out[2]=
(++++)⋀(++++)⋀(++++)⋀(++++)
a
1
e
1
a
2
e
2
a
3
e
3
a
4
e
4
a
5
e
5
a
6
e
1
a
7
e
2
a
8
e
3
a
9
e
4
a
10
e
5
a
11
e
1
a
12
e
2
a
13
e
3
a
14
e
4
a
15
e
5
a
16
e
1
a
17
e
2
a
18
e
3
a
19
e
4
a
20
e
5
Out[2]=
{1.02961,Null}
Out[2]=
{3.52562,Null}
Out[2]=
{19.8745,Null}
Out[2]=
True
Out[2]=
3.42424
Out[2]=
19.303
In[3]:=
mvector=
[5,a]step1=value1=mvector//
[Wedge,Automatic];//Timingstep2=value2=mvector//
;//Timingstep3=value3=mvector//
;//Timingvalue1value2value3//SimplifyFirst[step2]/First[step1]First[step3]/First[step1]
ComposeSimpleMVector |
GrassmannBreakout |
ExpandAndSimplifyExteriorProducts |
★ |
Out[3]=
(++++)⋀(++++)⋀(++++)⋀(++++)⋀(++++)
a
1
e
1
a
2
e
2
a
3
e
3
a
4
e
4
a
5
e
5
a
6
e
1
a
7
e
2
a
8
e
3
a
9
e
4
a
10
e
5
a
11
e
1
a
12
e
2
a
13
e
3
a
14
e
4
a
15
e
5
a
16
e
1
a
17
e
2
a
18
e
3
a
19
e
4
a
20
e
5
a
21
e
1
a
22
e
2
a
23
e
3
a
24
e
4
a
25
e
5
Out[3]=
{2.27761,Null}
Out[3]=
{11.5753,Null}
Out[3]=
{130.089,Null}
Out[3]=
True
Out[3]=
5.08219
Out[3]=
57.1164
