|
|
|
last edited 14 years ago by Bill Page |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | ||
|
Editor: Bill Page
Time: 2011/05/13 18:58:28 GMT-7 |
||
| Note: format | ||
changed: -Use LinearOperator 2-d Example Use LinearOperator (LOP) added: -- basis changed: -macro Σ(f,b,i) == reduce(+,[f*b.i for i in 1..#b]) -- summation macro Σ(f,b,i) == reduce(+,[f*b.i for i in 1..#b]) -- identity added: -- twist added: -- co-evaluation added: -- evaluation changed: -An n-dimensional algebra is represented by a (2,1)-tensor Algebra An n-dimensional algebra is represented by a (2,1)-tensor added: changed: -Given two vectors $P=\{ p^i \}$ and $Q=\{ q^j \}$ Multiplication Given two vectors $P=\{ p^i \}$ and $Q=\{ q^j \}$ changed: -An algebra is said to be *associative* if:: - - Y = Y - Y Y - -**Note:** the right hand side of the equation above is -implicitly the mirror image of the left hand side:: - - i j k i j k i j k - \ | / \/ / \ \/ - \ | / \ / \ / - \|/ = e k - i e - | \/ \/ - | \ / - l l l Associator An algebra is said to be *associative* if:: Y = Y Y Y i j k i j k i j k \ | / \/ / \ \/ \ | / \ / \ / \|/ = e k - i e | \/ \/ | \ / l l l changed: -\begin{axiom} \begin{axiom} changed: -The algebra $Y$ is *commutative* if:: - - Y = Y - - i j i j j i - \ / = \/ - \/ - | \ / - k k k Commutator The algebra $Y$ is *commutative* if:: Y = Y i j i j j i \ / = \/ - \/ | \ / k k k changed: -The algebra $Y$ is *anti-commutative* if:: - - Y = -Y - - i j i j j i - \ / = \/ = \/ - | \ / - k k k Anti-commutator The algebra $Y$ is *anti-commutative* if:: Y = -Y i j i j j i \ / = \/ = \/ | \ / k k k changed: -The *Jacobi identity* is:: - - X - Y = Y + Y - Y Y Y - - i j k i j k i j k i j k - \ | / \ / / \ \ / \ \ / - \ | / \ / / \ \ / \ 0 - \ | / \/ / \ \/ \/ \ - \ | / \ / \ / \ \ - \|/ = e k - i e - e j - | \/ \/ \/ - | \ / / - l l l l Jacobi The *Jacobi identity* is:: X Y = Y + Y Y Y Y i j k i j k i j k i j k \ | / \ / / \ \ / \ \ / \ | / \ / / \ \ / \ 0 \ | / \/ / \ \/ \/ \ \ | / \ / \ / \ \ \|/ = e k - i e - e j | \/ \/ \/ | \ / / l l l l changed: -A scalar product is denoted by the (2,0)-tensor Scalar Product A scalar product is denoted by the (2,0)-tensor added: changed: -Three traces of two graftings of an algebra gives six Three traces of two graftings of an algebra gives six changed: -RD:= LD:= changed: - ( I Y ) / _ ( I Y ) / _
References
Especially "Tensor calculus (linear algebra in coordinates)" in section 2.3.31, page 123.
See also:
Use LinearOperator (LOP)
(1) -> )lib CARTEN MONAL PROP LOP
>> System error: The value 15684 is not of type LIST
An n-dimensional algebra is represented by a (2,1)-tensor
viewed as a linear operator with two inputs
and one
output
. For example in 2 dimensions
Y:=Σ(Σ(Σ(script(y,[[i, j], [k]]), dx, i), dx, j), Dx, k)
There are no library operations named Σ Use HyperDoc Browse or issue )what op Σ to learn if there is any operation containing " Σ " in its name.
Cannot find a definition or applicable library operation named Σ with argument type(s) Symbol Variable(dx) Variable(i)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
Given two vectors
and ![]()
P:=Σ(script(p,[[], [i]]), Dx, i)
There are no library operations named Σ Use HyperDoc Browse or issue )what op Σ to learn if there is any operation containing " Σ " in its name.
Cannot find a definition or applicable library operation named Σ with argument type(s) Symbol Variable(Dx) Variable(i)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
the tensor
operates on their tensor product to
yield a vector
R:=(P,Q)/Y
There are 11 exposed and 15 unexposed library operations named / having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op / to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named / with argument type(s) Tuple(OrderedVariableList([P,Q])) Variable(Y)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
Pictorially:
P Q
Y
R
or more explicitly
Pi Qj
\/
\
Rk
An algebra is said to be associative if:
Y = Y
Y Y
i j k i j k i j k
\ | / \/ / \ \/
\ | / \ / \ /
\|/ = e k - i e
| \/ \/
| \ /
l l l
This requires that the following (3,1)-tensor
| (1) |
YY := (Y,I)/Y - (I, Y)/Y
There are 11 exposed and 15 unexposed library operations named / having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op / to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named / with argument type(s) Tuple(OrderedVariableList([Y,I])) Variable(Y)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
The algebra
is commutative if:
Y = Y
i j i j j i
\ / = \/ - \/
| \ /
k k k
This requires that the following (2,1)-tensor
| (2) |
YC:=Y-(X/Y)
| (3) |
A basis for the ideal defined by the coefficients of the commutator is given by:
groebner(ravel(YC))
There are 1 exposed and 0 unexposed library operations named ravel having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op ravel to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named ravel with argument type(s) Fraction(Polynomial(Integer))
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
The algebra
is anti-commutative if:
Y = -Y
i j i j j i
\ / = \/ = \/
| \ /
k k k
This requires that the following (2,1)-tensor
| (4) |
YA:=Y+(X/Y)
| (5) |
A basis for the ideal defined by the coefficients of the commutator is given by:
groebner(ravel(YA))
There are 1 exposed and 0 unexposed library operations named ravel having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op ravel to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named ravel with argument type(s) Fraction(Polynomial(Integer))
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
The Jacobi identity is:
X
Y = Y + Y
Y Y Y
i j k i j k i j k i j k
\ | / \ / / \ \ / \ \ /
\ | / \ / / \ \ / \ 0
\ | / \/ / \ \/ \/ \
\ | / \ / \ / \ \
\|/ = e k - i e - e j
| \/ \/ \/
| \ / /
l l l l
An algebra satisfies the Jacobi identity if and only if the following (3,1)-tensor
| (6) |
YX := YY - (I,X)/(Y, I)/Y
There are 11 exposed and 15 unexposed library operations named / having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op / to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named / with argument type(s) Tuple(OrderedVariableList([I,X])) Tuple(OrderedVariableList([Y, I]))
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
A scalar product is denoted by the (2,0)-tensor
U:=Σ(Σ(script(u,[[], [i, j]]), dx, i), dx, j)
There are no library operations named Σ Use HyperDoc Browse or issue )what op Σ to learn if there is any operation containing " Σ " in its name.
Cannot find a definition or applicable library operation named Σ with argument type(s) Symbol Variable(dx) Variable(i)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
We say that the scalar product is associative if the tensor equation holds:
Y = Y
U U
In other words, if the (3,0)-tensor:
i j k i j k i j k
\ | / \/ / \ \/
\|/ = \ / - \ /
0 0 0
| (7) |
YU := (Y,I)/U - (I, Y)/U
There are 11 exposed and 15 unexposed library operations named / having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op / to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named / with argument type(s) Tuple(OrderedVariableList([Y,I])) Variable(U)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
An algebra with a non-degenerate associative scalar product is called pre-Frobenius.
We may consider the problem where multiplication Y is given,
and look for all associative scalar products
or we
may consider an scalar product U as given, and look for all
algebras
such that the scalar product is associative.
This problem can be solved using linear algebra.
)expose MCALCFN
MultiVariableCalculusFunctions is now explicitly exposed in frame initial K := jacobian(ravel(YU),concat(map(variables, ravel(Y)))::List Symbol);
There are 1 exposed and 0 unexposed library operations named ravel having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op ravel to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named ravel with argument type(s) Variable(YU)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
The matrix K transforms the coefficients of the tensor
into coefficients of the tensor
. We are looking for
coefficients of the tensor
such that K transforms the
tensor
into
for any
.
A necessary condition for the equation to have a non-trivial
solution is that the matrix K be degenerate.
All 2-dimensional pre-Frobenius algebras are symmetric.
Proof: Consider the determinant of the matrix K above.
Kd := factor(determinant(K)::DMP(concat map(variables,ravel(U)), FRAC INT))
There are 1 exposed and 0 unexposed library operations named ravel having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op ravel to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named ravel with argument type(s) Variable(U)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
The scalar product must also be non-degenerate
Ud:DMP(concat map(variables,ravel(U)), FRAC INT) := determinant [[retract((Dx.i, Dx.j)/U) for j in 1..#Dx] for i in 1..#Dx]
There are 1 exposed and 0 unexposed library operations named ravel having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op ravel to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named ravel with argument type(s) Variable(U)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
therefore U must be symmetric.
nthFactor(Kd,1)
There are no exposed library operations named nthFactor but there are 3 unexposed operations with that name. Use HyperDoc Browse or issue )display op nthFactor to learn more about the available operations.
Cannot find a definition or applicable library operation named nthFactor with argument type(s) Variable(Kd) PositiveInteger
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
All 2-dimensional algebras with associative scalar product are commutative.
Proof: The basis of the null space of the symmetric
K matrix are all symmetric
YUS := (I,Y)/US - (Y, I)/US
There are 11 exposed and 15 unexposed library operations named / having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op / to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named / with argument type(s) Tuple(OrderedVariableList([I,Y])) Variable(US)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
This defines a 4-parameter family of 2-d pre-Frobenius algebras
test(eval(YUS,SS)=0*YUS)
There are 10 exposed and 6 unexposed library operations named eval having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op eval to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named eval with argument type(s) Variable(YUS) Variable(SS)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
Alternatively we may consider
J := jacobian(ravel(YU),concat(map(variables, ravel(U)))::List Symbol);
There are 1 exposed and 0 unexposed library operations named ravel having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op ravel to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named ravel with argument type(s) Variable(YU)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
The matrix J transforms the coefficients of the tensor
into coefficients of the tensor
. We are looking for
coefficients of the tensor
such that J transforms the
tensor
into
for any
.
A necessary condition for the equation to have a non-trivial
solution is that all 70 of the 4x4 sub-matrices of J are
degenerate. To this end we can form the polynomial ideal of
the determinants of these sub-matrices.
JP:=ideal concat concat concat
[[[[ determinant(
matrix([row(J, i1), row(J, i2), row(J, i3), row(J, i4)]))::FRAC POLY INT
for i4 in (i3+1)..maxRowIndex(J) ]
for i3 in (i2+1)..(maxRowIndex(J)-1) ]
for i2 in (i1+1)..(maxRowIndex(J)-2) ]
for i1 in minRowIndex(J)..(maxRowIndex(J)-3) ];
There are 2 exposed and 0 unexposed library operations named
minRowIndex having 1 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op minRowIndex
to learn more about the available operations. Perhaps
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
Cannot find a definition or applicable library operation named
minRowIndex with argument type(s)
Variable(J)
Perhaps you should use "@" to indicate the required return type,
or "$" to specify which version of the function you need.
If a 2-d algebra is associative, commutative, anti-commutative or if it satisfies the Jacobi identity then it is a pre-Frobenius algebra.
Proof
Consider the ideals of the associator, commutator, anti-commutator and Jacobi identity
YYI:=ideal(ravel(YY)::List FRAC POLY INT);
There are 1 exposed and 0 unexposed library operations named ravel having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op ravel to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named ravel with argument type(s) Variable(YY)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
Three traces of two graftings of an algebra gives six (2,0)-forms.
Left snail and right snail:
LS RS
Y /\ /\ Y
Y ) ( Y
\/ \/
i j j i
\/ \/
\ /\ /\ /
e f \ / f e
\/ \ / \/
\ / \ /
f / \ f
\/ \/
| (8) |
LS:=
( Y Λ )/ _
( Y I )/ _
V
There are no exposed library operations named Y but there are 2
unexposed operations with that name. Use HyperDoc Browse or issue
)display op Y
to learn more about the available operations.
Cannot find a definition or applicable library operation named Y
with argument type(s)
Variable(Λ)
Perhaps you should use "@" to indicate the required return type,
or "$" to specify which version of the function you need.
Left and right deer:
RD LD
\ /\/ \/\ /
Y /\ /\ Y
Y ) ( Y
\/ \/
i j i j
\ /\ / \ /\ /
\ f \ / \ / f /
\/ \/ \/ \/
\ /\ /\ /
e / \ / \ e
\/ \ / \/
\ / \ /
f / \ f
\/ \/
| (9) |
RD:=
( I Λ I ) / _
( Y X ) / _
( Y I ) / _
V
There are no library operations named Λ
Use HyperDoc Browse or issue
)what op Λ
to learn if there is any operation containing " Λ " in its name.
Cannot find a definition or applicable library operation named Λ
with argument type(s)
Variable(I)
Perhaps you should use "@" to indicate the required return type,
or "$" to specify which version of the function you need.
Left and right turtles:
RT LT
/\ / / \ \ /\
( Y / \ Y )
\ Y Y /
\/ \/
i j i j
/\ / / \ \ /\
/ f / / \ \ f \
/ \/ / \ \/ \
\ \ / \ / /
\ e / \ e /
\ \/ \/ /
\ / \ /
\ f f /
\/ \/
| (10) |
RT:=
( Λ I I ) / _
( I Y I ) / _
( I Y ) / _
V
There are no exposed library operations named I but there is one
unexposed operation with that name. Use HyperDoc Browse or issue
)display op I
to learn more about the available operation.
Cannot find a definition or applicable library operation named I
with argument type(s)
Variable(I)
Perhaps you should use "@" to indicate the required return type,
or "$" to specify which version of the function you need.
The turles are symmetric
test(RT = X/RT)
| (11) |
test(LT = X/LT)
| (12) |
Five of the six forms are independent.
test(RT=RS)
| (13) |
test(RT=LS)
| (14) |
test(RT=RD)
| (15) |
test(LT=RS)
| (16) |
test(LT=LS)
| (17) |
test(LT=RD)
| (18) |
Associativity implies right turtle equals right snail and left turtle equals left snail.
in?(ideal(ravel(RT-RS)::List FRAC POLY INT),YYI)
There are 1 exposed and 0 unexposed library operations named ravel having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op ravel to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named ravel with argument type(s) Polynomial(Integer)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
If the Jacobi identity holds then both snails are zero
in?(ideal(ravel(RS)::List FRAC POLY INT),YXI)
There are 1 exposed and 0 unexposed library operations named ravel having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op ravel to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named ravel with argument type(s) Variable(RS)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
and right turtle and deer have opposite signs
in?(ideal(ravel(RT+RD)::List FRAC POLY INT),YXI)
There are 1 exposed and 0 unexposed library operations named ravel having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op ravel to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named ravel with argument type(s) Polynomial(Integer)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.