GrassmannCalculus`
OrthogonalSimplify |
|
| | ||||
Details and Options
Examples
(2)
Basic Examples
(1)
In[1]:=
<<GrassmannCalculus`
Set a 5-dimensional vector space.
In[2]:=
★A;
;
★ℬ |
5
Here and are taken to be orthogonal without a direct invocation of the metric.
e
1
e
2
In[3]:=
e
1
e
2
OrthogonalSimplify |
e
1
e
2
Out[3]=
e
1
e
2
Out[3]=
0
Here is taken as orthogonal to all the other basis vectors. Because of the concept of total orthogonality this can be expressed with a single pair of expressions. It is necessary here to first expand the interior product. (Since basis elements have been used this would more consistently be done using .)
e
4
ToMetricElements
In[4]:=
(++)⊖%//
%//
[{{⋀⋀,}}]
e
1
e
2
e
3
e
4
ExpandInteriorProducts |
OrthogonalSimplify |
e
1
e
2
e
3
e
4
Out[4]=
(++)⊖
e
1
e
2
e
3
e
4
Out[4]=
e
1
e
4
e
2
e
4
e
3
e
4
Out[4]=
0
The following is a similar expression with symbolic vectors. This would be a more customary usage.
In[5]:=
(p+q+r)⊖x%//
%//
[{{p⋀q⋀r,x}}]
ExpandInteriorProducts |
OrthogonalSimplify |
Out[5]=
(p+q+r)⊖x
Out[5]=
p⊖x+q⊖x+r⊖x
Out[5]=
0
The following evaluation does not need but shows in detail how the expression is reduced to zero.
ToScalarProducts
In[6]:=
(p⋀q⋀r)⊖x%//
%//
[{{p⋀q⋀r,x}}]
ToScalarProducts |
OrthogonalSimplify |
Out[6]=
p⋀q⋀r⊖x
Out[6]=
(r⊖x)p⋀q-(q⊖x)p⋀r+(p⊖x)q⋀r
Out[6]=
0
The following uses a graded symbol and two separate orthogonal specifications.
In[7]:=
(p⋀q+)⊖(x+y⋀z)%//
%//
[{{p⋀q,x},{,y⋀z}}]
α
2
ExpandInteriorProducts |
OrthogonalSimplify |
α
2
Out[7]=
(+p⋀q)⊖(x+y⋀z)
α
2
Out[7]=
α
2
α
2
Out[7]=
α
2
The following is totally in terms of graded symbols.
In[8]:=
⋀⊖%//
⋀,
α
2
β
2
γ
2
OrthogonalSimplify |
α
2
β
2
γ
2
Out[8]=
α
2
β
2
γ
2
Out[8]=
0
In[9]:=
⋀⊖(x)%//
⋀,x
α
2
β
2
OrthogonalSimplify |
α
2
β
2
Out[9]=
α
2
β
2
Out[9]=
0
I don't know why γ only has to be orthogonal to one factor.
In[10]:=
⋀⊖%//
,
α
2
β
2
γ
2
OrthogonalSimplify |
β
2
γ
2
Out[10]=
α
2
β
2
γ
2
Out[10]=
0
In[11]:=
⋀⊖(x)%//
,x
α
2
β
2
OrthogonalSimplify |
β
2
Out[11]=
α
2
β
2
Out[11]=
α
2
β
2
Here, first a Clifford product simplifies to a scalar product because the bivector part is zero. Then a second case simplifies to a bivector because the scalar product is specified as zero.
In[12]:=
x⋄x%//
ToInteriorProducts |
Out[12]=
x⋄x
Out[12]=
x⊖x
In[13]:=
x⋄y%//
//
[{{x,y}}]
ToInteriorProducts |
OrthogonalSimplify |
Out[13]=
x⋄y
Out[13]=
x⋀y
Tests
(1)
|
|
""

