ncpoly.rlg 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. Mon Jan 4 00:02:48 MET 1999
  2. REDUCE 3.7, 15-Jan-99 ...
  3. 1: 1:
  4. 2: 2: 2: 2: 2: 2: 2: 2: 2:
  5. 3: 3: nc_setup({k,n,NN,KK},{NN*n-n*NN=NN,KK*k-k*KK=KK},left);
  6. p1 := (n-k+1)*NN - (n+1);
  7. p1 := - k*nn + n*nn - n + nn - 1
  8. p2 := (k+1)*KK -(n-k);
  9. p2 := k*kk + k - n + kk
  10. l_g:=nc_groebner ({p1,p2});
  11. l_g := {k*nn - n*nn + n - nn + 1,
  12. k*kk + k - n + kk,
  13. n*nn*kk - n*kk - n + nn*kk - kk - 1}
  14. nc_preduce(p1+p2,l_g);
  15. 0
  16. nc_divide (k*p1+p2,p1);
  17. {k,k*kk + k - n + kk}
  18. nc_divide (k*p1+p2,2*p1);
  19. {k,2*k*kk + 2*k - 2*n + 2*kk}
  20. nc_divide (2*k*k*p1 + k*p1 + p2,2*p1);
  21. 2
  22. {2*k + k,
  23. 2*k*kk + 2*k - 2*n + 2*kk}
  24. nc_factorize (p1*p2);
  25. { - k*nn + n*nn - n + nn - 1,
  26. k*kk + k - n + kk}
  27. nc_setup({k,n,NN,KK},{NN*n-n*NN=NN,KK*k-k*KK=KK},right);
  28. nc_factorize (p1*p2);
  29. { - k*nn + n*nn - n + nn - 1,
  30. k*kk + k - n + kk}
  31. % applications to shift operators
  32. nc_setup({n,NN},{NN*n-n*NN=1},left);
  33. n*NN;
  34. n*nn
  35. nc_factorize(ws);
  36. {n,nn}
  37. nc_setup({n,NN},{NN*n-n*NN=1},right);
  38. n*NN;
  39. n*nn
  40. nc_factorize(ws);
  41. {n,nn}
  42. nc_setup({NN,n},{NN*n-n*NN=1},right);
  43. n*NN;
  44. nn*n - 1
  45. nc_factorize(ws);
  46. {n,nn}
  47. nc_setup({NN,n},{NN*n-n*NN=1},left);
  48. n*NN;
  49. nn*n - 1
  50. nc_factorize(ws);
  51. {n,nn}
  52. % Applications to partial differential equations
  53. nc_setup({x,Dx},{Dx*x-x*Dx=1});
  54. p:= 2*Dx^2 + x* Dx^3 + 3*x*Dx + x^2*Dx^2 + 14 + 7*x*Dx;
  55. 2 2 3 2
  56. p := x *dx + x*dx + 10*x*dx + 2*dx + 14
  57. nc_factorize p;
  58. 2
  59. {x*dx + 2,x*dx + dx + 7}
  60. right_factor(p,1);
  61. 2 2 3 2
  62. x *dx + x*dx + 10*x*dx + 2*dx + 14
  63. % no factor of degr 1
  64. right_factor(p,2);
  65. 2
  66. x*dx + dx + 7
  67. left_factor(p,2);
  68. x*dx + 2
  69. nc_setup({x,Dx},{Dx*x-x*Dx=1});
  70. q := x**2*dx**2 + 2*x**2*dx + x*dx**3 + 2*x*dx**2
  71. + 8*x*dx + 16*x + 2*dx**2 + 4*dx$
  72. nc_factorize q;
  73. 2
  74. {x*dx + dx + 7,
  75. x,
  76. dx + 2}
  77. right_factor(q,1);
  78. dx + 2
  79. right_factor(q,1,{x});
  80. 2 2 2 3 2 2
  81. x *dx + 2*x *dx + x*dx + 2*x*dx + 8*x*dx + 16*x + 2*dx + 4*dx
  82. % no such right factor
  83. right_factor(q,1,{dx});
  84. dx + 2
  85. % looking for factor with degree bound for an individual variable
  86. q := x**6*dx + x**5*dx**2 + 12*x**5 + 10*x**4*dx + 20*x**3
  87. + x**2*dx**3 - x**2*dx**2 + x*dx**4 - x*dx**3 + 8*x*dx**2
  88. - 8*x*dx + 2*dx**3 - 2*dx**2$
  89. right_factor(q,dx);
  90. 6 5 2 5 4 3 2 3 2 2 4 3
  91. x *dx + x *dx + 12*x + 10*x *dx + 20*x + x *dx - x *dx + x*dx - x*dx
  92. 2 3 2
  93. + 8*x*dx - 8*x*dx + 2*dx - 2*dx
  94. right_factor(q,dx^2);
  95. 4 2
  96. x + dx - dx
  97. % some coefficient sports
  98. nc_setup({NN,n},{NN*n-n*NN=1},left);
  99. q:=(n*nn)^2;
  100. 2 2
  101. q := nn *n - 3*nn*n + 1
  102. nc_factorize q;
  103. {n,
  104. nn,
  105. n,
  106. nn}
  107. nc_preduce(q,{c1+c2*n + c3*nn + c4*n*nn});
  108. 2 2 2 2 2 2
  109. (c3 *c4)*nn + (2*c1*c3*c4 - 2*c2*c3 + c3*c4 )*nn + (c2 *c4)*n
  110. 2 2 2
  111. + (2*c1*c2*c4 - 2*c2 *c3 - c2*c4 )*n + (c1 *c4 - 2*c1*c2*c3 + c2*c3*c4)
  112. nc_divide(q,n);
  113. 2
  114. {nn *n - 3*nn,1}
  115. nc_cleanup;
  116. end;
  117. 4: 4: 4: 4: 4: 4: 4: 4: 4:
  118. Time for test: 47420 ms, plus GC time: 4670 ms
  119. 5: 5:
  120. Quitting
  121. Mon Jan 4 00:03:50 MET 1999