DSOLV 函数
********

この節は正則ホロノミック系を級数で解くための函数をあつめてある. アルゴリズムについては [SST] に説明がある. このパッケージは次のコマンド load("dsolv"); でロードできる. このパッケージは Diff および Dmodule を使用する.

OpenXM/Risa/Asir での利用にあたっては,

     load("dsolv");$

が始めに必要.

このパッケージは ox_sm1 を利用している. したがって使用できる変数は sm1 パッケージと同様の変数しかつかえない.

函数一覧
====

dsolv_dual
----------

dsolv_dual(F,V)
     ::  F のグレブナ双対

戻り値
     リスト

f, v
     リスト

  * 変数 V 上の多項式環において, F  のグレブナ双対を求める.

  * F で生成されるイデアルは, V で生成される極大イデアルに対して, primary でないといけない. primary でない場合, この函数は無限ループにおちいる.

Algorithm: この函数は本 [SST] の Algorithm 2.3.14  の実装である. 出力中の変数 x, y, ... をそれぞれ log(x), log(y), ..., でおきかえると, これらの log 多項式は, F_(x->x*dx, y->y*dy, ...) で生成される微分方程式系の解となっている.

     [435] dsolv_dual([y-x^2,y+x^2],[x,y]);
     [x,1]
     [436] dsolv_act(y*dy-sm1_mul(x*dx,x*dx,[x,y]),log(x),[x,y]);
     0
     [437] dsolv_act(y*dy+sm1_mul(x*dx,x*dx,[x,y]),log(x),[x,y]);
     0

     [439] primadec([y^2-x^3,x^2*y^2],[x,y]);
     [[[y^2-x^3,y^4,x^2*y^2],[y,x]]]
     [440] dsolv_dual([y^2-x^3,x^2*y^2],[x,y]);
     [x*y^3+1/4*x^4*y, x^2*y, x*y^2+1/12*x^4, y^3+x^3*y,
      x^2, x*y, y^2+1/3*x^3, x, y, 1]

     [441] dsolv_test_dual();
       Output is  omitted.

dsolv_starting_term
-------------------

dsolv_starting_term(F,V,W)
     :: 正則ホロノミック系 F の方向 W での級数解の Staring terms を計算する. ここで, V は変数の集合.

戻り値
     リスト

f, v, w
     リスト

  * 正則ホロノミック系 F の方向 W での級数解の Staring terms を計算する. ここで, V は変数の集合.

  * 戻り値は次の形をしている: [[E1, E2, ...], [S1, S2, ...]] ここで E1 は exponent ベクトルであり S1 はこのベクトルに対応する解の集合,   以下同様.

  * 変数 Dsolv_message_starting_term を 1 にしておくと, この函数は計算の途中にいろいろとメッセージを出力する.

Algorithm: Saito, Sturmfels, Takayama, Grobner Deformations of Hypergeometric Differential Equations ([SST]), Chapter 2.

     [1076]   F = sm1_gkz( [ [[1,1,1,1,1],[1,1,0,-1,0],[0,1,1,-1,0]], [1,0,0]]);
     [[x5*dx5+x4*dx4+x3*dx3+x2*dx2+x1*dx1-1,-x4*dx4+x2*dx2+x1*dx1,
       -x4*dx4+x3*dx3+x2*dx2,
       -dx2*dx5+dx1*dx3,dx5^2-dx2*dx4],[x1,x2,x3,x4,x5]]
     [1077]  A= dsolv_starting_term(F[0],F[1],[1,1,1,1,0])$
     Computing the initial ideal.
     Done.
     Computing a primary ideal decomposition.
     Primary ideal decomposition of the initial Frobenius ideal
     to the direction [1,1,1,1,0] is
     [[[x5+2*x4+x3-1,x5+3*x4-x2-1,x5+2*x4+x1-1,3*x5^2+(8*x4-6)*x5-8*x4+3,
        x5^2-2*x5-8*x4^2+1,x5^3-3*x5^2+3*x5-1],
      [x5-1,x4,x3,x2,x1]]]

     ----------- root is [ 0 0 0 0 1 ]
     ----------- dual system is
     [x5^2+(-3/4*x4-1/2*x3-1/4*x2-1/2*x1)*x5+1/8*x4^2
      +(1/4*x3+1/4*x1)*x4+1/4*x2*x3-1/8*x2^2+1/4*x1*x2,
      x4-2*x3+3*x2-2*x1,x5-x3+x2-x1,1]

     [1078] A[0];
     [[ 0 0 0 0 1 ]]
     [1079] map(fctr,A[1][0]);
     [[[1/8,1],[x5,1],[log(x2)+log(x4)-2*log(x5),1],
               [2*log(x1)-log(x2)+2*log(x3)+log(x4)-4*log(x5),1]],
      [[1,1],[x5,1],[-2*log(x1)+3*log(x2)-2*log(x3)+log(x4),1]],
      [[1,1],[x5,1],[-log(x1)+log(x2)-log(x3)+log(x5),1]],
      [[1,1],[x5,1]]]