Changeset 3d7b7f in git


Ignore:
Timestamp:
Sep 27, 2006, 2:42:54 AM (17 years ago)
Author:
Viktor Levandovskyy <levandov@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', '0604212ebb110535022efecad887940825b97c3f')
Children:
2245326a4cf500727c77d96a854a05d93f0cd772
Parents:
46e47be4429888a861c19cca3a82df58e9142f31
Message:
*levandov: bugfixes plus correctness for findAuto, n=0


git-svn-id: file:///usr/local/Singular/svn/trunk@9429 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/involut.lib

    r46e47be r3d7b7f  
    1 version="$Id: involut.lib,v 1.8 2005-06-10 17:04:59 levandov Exp $";
     1version="$Id: involut.lib,v 1.9 2006-09-27 00:42:54 levandov Exp $";
    22category="Noncommutative";
    33info="
     
    535535example
    536536{ "EXAMPLE:"; echo = 2;
    537  def a = makeWeyl(1);
    538  setring a; // this algebra is a first Weyl algebra
    539  def X = findInvo();
    540  setring X; // ring with new variables, corr. to unknown coefficients
    541  L;
    542  // look at the matrix in the new variables, defining the linear involution
    543  print(L[1][2]);
    544  L[1][1];  // where new variables obey these relations
     537  def a = makeWeyl(1);
     538  setring a; // this algebra is a first Weyl algebra
     539  def X = findInvo();
     540  setring X; // ring with new variables, corr. to unknown coefficients
     541  L;
     542  // look at the matrix in the new variables, defining the linear involution
     543  print(L[1][2]);
     544  L[1][1];  // where new variables obey these relations
    545545}
    546546///////////////////////////////////////////////////////////////////////////
     
    663663example
    664664{ "EXAMPLE:"; echo = 2;
    665  def a = makeWeyl(1);
    666  setring a; // this algebra is a first Weyl algebra
    667  def X = findInvoDiag();
    668  setring X; // ring with new variables, corresponding to unknown coefficients
    669  // print matrices, defining linear involutions
    670  print(L[1][2]);  // a first matrix: we see it is constant
    671  print(L[2][2]);  // and a second possible matrix; it is constant too
    672  L; // let us take a look on the whole list
     665  def a = makeWeyl(1);
     666  setring a; // this algebra is a first Weyl algebra
     667  def X = findInvoDiag();
     668  setring X; // ring with new variables, corresponding to unknown coefficients
     669  // print matrices, defining linear involutions
     670  print(L[1][2]);  // a first matrix: we see it is constant
     671  print(L[2][2]);  // and a second possible matrix; it is constant too
     672  L; // let us take a look on the whole list
    673673}
    674674/////////////////////////////////////////////////////////////////////
     
    679679@*        L[i][2]  =  matrix, defining a linear map, with entries, reduced with respect to L[i][1]
    680680PURPOSE: computes the ideal of linear automorphisms of the basering, given by a matrix, n-th power of which gives identity (i.e. unipotent matrix)
    681 NOTE: if n=0, a matrix, defining an automorphism is not assumed to be unipotent. For convenience, the full ideal of relations @code{idJ}
    682 and the initial matrix with indeterminates @code{matD} are exported in the output ring
     681NOTE: if n=0, a matrix, defining an automorphism is not assumed to be unipotent but just non-degenerate. A nonzero parameter @code{@p} is introduced as the value of the determinant of the matrix above.
     682@* For convenience, the full ideal of relations @code{idJ} and the initial matrix with indeterminates @code{matD} are mutually exported in the output ring
    683683SEE ALSO: findInvo
    684684EXAMPLE: example findAuto; shows examples
     
    695695  matrix Rel = RelMatr(); //the matrix of relations
    696696
    697   string = new_var(); //string of new variables
     697  string @ss = new_var(); //string of new variables
    698698  string Par = parstr(@B); //string of parameters in old ring
    699699
    700700  if (Par=="") // if there are no parameters
    701701  {
    702     execute("ring @@K=0,("+varstr(@B)+","+s+"), dp;"); //new ring with new variables
     702    execute("ring @@K=0,("+varstr(@B)+","+@ss+"), dp;"); //new ring with new variables
    703703  }
    704704  else //if there exist parameters
    705705  {
    706      execute("ring @@K=(0,"+Par+") ,("+varstr(@B)+","+s+"), dp;");//new ring with new variables
     706     execute("ring @@K=(0,"+Par+") ,("+varstr(@B)+","+@ss+"), dp;");//new ring with new variables
    707707  };
    708708
     
    756756  J = simplify(J,2);
    757757  //-------------------------------------------------
    758   if ( Par=="" ) //initializes the ring of relations
    759   {
    760     execute("ring @@KK=0,("+s+"), dp;");
    761   }
    762   else
    763   {
    764     execute("ring @@KK=(0,"+Par+"),("+s+"), dp;");
    765   };
     758  if (( Par=="" ) && (n!=0)) //initializes the ring of relations
     759  {
     760    execute("ring @@KK=0,("+@ss+"), dp;");
     761  }
     762  if (( Par=="" ) && (n==0)) //initializes the ring of relations
     763  {
     764    execute("ring @@KK=(0,@p),("+@ss+"), dp;");
     765  }
     766  if ( Par!="" )
     767  {
     768    execute("ring @@KK=(0,"+Par+"),("+@ss+"), dp;");
     769  };
     770  //  execute("setring @@KK;");
     771  //  basering;
    766772  ideal J = imap(@@K,J); // ideal, considered in @@KK now
    767773  string snv = "["+string(NVars)+"]";
    768   execute("matrix @@D"+snv+snv+"="+s+";"); // matrix with entries=new variables
     774  execute("matrix @@D"+snv+snv+"="+@ss+";"); // matrix with entries=new variables
    769775
    770776  if (n>=2)
    771777  {
    772778    J = J, ideal( @@D*@@D-matrix( freemodule(NVars) ) ); // add the condition that homomorphism to square is just identity
     779  }
     780  if (n==0)
     781  {
     782    J = J, det(@@D)-@p; // det of non-unipotent matrix is nonzero
    773783  }
    774784  J       = simplify(J,2); // without extra zeros
     
    798808example
    799809{ "EXAMPLE:"; echo = 2;
    800  def a = makeWeyl(1);
    801  setring a; // this algebra is a first Weyl algebra
    802  def X = findAuto(2);
    803  setring X; // ring with new variables - unknown coefficients
    804  // look at matrices, defining linear automorphisms:
    805  print(L[1][2]);  // a first one: we see it is constant
    806  print(L[2][2]);  // and a second possible matrix; it is constant too
    807  L; // let us take a look on the whole list
    808 }
     810  def a = makeWeyl(1);
     811  setring a; // this algebra is a first Weyl algebra
     812  def X = findAuto(2);
     813  setring X; // ring with new variables - unknown coefficients
     814  size(L); // we have (size(L)) families in the answer
     815  // look at matrices, defining linear automorphisms:
     816  print(L[1][2]);  // a first one: we see it is the identity
     817  print(L[2][2]);  // and a second possible matrix; it is diagonal
     818  // L; // we can take a look on the whole list, too
     819  kill X; kill a;
     820  //----------- find all the linear automorphisms --------------------
     821  //----------- use the call findAuto(0)          --------------------
     822  ring r = 0,(x,s),dp;
     823  ncalgebra(1,s); // the shift algebra
     824  s*x; // the only relation in the algebra is:
     825  def Y = findAuto(0);
     826  setring Y;
     827  size(L); // here, we have 1 parametrized family
     828  print(L[1][2]); // here, @p is a nonzero parameter
     829}
Note: See TracChangeset for help on using the changeset viewer.