| version 1.7, 2000/12/14 01:38:37 |
version 1.10, 2000/12/15 01:34:31 |
|
|
| * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
| * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
| * |
* |
| * $OpenXM: OpenXM_contrib2/asir2000/lib/bfct,v 1.6 2000/12/13 05:37:31 noro Exp $ |
* $OpenXM$ |
| */ |
*/ |
| /* requires 'primdec' */ |
/* requires 'primdec' */ |
| |
|
| /* annihilating ideal of F^s */ |
/* annihilating ideal of F^s */ |
|
|
| def ann(F) |
def ann(F) |
| { |
{ |
| V = vars(F); |
V = vars(F); |
| W = append([y1,y2,t],V); |
|
| N = length(V); |
N = length(V); |
| B = [1-y1*y2,t-y1*F]; |
D = newvect(N); |
| |
|
| |
for ( I = 0; I < N; I++ ) |
| |
D[I] = [deg(F,V[I]),V[I]]; |
| |
qsort(D,compare_first); |
| |
for ( V = [], I = N-1; I >= 0; I-- ) |
| |
V = cons(D[I][1],V); |
| |
|
| for ( I = N-1, DV = []; I >= 0; I-- ) |
for ( I = N-1, DV = []; I >= 0; I-- ) |
| DV = cons(strtov("d"+rtostr(V[I])),DV); |
DV = cons(strtov("d"+rtostr(V[I])),DV); |
| |
|
| |
W = append([y1,y2,t],V); |
| DW = append([dy1,dy2,dt],DV); |
DW = append([dy1,dy2,dt],DV); |
| |
|
| |
B = [1-y1*y2,t-y1*F]; |
| for ( I = 0; I < N; I++ ) { |
for ( I = 0; I < N; I++ ) { |
| B = cons(DV[I]+y1*diff(F,V[I])*dt,B); |
B = cons(DV[I]+y1*diff(F,V[I])*dt,B); |
| } |
} |
| |
|
| |
/* homogenized (heuristics) */ |
| dp_nelim(2); |
dp_nelim(2); |
| G0 = dp_weyl_gr_main(B,append(W,DW),0,0,6); |
G0 = dp_weyl_gr_main(B,append(W,DW),1,0,6); |
| G1 = []; |
G1 = []; |
| for ( T = G0; T != []; T = cdr(T) ) { |
for ( T = G0; T != []; T = cdr(T) ) { |
| E = car(T); VL = vars(E); |
E = car(T); VL = vars(E); |
|
|
| return G4; |
return G4; |
| } |
} |
| |
|
| def indicial1(F,V) |
/* |
| |
* compute J_f|s=r, where r = the minimal integral root of global b_f(s) |
| |
* ann0(F) returns [MinRoot,Ideal] |
| |
*/ |
| |
|
| |
def ann0(F) |
| { |
{ |
| V = vars(F); |
V = vars(F); |
| |
N = length(V); |
| |
D = newvect(N); |
| |
|
| |
for ( I = 0; I < N; I++ ) |
| |
D[I] = [deg(F,V[I]),V[I]]; |
| |
qsort(D,compare_first); |
| |
for ( V = [], I = 0; I < N; I++ ) |
| |
V = cons(D[I][1],V); |
| |
|
| |
for ( I = N-1, DV = []; I >= 0; I-- ) |
| |
DV = cons(strtov("d"+rtostr(V[I])),DV); |
| |
|
| |
/* XXX : heuristics */ |
| |
W = append([y1,y2,t],reverse(V)); |
| |
DW = append([dy1,dy2,dt],reverse(DV)); |
| |
WDW = append(W,DW); |
| |
|
| |
B = [1-y1*y2,t-y1*F]; |
| |
for ( I = 0; I < N; I++ ) { |
| |
B = cons(DV[I]+y1*diff(F,V[I])*dt,B); |
| |
} |
| |
|
| |
/* homogenized (heuristics) */ |
| |
dp_nelim(2); |
| |
G0 = dp_weyl_gr_main(B,WDW,1,0,6); |
| |
G1 = []; |
| |
for ( T = G0; T != []; T = cdr(T) ) { |
| |
E = car(T); VL = vars(E); |
| |
if ( !member(y1,VL) && !member(y2,VL) ) |
| |
G1 = cons(E,G1); |
| |
} |
| |
G2 = map(subst,G1,dt,1); |
| |
G3 = map(b_subst,G2,t); |
| |
G4 = map(subst,G3,t,-1-s); |
| |
|
| |
/* G4 = J_f(s) */ |
| |
|
| |
V1 = cons(s,V); DV1 = cons(ds,DV); V1DV1 = append(V1,DV1); |
| |
G5 = dp_weyl_gr_main(cons(F,G4),V1DV1,0,1,0); |
| |
Bf = weyl_minipoly(G5,V1DV1,0,s); |
| |
|
| |
FList = cdr(fctr(Bf)); |
| |
for ( T = FList, Min = 0; T != []; T = cdr(T) ) { |
| |
LF = car(car(T)); |
| |
Root = -coef(LF,0)/coef(LF,1); |
| |
if ( dn(Root) == 1 && Root < Min ) |
| |
Min = Root; |
| |
} |
| |
return [Min,map(subst,G4,s,Min)]; |
| |
} |
| |
|
| |
def indicial1(F,V) |
| |
{ |
| W = append([y1,t],V); |
W = append([y1,t],V); |
| N = length(V); |
N = length(V); |
| B = [t-y1*F]; |
B = [t-y1*F]; |
| Line 90 def indicial1(F,V) |
|
| Line 160 def indicial1(F,V) |
|
| B = cons(DV[I]+y1*diff(F,V[I])*dt,B); |
B = cons(DV[I]+y1*diff(F,V[I])*dt,B); |
| } |
} |
| dp_nelim(1); |
dp_nelim(1); |
| /* we use homogenization (heuristically determined) */ |
|
| |
/* homogenized (heuristics) */ |
| G0 = dp_weyl_gr_main(B,append(W,DW),1,0,6); |
G0 = dp_weyl_gr_main(B,append(W,DW),1,0,6); |
| G1 = map(subst,G0,y1,1); |
G1 = map(subst,G0,y1,1); |
| Mat = newmat(2,2,[[-1,1],[0,1]]); |
Mat = newmat(2,2,[[-1,1],[0,1]]); |