determinant slightly buggy
- Subject: determinant slightly buggy
- From: Gosei Furuya
- Date: Tue, 29 May 2007 02:57:29 +0900
hi all
I think determinant is slightly buggy.
Now we can treat Kronecker Product in group theory(so-called tensor product)
with MAXIMA.
for example ,Pauli matrix
(%i1) matrix_element_mult:"."$
(%i2) (s0:matrix([1,0],[0,1]),
s1:matrix([0,1],[1,0]),s2:matrix([0,-%i],[%i,0]),
s3:matrix([1,0],[0,-1]))$
/*tensor product can be defined by outermap("*",x,y)*/
(%i3) outermap("*",s1,s2). outermap("*",s3,s0);
[ [ 0 0 ] [ 0 %i ] ]
[ [ ] [ ] ]
[ [ 0 0 ] [ - %i 0 ] ]
(%o3) [ ]
[ [ 0 - %i ] [ 0 0 ] ]
[ [ ] [ ] ]
[ [ %i 0 ] [ 0 0 ] ]
(%i4) outermap("*",s1.s3,s2.s0);
[ [ 0 0 ] [ 0 %i ] ]
[ [ ] [ ] ]
[ [ 0 0 ] [ - %i 0 ] ]
(%o4) [ ]
[ [ 0 - %i ] [ 0 0 ] ]
[ [ ] [ ] ]
[ [ %i 0 ] [ 0 0 ] ]
%o3=%o4 good,generaly (x at y).(x1 at y1)=(x.x1)@(y.y1) ,@ is kronecker product.
So,determinant(x at y)=determinant(x)^n * determinant(y)^m,this case n=m=2
(%i7) a:matrix([x1,x2],[y1,y2])$
(%i8) outermap("*",a,a);
[ [ 2 ] [ 2 ] ]
[ [ x1 x1 x2 ] [ x1 x2 x2 ] ]
[ [ ] [ ] ]
[ [ x1 y1 x1 y2 ] [ x2 y1 x2 y2 ] ]
(%o8) [ ]
[ [ x1 y1 x2 y1 ] [ x1 y2 x2 y2 ] ]
[ [ ] [ ] ]
[ [ 2 ] [ 2 ] ]
[ [ y1 y1 y2 ] [ y1 y2 y2 ] ]
(%i9) determinant(%);
thish is not correct.
[ 3 2 2 3 ]
[ x1 y2 - x1 x2 y1 x1 x2 y2 - x2 y1 ]
(%o9) [ ]
[ 2 3 3 2 ]
[ x1 y1 y2 - x2 y1 x1 y2 - x2 y1 y2 ]
(%i10) factor(determinant(%));
3
(%o10) (x1 y2 - x2 y1) (x1 y2 + x2 y1)
this shoud be (x1y2-x2y1)^4, I calculated manually this.
(%i20) %o8[1,1].%o8[2,2]-%o8[1,2].%o8[2,1]$
(%i21) :lisp (setf $%o20 (sublis '((MNCEXPT . MEXPT) (MNCTIMES . MTIMES))
$%o20))
(%i21) %o20;
(%i22) factor(determinant(%));
I get (x1y2-x2y1)^4.
this bug due to calculate determinant with scalar-scalar product,in stead of
matrix-matrix product.
gosei furuya