Post a reply
Username:
Note:If not registered, provide any username. For more comfort, register here.
Subject:
Message body:
Enter your message here, it may contain no more than 60000 characters. 

Smilies
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:
Font size:
Font colour
Options:
BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON
Disable BBCode
Disable smilies
Do not automatically parse URLs
Confirmation of post
To prevent automated posts the board requires you to enter a confirmation code. The code is displayed in the image you should see below. If you are visually impaired or cannot otherwise read this code please contact the %sBoard Administrator%s.
Confirmation code:
Enter the code exactly as it appears. All letters are case insensitive, there is no zero.
   

Topic review - How to use primdecGTZ
Author Message
  Post subject:  Re: How to use primdecGTZ  Reply with quote
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.
Post Posted: Tue Dec 14, 2010 4:41 am
  Post subject:  Re: How to use primdecGTZ  Reply with quote
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.
Post Posted: Mon Dec 06, 2010 11:39 am
  Post subject:  Re: How to use primdecGTZ  Reply with quote
As always:
Please provide the full input and output of your computation, otherwise we cannot help you.
Post Posted: Sat Dec 04, 2010 1:57 pm
  Post subject:  How to use primdecGTZ  Reply with quote
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?
Post Posted: Fri Dec 03, 2010 2:28 pm


It is currently Fri May 13, 2022 11:08 am
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group