|
|
last edited 12 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
CartesianTensor is now explicitly exposed in frame initial CartesianTensor will be automatically loaded when needed from /var/aw/var/LatexWiki/CARTEN.NRLIB/CARTEN Monoidal is now explicitly exposed in frame initial Monoidal will be automatically loaded when needed from /var/aw/var/LatexWiki/MONAL.NRLIB/MONAL Prop is now explicitly exposed in frame initial Prop will be automatically loaded when needed from /var/aw/var/LatexWiki/PROP.NRLIB/PROP LinearOperator is now explicitly exposed in frame initial LinearOperator will be automatically loaded when needed from /var/aw/var/LatexWiki/LOP.NRLIB/LOP L:=LOP(OVAR ['1,'2], EXPR INT)
(1) |
-- basis dx:=basisIn()$L
>> System error: #<SB-SYS:FD-STREAM for "file /var/aw/var/LatexWiki/LOP.NRLIB/LOP.fasl" {10021435F3}> is a fasl file compiled with SBCL 1.1.1,and can't be loaded into SBCL 2.2.9.debian.
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 15 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
(2) |
YY := (Y,I)/Y - (I, Y)/Y
There are 15 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
(3) |
YC:=Y-(X/Y)
(4) |
A basis for the ideal defined by the coefficients of the commutator is given by:
groebner(ravel(YC))
There are 2 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
(5) |
YA:=Y+(X/Y)
(6) |
A basis for the ideal defined by the coefficients of the commutator is given by:
groebner(ravel(YA))
There are 2 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
(7) |
YX := YY - (I,X)/(Y, I)/Y
There are 15 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
(8) |
YU := (Y,I)/U - (I, Y)/U
There are 15 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 2 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 2 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 2 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 15 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 2 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 2 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 \/ \/
(9) |
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 \/ \/
(10) |
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 / \/ \/
(11) |
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)
(12) |
test(LT = X/LT)
(13) |
Five of the six forms are independent.
test(RT=RS)
(14) |
test(RT=LS)
(15) |
test(RT=RD)
(16) |
test(LT=RS)
(17) |
test(LT=LS)
(18) |
test(LT=RD)
(19) |
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 2 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 2 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 2 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.