|
7.5.14.0. dmodActionRat
Procedure from library dmodloc.lib (see dmodloc_lib).
- Usage:
- dmodActionRat(id,w); id ideal or poly, f vector
- Assume:
- The basering is the n-th Weyl algebra W over a field of
characteristic 0 and for all 1<=i<=n the identity
var(i+n)*var(i)=var(i)*var(i+1)+1 holds, i.e. the sequence of
variables is given by x(1),...,x(n),D(1),...,D(n), where D(i) is the
differential operator belonging to x(i).
Further, assume that w has exactly two components, second one not 0,
and that w does not contain any D(i).
- Return:
- same type as id, the result of the natural D-module action of id on
the rational function w[1]/w[2]
Example:
| LIB "dmodloc.lib";
ring r = 0,(x,y),dp;
poly f = 2*x; poly g = y;
def A = annRat(f,g); setring A;
poly f = imap(r,f); poly g = imap(r,g);
vector v = [f,g]; // represents f/g
// x and y act by multiplication
dmodActionRat(x,v);
==> _[1]=2*x^2*gen(1)+y*gen(2)
dmodActionRat(y,v);
==> _[1]=2*x*gen(1)+gen(2)
// Dx and Dy act by partial derivation
dmodActionRat(Dx,v);
==> _[1]=y*gen(2)+2*gen(1)
dmodActionRat(Dy,v);
==> _[1]=y^2*gen(2)-2*x*gen(1)
dmodActionRat(x*Dx+y*Dy,v);
==> _[1]=gen(2)
setring r;
f = 2*x*y; g = x^2 - y^3;
def B = annRat(f,g); setring B;
poly f = imap(r,f); poly g = imap(r,g);
vector v = [f,g];
dmodActionRat(LD,v); // hence LD is indeed the annihilator of f/g
==> _[1]=gen(2)
==> _[2]=gen(2)
==> _[3]=gen(2)
==> _[4]=gen(2)
==> _[5]=gen(2)
|
|