Inverse of a matrix
jlobillo · Mon Mar 22, 2010 12:40 pm
I think I've found a bug. When I execute the following code
the result can't be correct since the matrix b1bc is not the unit matrix. Am I doing anything wrong?
Best,
Javier
Code:
SINGULAR /
A Computer Algebra System for Polynomial Computations / version 3-1-0
0<
by: G.-M. Greuel, G. Pfister, H. Schoenemann \ Mar 2009
FB Mathematik der Universitaet, D-67653 Kaiserslautern \
> LIB "matrix.lib";
// ** loaded /usr/share/Singular/LIB/matrix.lib (1.48,2009/04/10)
// ** loaded /usr/share/Singular/LIB/nctools.lib (1.54,2009/05/08)
// ** loaded /usr/share/Singular/LIB/poly.lib (1.53,2009/04/15)
// ** loaded /usr/share/Singular/LIB/general.lib (1.62,2009/04/15)
// ** loaded /usr/share/Singular/LIB/random.lib (1.20,2009/04/15)
// ** loaded /usr/share/Singular/LIB/ring.lib (1.34,2009/04/15)
// ** loaded /usr/share/Singular/LIB/primdec.lib (1.147,2009/04/15)
// ** loaded /usr/share/Singular/LIB/absfact.lib (1.7,2008/07/16)
// ** loaded /usr/share/Singular/LIB/triang.lib (1.14,2009/04/14)
// ** loaded /usr/share/Singular/LIB/elim.lib (1.34,2009/05/05)
// ** loaded /usr/share/Singular/LIB/inout.lib (1.34,2009/04/15)
> ring cuerpobase=(0,a),(dummy),dp; minpoly=a4-10a2+1;
> def sqrt6 = 1/2a2-5/2;
> def sqrt2 = 1/2a3-9/2a;
> def sqrt3 = a - sqrt2;
> vector v1=[0,0,1];
> vector v2=[0,2/3*sqrt2,-1/3];
> vector v3=[-1/3*sqrt6,-1/3*sqrt2,-1/3];
> vector v4=[1/3*sqrt6,-1/3*sqrt2,-1/3];
> matrix basesaux[3][3]=matrix(v1),matrix(v2),matrix(v3);
> matrix b1bc=transpose(basesaux);
> power(b1bc,-1);
_[1,1]=1
_[1,2]=0
_[1,3]=0
_[2,1]=0
_[2,2]=1
_[2,3]=0
_[3,1]=0
_[3,2]=0
_[3,3]=1
>
A Computer Algebra System for Polynomial Computations / version 3-1-0
0<
by: G.-M. Greuel, G. Pfister, H. Schoenemann \ Mar 2009
FB Mathematik der Universitaet, D-67653 Kaiserslautern \
> LIB "matrix.lib";
// ** loaded /usr/share/Singular/LIB/matrix.lib (1.48,2009/04/10)
// ** loaded /usr/share/Singular/LIB/nctools.lib (1.54,2009/05/08)
// ** loaded /usr/share/Singular/LIB/poly.lib (1.53,2009/04/15)
// ** loaded /usr/share/Singular/LIB/general.lib (1.62,2009/04/15)
// ** loaded /usr/share/Singular/LIB/random.lib (1.20,2009/04/15)
// ** loaded /usr/share/Singular/LIB/ring.lib (1.34,2009/04/15)
// ** loaded /usr/share/Singular/LIB/primdec.lib (1.147,2009/04/15)
// ** loaded /usr/share/Singular/LIB/absfact.lib (1.7,2008/07/16)
// ** loaded /usr/share/Singular/LIB/triang.lib (1.14,2009/04/14)
// ** loaded /usr/share/Singular/LIB/elim.lib (1.34,2009/05/05)
// ** loaded /usr/share/Singular/LIB/inout.lib (1.34,2009/04/15)
> ring cuerpobase=(0,a),(dummy),dp; minpoly=a4-10a2+1;
> def sqrt6 = 1/2a2-5/2;
> def sqrt2 = 1/2a3-9/2a;
> def sqrt3 = a - sqrt2;
> vector v1=[0,0,1];
> vector v2=[0,2/3*sqrt2,-1/3];
> vector v3=[-1/3*sqrt6,-1/3*sqrt2,-1/3];
> vector v4=[1/3*sqrt6,-1/3*sqrt2,-1/3];
> matrix basesaux[3][3]=matrix(v1),matrix(v2),matrix(v3);
> matrix b1bc=transpose(basesaux);
> power(b1bc,-1);
_[1,1]=1
_[1,2]=0
_[1,3]=0
_[2,1]=0
_[2,2]=1
_[2,3]=0
_[3,1]=0
_[3,2]=0
_[3,3]=1
>
the result can't be correct since the matrix b1bc is not the unit matrix. Am I doing anything wrong?
Best,
Javier