Changeset 3d7b7f in git
- Timestamp:
- Sep 27, 2006, 2:42:54 AM (17 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', '0604212ebb110535022efecad887940825b97c3f')
- Children:
- 2245326a4cf500727c77d96a854a05d93f0cd772
- Parents:
- 46e47be4429888a861c19cca3a82df58e9142f31
- 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:59levandov Exp $";1 version="$Id: involut.lib,v 1.9 2006-09-27 00:42:54 levandov Exp $"; 2 2 category="Noncommutative"; 3 3 info=" … … 535 535 example 536 536 { "EXAMPLE:"; echo = 2; 537 def a = makeWeyl(1);538 setring a; // this algebra is a first Weyl algebra539 def X = findInvo();540 setring X; // ring with new variables, corr. to unknown coefficients541 L;542 // look at the matrix in the new variables, defining the linear involution543 print(L[1][2]);544 L[1][1]; // where new variables obey these relations537 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 545 545 } 546 546 /////////////////////////////////////////////////////////////////////////// … … 663 663 example 664 664 { "EXAMPLE:"; echo = 2; 665 def a = makeWeyl(1);666 setring a; // this algebra is a first Weyl algebra667 def X = findInvoDiag();668 setring X; // ring with new variables, corresponding to unknown coefficients669 // print matrices, defining linear involutions670 print(L[1][2]); // a first matrix: we see it is constant671 print(L[2][2]); // and a second possible matrix; it is constant too672 L; // let us take a look on the whole list665 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 673 673 } 674 674 ///////////////////////////////////////////////////////////////////// … … 679 679 @* L[i][2] = matrix, defining a linear map, with entries, reduced with respect to L[i][1] 680 680 PURPOSE: 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} areexported in the output ring681 NOTE: 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 683 683 SEE ALSO: findInvo 684 684 EXAMPLE: example findAuto; shows examples … … 695 695 matrix Rel = RelMatr(); //the matrix of relations 696 696 697 string s= new_var(); //string of new variables697 string @ss = new_var(); //string of new variables 698 698 string Par = parstr(@B); //string of parameters in old ring 699 699 700 700 if (Par=="") // if there are no parameters 701 701 { 702 execute("ring @@K=0,("+varstr(@B)+","+ s+"), dp;"); //new ring with new variables702 execute("ring @@K=0,("+varstr(@B)+","+@ss+"), dp;"); //new ring with new variables 703 703 } 704 704 else //if there exist parameters 705 705 { 706 execute("ring @@K=(0,"+Par+") ,("+varstr(@B)+","+ s+"), dp;");//new ring with new variables706 execute("ring @@K=(0,"+Par+") ,("+varstr(@B)+","+@ss+"), dp;");//new ring with new variables 707 707 }; 708 708 … … 756 756 J = simplify(J,2); 757 757 //------------------------------------------------- 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; 766 772 ideal J = imap(@@K,J); // ideal, considered in @@KK now 767 773 string snv = "["+string(NVars)+"]"; 768 execute("matrix @@D"+snv+snv+"="+ s+";"); // matrix with entries=new variables774 execute("matrix @@D"+snv+snv+"="+@ss+";"); // matrix with entries=new variables 769 775 770 776 if (n>=2) 771 777 { 772 778 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 773 783 } 774 784 J = simplify(J,2); // without extra zeros … … 798 808 example 799 809 { "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.