SamplePublisher`GrassmannCalculus`
ToCanonicalFactoredForm |
|
| | ||||
Details and Options
Examples
(1)
Basic Examples
(1)
In[1]:=
<<GrassmannCalculus`
The following puts a typical 2-vector in 4-space by diagonalizing on the and vectors. This is specified with the ⋀ element. Note that in the result appears only in the first factor and appears only in the second factor.
e
2
e
3
e
2
e
3
GradeBasis[2]
e
2
e
3
In[2]:=
★ℬ |
4
e
1
e
2
25
e
3
27
e
4
e
1
e
2
2
e
3
27
e
4
ToCanonicalFactoredForm |
e
2
e
3
Out[2]=
2-28-+84⋀-++3
e
1
e
2
25
e
3
27
e
4
e
1
e
2
2
e
3
27
e
4
Out[2]=
-6-+-3⋀(9+)
e
1
3
e
2
e
4
e
1
e
3
Canonicalization doesn't change the value of the vector. They both expand to the same form.
In[3]:=
Inactive[Equal][initialVector,canonicalVector]%//
Activate[%]
FastExteriorExpand |
Out[3]=
2-28-+84⋀-++3-6-+-3⋀(9+)
e
1
e
2
25
e
3
27
e
4
e
1
e
2
2
e
3
27
e
4
e
1
3
e
2
e
4
e
1
e
3
Out[3]=
54⋀+2⋀-162⋀-6⋀-18⋀54⋀+2⋀-162⋀-6⋀-18⋀
e
1
e
2
e
1
e
3
e
1
e
4
e
2
e
3
e
3
e
4
e
1
e
2
e
1
e
3
e
1
e
4
e
2
e
3
e
3
e
4
Out[3]=
True
Notice that the in the expanded form the grade basis ⋀ does not appear. The coefficient columns in the matrix for and columns are proportional. In this case the canonicalization process still works but the routine picks a different pivot.
e
2
e
4
e
2
e
4
In[4]:=
ToCanonicalFactoredForm |
e
2
e
4
FastExteriorExpand |
Out[4]=
-54+-3⋀+
e
2
e
3
27
e
4
e
1
e
3
9
Out[4]=
54⋀+2⋀-162⋀-6⋀-18⋀
e
1
e
2
e
1
e
3
e
1
e
4
e
2
e
3
e
3
e
4
The following illustrates a 4-vector in 8-space with some timings.
In[5]:=
★ℬ |
8
RandomGrassmannMatrix |
ToCanonicalFactoredForm |
e
1
e
2
e
3
e
4
FastExteriorExpand |
Out[5]=
(-10184-302-2678-6014+390+78+8072+9535)⋀(-422-12-110-243+16+2+337+392)⋀(3452+103+906+2040-132-26-2724-3228)⋀(-52--14-27+2+48+49)
e
1
e
2
e
3
e
4
e
5
e
6
e
7
e
8
e
1
e
2
e
3
e
4
e
5
e
6
e
7
e
8
e
1
e
2
e
3
e
4
e
5
e
6
e
7
e
8
e
1
e
2
e
3
e
4
e
5
e
7
e
8
Out[5]=
0.000719571,-60++-+⋀-+--⋀-+--⋀+-++
e
1
2
e
5
15
e
6
15
e
7
30
4
e
8
15
e
2
82
e
5
15
64
e
6
15
2
e
7
15
299
e
8
15
e
3
23
e
5
15
11
e
6
15
88
e
7
15
227
e
8
30
e
4
2
e
5
3
2
e
6
3
4
e
7
3
7
e
8
3
Out[5]=
{0.254236,True}
FastExteriorFactorize
In[6]:=
mVector=
[initialVector]//AbsoluteTiming
[mVector]//AbsoluteTiming
FastExteriorExpand |
FastExteriorFactorize |
Out[6]=
{0.129043,-60⋀⋀⋀-40⋀⋀⋀+40⋀⋀⋀-80⋀⋀⋀-140⋀⋀⋀-92⋀⋀⋀+44⋀⋀⋀-352⋀⋀⋀-454⋀⋀⋀-32⋀⋀⋀-112⋀⋀⋀-88⋀⋀⋀+176⋀⋀⋀+200⋀⋀⋀+216⋀⋀⋀+328⋀⋀⋀-256⋀⋀⋀+8⋀⋀⋀+1196⋀⋀⋀+48⋀⋀⋀-432⋀⋀⋀+32⋀⋀⋀+336⋀⋀⋀-200⋀⋀⋀+1576⋀⋀⋀-152⋀⋀⋀-1912⋀⋀⋀-648⋀⋀⋀+1496⋀⋀⋀+1060⋀⋀⋀+6956⋀⋀⋀-480⋀⋀⋀-80⋀⋀⋀+1040⋀⋀⋀-2560⋀⋀⋀+8⋀⋀⋀+4⋀⋀⋀-2⋀⋀⋀+16⋀⋀⋀+8⋀⋀⋀-12⋀⋀⋀-8⋀⋀⋀-4⋀⋀⋀-20⋀⋀⋀+26⋀⋀⋀+12⋀⋀⋀-50⋀⋀⋀-36⋀⋀⋀-22⋀⋀⋀-42⋀⋀⋀+109⋀⋀⋀-32⋀⋀⋀-24⋀⋀⋀+4⋀⋀⋀-68⋀⋀⋀-56⋀⋀⋀+12⋀⋀⋀+72⋀⋀⋀-8⋀⋀⋀+148⋀⋀⋀-42⋀⋀⋀-72⋀⋀⋀+16⋀⋀⋀-96⋀⋀⋀-188⋀⋀⋀-332⋀⋀⋀-144⋀⋀⋀-396⋀⋀⋀-898⋀⋀⋀-280⋀⋀⋀}
e
1
e
2
e
3
e
4
e
1
e
2
e
3
e
5
e
1
e
2
e
3
e
6
e
1
e
2
e
3
e
7
e
1
e
2
e
3
e
8
e
1
e
2
e
4
e
5
e
1
e
2
e
4
e
6
e
1
e
2
e
4
e
7
e
1
e
2
e
4
e
8
e
1
e
2
e
5
e
6
e
1
e
2
e
5
e
7
e
1
e
2
e
5
e
8
e
1
e
2
e
6
e
7
e
1
e
2
e
6
e
8
e
1
e
2
e
7
e
8
e
1
e
3
e
4
e
5
e
1
e
3
e
4
e
6
e
1
e
3
e
4
e
7
e
1
e
3
e
4
e
8
e
1
e
3
e
5
e
6
e
1
e
3
e
5
e
7
e
1
e
3
e
5
e
8
e
1
e
3
e
6
e
7
e
1
e
3
e
6
e
8
e
1
e
3
e
7
e
8
e
1
e
4
e
5
e
6
e
1
e
4
e
5
e
7
e
1
e
4
e
5
e
8
e
1
e
4
e
6
e
7
e
1
e
4
e
6
e
8
e
1
e
4
e
7
e
8
e
1
e
5
e
6
e
7
e
1
e
5
e
6
e
8
e
1
e
5
e
7
e
8
e
1
e
6
e
7
e
8
e
2
e
3
e
4
e
5
e
2
e
3
e
4
e
6
e
2
e
3
e
4
e
7
e
2
e
3
e
4
e
8
e
2
e
3
e
5
e
6
e
2
e
3
e
5
e
7
e
2
e
3
e
5
e
8
e
2
e
3
e
6
e
7
e
2
e
3
e
6
e
8
e
2
e
3
e
7
e
8
e
2
e
4
e
5
e
6
e
2
e
4
e
5
e
7
e
2
e
4
e
5
e
8
e
2
e
4
e
6
e
7
e
2
e
4
e
6
e
8
e
2
e
4
e
7
e
8
e
2
e
5
e
6
e
7
e
2
e
5
e
6
e
8
e
2
e
5
e
7
e
8
e
2
e
6
e
7
e
8
e
3
e
4
e
5
e
6
e
3
e
4
e
5
e
7
e
3
e
4
e
5
e
8
e
3
e
4
e
6
e
7
e
3
e
4
e
6
e
8
e
3
e
4
e
7
e
8
e
3
e
5
e
6
e
7
e
3
e
5
e
6
e
8
e
3
e
5
e
7
e
8
e
3
e
6
e
7
e
8
e
4
e
5
e
6
e
7
e
4
e
5
e
6
e
8
e
4
e
5
e
7
e
8
e
4
e
6
e
7
e
8
e
5
e
6
e
7
e
8
Out[6]=
0.291775,-60++-+⋀-+--⋀-+--⋀+-++
e
1
2
e
5
15
e
6
15
e
7
30
4
e
8
15
e
2
82
e
5
15
64
e
6
15
2
e
7
15
299
e
8
15
e
3
23
e
5
15
11
e
6
15
88
e
7
15
227
e
8
30
e
4
2
e
5
3
2
e
6
3
4
e
7
3
7
e
8
3
|
""
