Annotation of OpenXM/src/asir-contrib/packages/sample/exp-dmod, Revision 1.1.1.1
1.1 takayama 1: /* $OpenXM: OpenXM/src/asir99/lib/contrib/packages/sample/exp-dmod,v 1.1 1999/11/10 12:01:02 takayama Exp $ */
2: /* exp-dmod, 1999/ 9/27 */
3: /* From 1999/Int/exp.asir */
4: /* Computing exponents of holonomic system along f=0 */
5:
6: /* In order to use #define in k0, use load["exp.asir"] */
7: print("load xm , sm1_start, init0 for initialization. extest2();");
8: def init0() {
9: extern Xm_noX;
10: sm1(0,"[(parse) (oxasir.sm1) pushfile] extension");
11: if (Xm_noX == 1) {
12: sm1(0," oxNoX ");
13: }
14: sm1(0,"[(parse) (intw.sm1) pushfile] extension");
15: ox_check_errors2(0);
16: }
17:
18: def sm1reset() {
19: ox_reset(0);
20: print("Restoring sm1 local variables.")$
21: sm1(0," db.restore ");
22: ox_check_errors2(0);
23: }
24: register_handler(sm1reset);
25:
26: def extest2() {
27: F = x;
28: A = [t-F, dx+diff(F,x)*dt, dy+diff(F,y)*dt];
29: EEE = ["dx (2 x dx + 3) - (x dx + y dy + 10) (2 x dx -6)",
30: "dy (y dy - 8) - (x dx + y dy + 10) (y dy +2)","dt"];
31: EEE2 = ["dx (x dx-4) - (x dx + y dy + 10) ( x dx -6)",
32: "dy (y dy - 8) - (x dx + y dy + 10) (y dy +2)","dt"];
33: B=sm1_wTensor0(0,[A,EEE,
34: "t,x,y",[1,2,3]]);
35: print(["Tensor Product is ", B])$
36: G = sm1_wbf(0,[B,[t,x,y],[t,-1,dt,1]]);
37: return(G);
38:
39: }
40:
41: def extest3() {
42: print("This example seems to be hard!");
43: F = x*s-y*z;
44: A = [t-F, dx+diff(F,x)*dt, dy+diff(F,y)*dt,
45: dz+diff(F,z)*dt, ds+diff(F,s)*dt];
46: EEE = [x*dx+y*dy+z*dz+s*ds-2/3,
47: y*dy +s*ds+1/5,
48: z*dz+s*dx-3/2,
49: dx*ds-dy*dz,
50: dt];
51: EEE = sm1_rat_to_p(EEE); EEE = EEE[0];
52: print(["Numerator: ",EEE]);
53: B=sm1_wTensor0(0,[A,EEE,
54: "t,x,y,z,s",[1,2,3,4,5]]);
55: print(["Tensor Product is ", B])$
56: G = sm1_wbf(0,[B,[t,x,y,z,s],[t,-1,dt,1]]);
57: return(G);
58:
59: }
60:
61: def extest4() {
62: F = 1-x-y;
63: A = [t-F, dx+diff(F,x)*dt, dy+diff(F,y)*dt];
64: EEE = ["dx (2 x dx + 3) - (x dx + y dy + 10) (2 x dx -6)",
65: "dy (y dy - 8) - (x dx + y dy + 10) (y dy +2)","dt"];
66: B=sm1_wTensor0(0,[A,EEE,
67: "t,x,y",[1,2,3]]);
68: print(["Tensor Product is ", B])$
69: G = sm1_wbf(0,[B,[t,x,y],[t,-1,dt,1]]);
70: return(G);
71: /* 0 and -27/2 */
72: }
73:
74: def extest4a() {
75: A = 10; B = -3; Bp = -2; C=5/2;Cp=-7;
76: print([Cp-A-Bp+C-B,Cp-A-Bp]);
77: }
78: def nody(F) {
79: if (deg(F,dy) == 0) return(F);
80: else return(0);
81: }
82:
83: def extest4b() {
84: EEE = ["dx (2 x dx + 3) - (x dx + y dy + 10) (2 x dx -6)",
85: "dy (y dy - 8) - (x dx + y dy + 10) (y dy +2)"];
86: G = sm1_gb(0,[EEE,"x,y",[[dy,1]]]);
87: G = G[0];
88: print(["GB is ",G]);
89: H = map(nody,G);
90: H = map(subst,H,y,2);
91: J = sm1_gb(0,[H,"x"]);
92: print(["GB of ode is ",J]);
93: K = map(subst,J[0],x,x-1);
94: G = sm1_wbf(0,[K,[x],[x,-1,dx,1]]);
95: return(G);
96: }
97:
98: def extest5() {
99: EEE = ["dx (x dx + 3) - (x dx + y dy + 10) (x dx +y dy -6)",
100: "dy (y dy - 8) - (x dx + y dy + 10) (x dx + y dy -6)"];
101: /* Compute the singular locus
102: G = sm1_ch(0,[EEE,[x,y]]);
103: G = G[0];
104: print(["characteristic variety is ",G]);
105: H = sm1_saturation(0,[G,[dx,dy],[x,y,dx,dy]]);
106: return(gr(H,[dx,dy,x,y],2));
107: */
108: EEE = sm1_mul(0,1,EEE,[x,y]);
109: F = -x^2+(2*y+2)*x-y^2+2*y-1;
110: A = [t-F, dx+diff(F,x)*dt, dy+diff(F,y)*dt];
111: B=sm1_wTensor0(0,[A,EEE,
112: "t,x,y",[3,2,1]]);
113: print(["Tensor Product is ", B])$
114: G = sm1_wbf(0,[B,[t,x,y],[t,-1,dt,1]]);
115: return(G);
116: }
117:
118: end$
119:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>