Back to Forum | View unanswered posts | View active topics
Topic review - How to use primdecGTZ |
Author |
Message |
|
|
Post subject: |
Re: How to use primdecGTZ |
|
|
You are right, primdecGTZ gives a wrong answer in your example. Thank you for the bug report! The bug will be fixed in the next release of Singular.
You are right, primdecGTZ gives a wrong answer in your example. Thank you for the bug report! The bug will be fixed in the next release of Singular.
|
|
|
|
Posted: Tue Dec 14, 2010 4:41 am |
|
|
|
|
|
Post subject: |
Re: How to use primdecGTZ |
|
|
Input:Code: LIB "primdec.lib"; LIB "linalg.lib"; LIB "teachstd.lib";
int n=3; ring r=0,(x(1..n)(1..n),T),lp; matrix M[n][n];
// generate a diagnoal matrix with variables as entries // this is the general maximal torus for(int j=1; j<=n; j=j+1){ for (int i=1; i<=n; i=i+1) { M[i,j]=0; if(i==j) {M[i,j]=x(i)(j);} }}
// generate another maximal torus by conjugating // with an invertible matrix N: matrix N[n][n]; N[1,1..3]=1,1,1; N[2,1..3]=0,1,1; N[3,1..3]=0,0,1;
matrix S=inverse(N)*M*N; // define the ideal generated by the matrix entries ideal J=det(M)*T-1; for(int j=1; j<=n; j=j+1){for(int i=1; i<=n; i=i+1){ J[i+j*n]=x(i)(j)-S[i,j]; }}
// as above to obtain another maximal torus N[1,1..3]=1,0,0; N[2,1..3]=1,1,0; N[3,1..3]=1,1,1;
matrix S=inverse(N)*M*N; ideal F=det(M)*T-1; for(int j=1; j<=n; j=j+1){for(int i=1; i<=n; i=i+1){ F[i+j*n]=x(i)(j)-S[i,j]; }} print("det(N)="); det(N);
ideal H=intersect(J,F); primdecGTZ(H); NFMora(x(1)(1),H);
Output:Code: det(N)= 1 [1]: [1]: _[1]=1 [2]: _[1]=1 x(1)(3)-x(2)(1)+x(2)(2)
As I understand this output, it means, that the primary decomposition of the intersection of J and F is trivial (consist only of one pair (R,R), with R the whole ring). But also the intersection does not contain the polynomial x(1)(1), because the normalform leaves a non-zero remainder.
[b]Input:[/b] [code] LIB "primdec.lib"; LIB "linalg.lib"; LIB "teachstd.lib";
int n=3; ring r=0,(x(1..n)(1..n),T),lp; matrix M[n][n];
// generate a diagnoal matrix with variables as entries // this is the general maximal torus for(int j=1; j<=n; j=j+1){ for (int i=1; i<=n; i=i+1) { M[i,j]=0; if(i==j) {M[i,j]=x(i)(j);} }}
// generate another maximal torus by conjugating // with an invertible matrix N: matrix N[n][n]; N[1,1..3]=1,1,1; N[2,1..3]=0,1,1; N[3,1..3]=0,0,1;
matrix S=inverse(N)*M*N; // define the ideal generated by the matrix entries ideal J=det(M)*T-1; for(int j=1; j<=n; j=j+1){for(int i=1; i<=n; i=i+1){ J[i+j*n]=x(i)(j)-S[i,j]; }}
// as above to obtain another maximal torus N[1,1..3]=1,0,0; N[2,1..3]=1,1,0; N[3,1..3]=1,1,1;
matrix S=inverse(N)*M*N; ideal F=det(M)*T-1; for(int j=1; j<=n; j=j+1){for(int i=1; i<=n; i=i+1){ F[i+j*n]=x(i)(j)-S[i,j]; }} print("det(N)="); det(N);
ideal H=intersect(J,F); primdecGTZ(H); NFMora(x(1)(1),H); [/code]
[b]Output:[/b] [code] det(N)= 1 [1]: [1]: _[1]=1 [2]: _[1]=1 x(1)(3)-x(2)(1)+x(2)(2) [/code]
As I understand this output, it means, that the primary decomposition of the intersection of J and F is trivial (consist only of one pair (R,R), with R the whole ring). But also the intersection does not contain the polynomial x(1)(1), because the normalform leaves a non-zero remainder.
|
|
|
|
Posted: Mon Dec 06, 2010 11:39 am |
|
|
|
|
|
Post subject: |
Re: How to use primdecGTZ |
|
|
As always: Please provide the full input and output of your computation, otherwise we cannot help you.
As always: Please provide the full input and output of your computation, otherwise we cannot help you.
|
|
|
|
Posted: Sat Dec 04, 2010 1:57 pm |
|
|
|
|
|
Post subject: |
How to use primdecGTZ |
|
|
I calculated an ideal H as follows Code: ideal H=intersect(J,F); where J and F are ideals arising from maximal tori. Then Code: primdecGTZ(H); just returns Code: [1]: [1]: _[1]=1 [2]: _[1]=1 Which would mean, that H equals the whole ring. However Code: NFMora(x(1)(1),H) is not zero. [The variables in my ring are labelled x(1..3)(1..3)]. What am i missing? Is there something wrong with my approach?
I calculated an ideal H as follows [code]ideal H=intersect(J,F);[/code] where J and F are ideals arising from maximal tori. Then [code]primdecGTZ(H);[/code] just returns [code][1]: [1]: _[1]=1 [2]: _[1]=1[/code] Which would mean, that H equals the whole ring. However [code]NFMora(x(1)(1),H)[/code] is not zero. [The variables in my ring are labelled x(1..3)(1..3)].
What am i missing? Is there something wrong with my approach?
|
|
|
|
Posted: Fri Dec 03, 2010 2:28 pm |
|
|
|
|
|
It is currently Fri May 13, 2022 11:08 am
|
|