Changeset 065ddc in git


Ignore:
Timestamp:
May 10, 2005, 7:31:26 PM (19 years ago)
Author:
Viktor Levandovskyy <levandov@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
21119d12f3dba9a59dfbf58b2aed95d9a75eb219
Parents:
8bfb2f17fa39d7754b72530738b0e49025d026dc
Message:
*levandov: docu and examples updated


git-svn-id: file:///usr/local/Singular/svn/trunk@8132 2c84dea3-7e68-4137-9b89-c4e89433aadc
Location:
Singular/LIB
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/center.lib

    r8bfb2f1 r065ddc  
    11///////////////////////////////////////////////////////////////////////////////
    2 version="$Id: center.lib,v 1.14 2005-05-06 14:38:08 hannes Exp $";
     2version="$Id: center.lib,v 1.15 2005-05-10 17:31:08 levandov Exp $";
    33category="Noncommutative";
    44info="
    5 LIBRARY:  center.lib      computation of central elements of G-algebras and Q-algebras.
     5LIBRARY:  center.lib      computation of central elements of G-algebras and their factor-algebras.
    66AUTHOR:  Oleksandr Motsak,        motsak@mathematik.uni-kl.de.
    77OVERVIEW:
     
    99 Implementation is based on algorithms, written in the frame of the diploma thesis by O. Motsak (advisor: Prof. S.A. Ovsienko, support: V. Levandovskyy), at Kyiv Taras Shevchenko University (Ukraine) with the title 'An algorithm for the computation of the center of noncommutative polynomial algebra'.
    1010
    11 SUPPORT: Forschungsschwerpunkt 'Mathematik und Praxis'
     11SUPPORT: Forschungsschwerpunkt 'Mathematik und Praxis', University of Kaiserslautern
    1212
    1313PROCEDURES:
     
    288288  if( defined( @@@SORTEDVARARRAY ) )
    289289    {
    290       kill ( @@@SORTEDVARARRAY );
     290      kill @@@SORTEDVARARRAY;
    291291    };
    292292
     
    331331  if( defined( @@@SORTEDVARARRAY ) )
    332332    {
    333       kill ( @@@SORTEDVARARRAY );
     333      kill @@@SORTEDVARARRAY;
    334334    };
    335335};
     
    366366  if( defined(@@@MY_QIDEAL) )
    367367    {
    368       kill (@@@MY_QIDEAL);
     368      kill @@@MY_QIDEAL;
    369369    };
    370370
     
    386386  if( defined(@@@MY_QIDEAL) )
    387387    {
    388       kill (@@@MY_QIDEAL);
     388      kill @@@MY_QIDEAL;
    389389    };
    390390};
     
    19041904    {
    19051905      setring(save);
    1906       kill(NewRingWithGoodField);
     1906      kill NewRingWithGoodField;
    19071907    };
    19081908
     
    24682468/******************************************************/
    24692469proc inCenter( def a )
    2470   "USAGE:   inCenter(a); a poly/list/ideal
    2471 RETURN:  integer (1 if a in the center, 0 otherwise)
    2472 EXAMPLE: example inCenter; shows examples"
    2473 {
     2470"USAGE:   inCenter(a); a poly/list/ideal
     2471RETURN:  integer, 1 if a in the center, 0 otherwise
     2472PURPOSE: check whether a given element is central
     2473EXAMPLE: example inCenter; shows examples
     2474"{
    24742475  QNF_init();
    24752476  def res;
     
    25152516proc inCentralizer( def a, poly f )
    25162517"USAGE:   inCentralizer(a, f); a poly/list/ideal, f poly
    2517 RETURN:  integer (1 if a in the centralizer(f), 0 otherwise)
    2518 EXAMPLE: example inCentralizer; shows examples"
    2519 {
     2518RETURN:  integer, 1 if a in the centralizer(f), 0 otherwise
     2519PURPOSE: check whether a given element is centralizing with respect to f
     2520EXAMPLE: example inCentralizer; shows examples
     2521"{
    25202522  QNF_init();
    25212523  def res;
     
    25462548  ncalgebra(1,D); // the Heisenberg algebra
    25472549  poly f = x^2;
    2548   poly a = z; // lies in center
     2550  poly a = z; // we know this element if central
    25492551  poly b = y^2;
    25502552  inCentralizer(a, f);
     
    25592561proc center(int MaxDeg, list # )
    25602562"USAGE:      center(MaxDeg[, N]); int MaxDeg, int N
    2561 RETURN:     ideal generated by found elements
    2562 NOTE:       computes the 'minimal' set of central elements.
    2563             Since in general algorithms knows nothing about the number and degrees of
    2564             desired polynomials one have to specify any kind of termination condition:
    2565             1. MaxDeg - maximal degree of desired elements or/and
    2566             2. n - the minimal number of desired elements to find.
     2563RETURN:     ideal, generated by elements of degree at most MaxDeg
     2564PURPOSE:    computes a minimal set of central elements up to degree MaxDeg.
     2565NOTE:       In general, one cannot predict the number or the heighest degree of
     2566 central elements. Hence, one has to specify a termination condition via arguments MaxDeg and/or N.
     2567@*   If MaxDeg is positive, the computation stops after all central elements of degree at most MaxDeg has been found.
     2568@*   If MaxDeg is negative, the termination is determined by N only.
     2569@*   If N is given, the computation stops if at least N central elements has been found.
     2570@* Warning: if N is given and bigger than the real number of generators, the procedure may not terminate.
    25672571SEE ALSO:   centralizer; inCenter
    25682572EXAMPLE:    example center; shows an example
    2569 "
    2570 {
     2573"{
    25712574  if ( myInt(#) > 0 ) // given a number of central elements to compute
    25722575    {
     
    25822585  print( "Error: wrong arguments." );
    25832586  return();
    2584 
    25852587}
    25862588example
    25872589{ "EXAMPLE:"; echo = 2;
    2588  ring a=0,(x,y,z),dp;
    2589  matrix D[3][3]=0;
    2590  D[1,2]=-z;
    2591  D[1,3]=2*x;
    2592  D[2,3]=-2*y;
    2593  ncalgebra(1,D); // this is U(sl_2)
    2594  ideal Z = center(2); // find all central elements of degree <= 2
    2595  Z;
    2596  inCenter(Z);
    2597  ideal ZZ = center(-1, 1 ); // find the first non trivial central element
    2598  ZZ; "";
    2599  inCenter(ZZ);
     2590  ring A = 0,(x,y,z,t),dp;
     2591  matrix D[4][4]=0;
     2592  D[1,2]=-z;  D[1,3]=2*x;  D[2,3]=-2*y;
     2593  ncalgebra(1,D); // this algebra is U(sl_2) tensored with K[t]
     2594  ideal Z = center(3); // find all central elements of degree <= 3
     2595  Z;
     2596  inCenter(Z);
     2597  ideal ZZ = center(-1, 1); // find one central element of the lowest degree
     2598  ZZ;
     2599  inCenter(ZZ);
    26002600};
    26012601
     
    26042604proc centralizer( poly p, int MaxDeg, list # )
    26052605"USAGE:      centralizer(F, MaxDeg[, N]); poly F, int MaxDeg, int N
    2606 RETURN:     ideal generated by found elements
    2607 NOTE:       computes the 'minimal' set of elements of centralizer(F).
    2608             Since in general algorithms knows nothing about the number and degrees of
    2609             desired polynomials one have to specify any kind of termination condition:
    2610             1. MaxDeg - maximal degree of desired elements or/and
    2611             2. n - the minimal number of desired elements to find.
     2606RETURN:     ideal, generated by elements of degree <= MaxDeg
     2607PURPOSE:    computes a minimal set of elements centralizer(F) up to degree MaxDeg.
     2608NOTE:       In general, one cannot predict the number or the heighest degree of
     2609 centralizing elements. Hence, one has to specify a termination condition via arguments MaxDeg and/or N.
     2610@*   If MaxDeg is positive, the computation stops after all centralizing elements of degree at most MaxDeg has been found.
     2611@*   If MaxDeg is negative, the termination is determined by N only.
     2612@*   If N is given, the computation stops if at least N centralizing elements has been found.
     2613@* Warning: if N is given and bigger than the real number of generators, the procedure may not terminate.
    26122614SEE ALSO:   center; inCentralizer
    2613 EXAMPLE:    example centralizer; shows an example"
    2614 {
     2615EXAMPLE:    example centralizer; shows an example
     2616"{
    26152617
    26162618  if( myInt(#) > 0 )
     
    26312633example
    26322634{ "EXAMPLE:"; echo = 2;
    2633  ring a=0,(x,y,z),dp;
     2635 ring A = 0,(x,y,z),dp;
    26342636 matrix D[3][3]=0;
    2635  D[1,2]=-z;
    2636  D[1,3]=2*x;
    2637  D[2,3]=-2*y;
    2638  ncalgebra(1,D); // this is U(sl_2)
    2639  poly f = 4*x*y+z^2-2*z; // central polynomial
     2637 D[1,2]=-z; D[1,3]=2*x; D[2,3]=-2*y;
     2638 ncalgebra(1,D); // this algebra is U(sl_2)
     2639 poly f = 4*x*y+z^2-2*z; // a central polynomial
    26402640 f;
    2641  ideal c = centralizer(f, 2); // find all elements of degree <= 2 which lies in centralizer of f
    2642  c;
     2641 ideal c = centralizer(f, 2); // find all elements of the centralizer of f
     2642                              // of degree <= 2
     2643 c;  // since f is central, the answer consists of generators of A
    26432644 inCentralizer(c, f);
    2644  ideal cc = centralizer(f, -1, 2 ); // find at least first two non trivial elements of the centralizer of f
     2645 ideal cc = centralizer(f,-1,2); // find at least two elements of the centralizer of f
    26452646 cc;
    26462647 inCentralizer(cc, f);
    2647  poly g = z^2-2*z; // any polynomial
    2648  g; "";
    2649  c = centralizer(g, 2); // find all elements of degree <= 2 which lies in centralizer of g
    2650  c; "";
     2648 poly g = z^2-2*z; // some non-central polynomial
     2649 c = centralizer(g, 2); // find all elements of the centralizer of g
     2650                        // of degree <= 2
     2651 c;
    26512652 inCentralizer(c, g);
    2652  cc = centralizer(g, -1, 2 ); // find at least first two non trivial elements of the centralizer of g
    2653  cc; "";
     2653 centralizer(g,-1,1); // find the element of the lowest degree in the centralizer
     2654 cc = centralizer(g,-1,2); // find at least two elements of the centralizer of g
     2655 cc;
    26542656 inCentralizer(cc, g);
    26552657};
  • Singular/LIB/involut.lib

    r8bfb2f1 r065ddc  
    1 version="$Id: involut.lib,v 1.4 2005-05-06 14:38:40 hannes Exp $";
     1version="$Id: involut.lib,v 1.5 2005-05-10 17:31:26 levandov Exp $";
    22category="Noncommutative";
    33info="
     
    77@*        Viktor Levandovskyy,  levandov@mathematik.uni-kl.de
    88
     9THEORY: Involution is an antiisomorphism of a noncommutative algebra with the
     10 property that applied an involution twice, one gets an identity. Involution is linear with respect to the ground field. In this library we compute linear involutions, distinguishing the case of a diagonal matrix (such involutions are called homothetic) and a general one.
     11
    912SUPPORT: Forschungsschwerpunkt 'Mathematik und Praxis' (Project of Dr. E. Zerz
    1013and V. Levandovskyy), Uni Kaiserslautern
     
    1720find_invo_diag();     describes a variety of homothetic (diagonal) involutions on a basering;
    1821find_auto();          describes a variety of linear automorphisms of a basering;
    19 ncdetection(ring r);  computes an ideal, presenting an involution map on some particular noncommutative algebras;
     22ncdetection();  computes an ideal, presenting an involution map on some particular noncommutative algebras;
    2023involution(m, map theta);  applies the involution to an object.
    2124";
     
    2528LIB "primdec.lib";
    2629///////////////////////////////////////////////////////////////////////////////
    27 proc ncdetection(def r)
    28 "USAGE:  ncdetection(r), r a ring
    29 PURPOSE: compute optimized involutions for some particular noncommutative algebras
    30 RETURN:  ideal (presenting an involution map)
    31 NOTE:    the procedure is aimed at noncommutative algebras with differential, shift or advance operators arising in the Control Theory
     30proc ncdetection()
     31"USAGE:  ncdetection();
     32RETURN:  ideal, representing an involution map
     33PURPOSE: compute classical involutions (i.e. acting rather on operators than on variables) for some particular noncommutative algebras
     34ASSUME: the procedure is aimed at noncommutative algebras with differential, shift or advance operators arising in Control Theory. It has to be executed in the ring.
    3235EXAMPLE: example ncdetection; shows an example
    3336"{
     
    3740// der differential-, shift- oder advance-operatoren enthaelt mit denen die i-te
    3841// variable nicht kommutiert.
     42  if ( nameof(basering)=="basering" )
     43  {
     44    "No current ring defined.";
     45    return(ideal(0));
     46  }
     47  def r = basering;
     48  setring r;
    3949  int i,j,k,LExp;
    4050  int NVars  = nvars(r);
     
    155165  D[1,4]=1; D[2,5]=1;  D[3,6]=1;
    156166  ncalgebra(1,D);
    157   ncdetection(r);
     167  ncdetection();
    158168  kill r;
    159169  //----------------------------------------
    160170  ring r=0,(x,S),dp;
    161171  ncalgebra(1,-S);
    162   ncdetection(r);
     172  ncdetection();
    163173  kill r;
    164174  //----------------------------------------
     
    167177  D[1,2]=1;  D[1,3]=-S;
    168178  ncalgebra(1,D);
    169   ncdetection(r);
     179  ncdetection();
    170180}
    171181
     
    267277proc involution(m, map theta)
    268278"USAGE:  involution(m, theta); m is a poly/vector/ideal/matrix/module, theta is a map
    269 PURPOSE: applies the involution, presented by theta to the input m
    270279RETURN:  object of the same type as m
     280PURPOSE: applies the involution, presented by theta to the object m
     281THEORY: for an involution theta and two polynomials a,b from the algebra, theta(ab) = theta(b) theta(a); theta is linear with respect to the ground field
    271282EXAMPLE: example involution; shows an example
    272283"{
     
    405416proc find_invo()
    406417"USAGE: find_invo();
    407 PURPOSE: describes a variety of linear involutions on a basering
    408 RETURN: a ring together with a list of pairs L, where
     418RETURN: a ring containing a list L of pairs, where
    409419@*        L[i][1]  =  Groebner Basis of an i-th associated prime,
    410420@*        L[i][2]  =  matrix, defining a linear map, with entries, reduced with respect to L[i][1]
     421
     422PURPOSE: computed the ideal of linear involutions of the basering
     423
    411424NOTE: for convenience, the full ideal of relations @code{idJ}
    412425and the initial matrix with indeterminates @code{matD} are exported in the output ring.
     426EXAMPLE: example find_invo; shows examples
     427SEE ALSO: find_invo_diag, involution
    413428"{
    414429  def @B    = basering; //save the name of basering
     
    529544proc find_invo_diag()
    530545"USAGE: find_invo_diag();
    531 PURPOSE: describes a variety of homothetic (diagonal) involutions on a basering
    532546RETURN: a ring together with a list of pairs L, where
    533547@*        L[i][1]  =  Groebner Basis of an i-th associated prime,
    534548@*        L[i][2]  =  matrix, defining a linear map, with entries, reduced with respect to L[i][1]
     549
     550PURPOSE: compute the ideal of homothetic (diagonal) involutions of the basering
     551
    535552NOTE: for convenience, the full ideal of relations @code{idJ}
    536553and the initial matrix with indeterminates @code{matD} are exported in the output ring.
     554EXAMPLE: example find_invo_diag; shows examples
     555SEE ALSO: find_invo, involution
    537556"{
    538557  def @B    = basering; //save the name of basering
     
    654673proc find_auto()
    655674"USAGE: find_auto();
    656 PURPOSE: describes a variety of linear automorphisms of a basering
    657675RETURN: a ring together with a list of pairs L, where
    658676@*        L[i][1]  =  Groebner Basis of an i-th associated prime,
    659677@*        L[i][2]  =  matrix, defining a linear map, with entries, reduced with respect to L[i][1]
     678
     679PURPOSE: computes the ideal of linear automorphisms of the basering
     680
    660681NOTE: for convenience, the full ideal of relations @code{idJ}
    661682and the initial matrix with indeterminates @code{matD} are exported in the output ring.
     683EXAMPLE: example find_auto; shows examples
     684SEE ALSO: find_invo
    662685"{
    663686  def @B    = basering; //save the name of basering
  • Singular/LIB/nctools.lib

    r8bfb2f1 r065ddc  
    11///////////////////////////////////////////////////////////////////////////////
    2 version="$Id: nctools.lib,v 1.12 2005-05-06 14:38:50 hannes Exp $";
     2version="$Id: nctools.lib,v 1.13 2005-05-10 17:31:08 levandov Exp $";
    33category="Noncommutative";
    44info="
     
    2222
    2323AUXILIARY PROCEDURES:
    24 Newton(f);                  Newton diagram of a polynomial,
    25 NCRelations(r);                recovers the non-commutative relations of a G-algebra,
    26 IsCentral(p,[v]);       check for the commutativity of a polynomial in the G-algebra,
    27 Is_NC();                checks whether basering is noncommutative,
     24Newton(f);              Newton diagram of a polynomial,
     25NCRelations(r);         recovers the non-commutative relations of a G-algebra,
     26isCentral(p,[v]);       check for the commutativity of a polynomial in the G-algebra,
     27isNC();                 checks whether basering is noncommutative,
    2828UpOneMatrix(N);         returns NxN matrix with 1's in the whole upper triagle,
    2929
    3030ALIAS PROCEDURES:
    31 wRing(r);                alias to weightedRing,
     31wRing(r);               alias to weightedRing,
    3232";
    3333
     
    185185  "EXAMPLE:";echo=2;
    186186  LIB "qmatrix.lib";
    187   def r=quant(2); // generate quant(2) and store it in r
     187  def r = quantMat(2); // generate quantum matrix of order 2 and store it in r
    188188  setring r; // set the ring r the active ring
    189189  r;
     
    503503///////////////////////////////////////////////////////////////////////////////
    504504
    505 proc IsCentral(poly p, list #)
    506 "USAGE:   IsCentral(p,[v]); p poly, v an integer (with v!=0, procedure will be verbose)
     505proc isCentral(poly p, list #)
     506"USAGE:   isCentral(p,[v]); p poly, v an integer (with v!=0, procedure will be verbose)
    507507PURPOSE: check whether p is central in a basering (that is, commutes with everything)
    508508RETURN:  integer (1, if p commutes with all variables, 0 otherwise)
    509 EXAMPLE: example IsCentral; shows examples
     509EXAMPLE: example isCentral; shows examples
    510510"{
    511511  int N = nvars(basering);
     
    537537  ncalgebra(1,D); // this is U(sl_2)
    538538  poly c = 4*x*y+z^2-2*z;
    539   IsCentral(c,0);
     539  isCentral(c,0);
    540540  poly h = x*c;
    541   IsCentral(h,1);
     541  isCentral(h,1);
    542542}
    543543
     
    910910//////////////////////////////////////////////////////////////////////
    911911
    912 proc Is_NC()
    913 "USAGE:   Is_NC();
     912proc isNC()
     913"USAGE:   isNC();
    914914PURPOSE: check whether a basering is commutative or not
    915915RETURN:   int (1, if basering is noncommutative; 0 otherwise)
    916 EXAMPLE: example Is_NC; shows examples
     916EXAMPLE: example isNC; shows examples
    917917"{
    918918  string rname=nameof(basering);
     
    939939   def a = CreateWeyl(2);
    940940   setring a;
    941    Is_NC();
     941   isNC();
    942942   kill a;
    943943   ring r = 17,(x(1..7)),dp;
    944    Is_NC();
     944   isNC();
    945945   kill r;
    946946}
Note: See TracChangeset for help on using the changeset viewer.