|
|
last edited 13 years ago by Bill Page |
1 2 3 4 5 6 7 8 | ||
Editor: Bill Page
Time: 2011/04/05 09:50:48 GMT-7 |
||
Note: draft |
changed: -T:=CartesianTensor(1,n,FRAC POLY INT) T:=CartesianTensor(1,dim,FRAC POLY INT) changed: - for i in 1..diim] for i in 1..dim] changed: -YU := reindex(reindex(U,[2,1])*reindex(Y,[1,3,2]),[3,2,1])-U*Y YU := reindex(reindex(U,[2,1])*reindex(Y,[1,3,2]),[3,2,1])-U*Y; changed: -yy := transpose matrix [concat(map(variables,ravel(Y)))::List Symbol]; -K::OutputForm * yy::OutputForm = 0 --yy := transpose matrix [concat(map(variables,ravel(Y)))::List Symbol]; --K::OutputForm * yy::OutputForm = 0 changed: -Consider the determinant of the matrix 'K' above. -\begin{axiom} ---Kd := factor(determinant(K)::DMP(concat map(variables,ravel(U)),FRAC INT)) -\end{axiom} -The scalar product must also be non-degenerate -\begin{axiom} ---Ud:DMP(concat map(variables,ravel(U)),FRAC INT) := determinant [[U[i,j] for j in 1..dim] for i in 1..dim] -\end{axiom} - -The basis of the null space of the 'K' matrix -\begin{axiom} ---YUS:T := reindex(reindex(US,[2,1])*reindex(Y,[1,3,2]),[3,2,1])-US*Y ---KS := jacobian(ravel(YUS),concat(map(variables,ravel(Y)))::List Symbol); ---NS:=nullSpace(KS) ---SS:=map((x,y)+->x=y,concat map(variables,ravel Y), --- entries reduce(+,[p[i]*NS.i for i in 1..#NS])) ---YS:T := unravel(map(x+->subst(x,SS),ravel Y)) -\end{axiom} -This defines a family of pre-Frobenius algebras -\begin{axiom} ---test(unravel(map(x+->subst(x,SS),ravel YUS))$T=0*YU) -\end{axiom} Consider the determinant of the matrix 'K' above:: !\begin{axiom} Kd := factor(determinant(K)::DMP(concat map(variables,ravel(U)),FRAC INT)) \end{axiom} The scalar product must also be non-degenerate:: !\begin{axiom} Ud:DMP(concat map(variables,ravel(U)),FRAC INT) := determinant [[U[i,j] for j in 1..dim] for i in 1..dim] \end{axiom} The basis of the null space of the 'K' matrix:: !\begin{axiom} YUS:T := reindex(reindex(US,[2,1])*reindex(Y,[1,3,2]),[3,2,1])-US*Y KS := jacobian(ravel(YUS),concat(map(variables,ravel(Y)))::List Symbol); NS:=nullSpace(KS) SS:=map((x,y)+->x=y,concat map(variables,ravel Y), entries reduce(+,[p[i]*NS.i for i in 1..#NS])) YS:T := unravel(map(x+->subst(x,SS),ravel Y)) \end{axiom} This defines a family of pre-Frobenius algebras:: !\begin{axiom} test(unravel(map(x+->subst(x,SS),ravel YUS))$T=0*YU) \end{axiom} changed: -uu := transpose matrix [concat(map(variables,ravel(U)))::List Symbol]; -J::OutputForm * uu::OutputForm = 0 --uu := transpose matrix [concat(map(variables,ravel(U)))::List Symbol]; --J::OutputForm * uu::OutputForm = 0 changed: -the determinants of these sub-matrices. -\begin{axiom} ---JP:=ideal concat concat concat --- [[[[ determinant( --- matrix([row(J,i1),row(J,i2),row(J,i3),row(J,i4)])) --- 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) ]; ---#generators(%) -\end{axiom} - the determinants of these sub-matrices:: !\begin{axiom} JP:=ideal concat concat concat [[[[ determinant( matrix([row(J,i1),row(J,i2),row(J,i3),row(J,i4)])) 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) ]; #generators(%) \end{axiom}
-dimensional vector space representing Grassmann algebra with generators
An algebra is represented by a (2,1)-tensor viewed as a linear operator with two inputs and one output . For example:
n:=2
(1) |
dim:=2^n
(2) |
T:=CartesianTensor(1,dim, FRAC POLY INT)
(3) |
Y:T := unravel(concat concat [[[script(y,[[i, j], [k]]) for i in 1..dim] for j in 1..dim] for k in 1..dim] )
(4) |
A scalar product is denoted by the (2,0)-tensor
U:T := unravel(concat [[script(u,[[], [j, i]]) for i in 1..dim] for j in 1..dim] )
(5) |
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
(6) |
YU := reindex(reindex(U,[2, 1])*reindex(Y, [1, 3, 2]), [3, 2, 1])-U*Y;
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);
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.
Consider the determinant of the matrix K
above:
\begin{axiom} Kd := factor(determinant(K)::DMP(concat map(variables,ravel(U)),FRAC INT)) \end{axiom}
The scalar product must also be non-degenerate:
\begin{axiom} Ud:DMP(concat map(variables,ravel(U)),FRAC INT) := determinant [[U[i,j] for j in 1..dim] for i in 1..dim] \end{axiom}
The basis of the null space of the K
matrix:
\begin{axiom} YUS:T := reindex(reindex(US,[2,1])*reindex(Y,[1,3,2]),[3,2,1])-US*Y KS := jacobian(ravel(YUS),concat(map(variables,ravel(Y)))::List Symbol); NS:=nullSpace(KS) SS:=map((x,y)+->x=y,concat map(variables,ravel Y), entries reduce(+,[p[i]*NS.i for i in 1..#NS])) YS:T := unravel(map(x+->subst(x,SS),ravel Y)) \end{axiom}
This defines a family of pre-Frobenius algebras:
\begin{axiom} test(unravel(map(x+->subst(x,SS),ravel YUS))$T=0*YU) \end{axiom}
Alternatively we may consider
J := jacobian(ravel(YU),concat(map(variables, ravel(U)))::List Symbol);
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:
\begin{axiom} JP:=ideal concat concat concat [[[[ determinant( matrix([row(J,i1),row(J,i2),row(J,i3),row(J,i4)])) 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) ]; #generators(%) \end{axiom}