Annotation of OpenXM/src/asir-contrib/packages/sample/exp-dmod, Revision 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>