/* $OpenXM: OpenXM/src/asir-contrib/packages/doc/dsolv.oxweave,v 1.2 2000/02/07 04:46:25 takayama Exp $ */ /* dsolv.oxweave */ /*&eg-texi @node DSOLV Functions,,, Top @chapter DSOLV Functions This section is a collection of functions to solve regular holonomic systems in terms of series. Algorithms are explained in the book [SST]. You can load this package by the command @code{load("dsolv");} This package requires @code{Diff} and @code{dmodule}. This package uses @code{ox_sm1}, so the variables you can use is as same as those you can use in the package @code{sm1}. @section Functions */ /*&jp-texi @node DSOLV 函数,,, Top @chapter DSOLV 函数 この節は正則ホロノミック系を級数で解くための 函数をあつめてある. アルゴリズムについては [SST] に説明がある. このパッケージは次のコマンド @code{load("dsolv");} でロードできる. このパッケージは @code{Diff} および @code{dmodule} を使用する. このパッケージは @code{ox_sm1} を利用している. したがって使用できる変数は @code{sm1} パッケージと同様の変数しかつかえない. @section 函数一覧 */ /*&eg-texi @menu * dsolv_dual:: @end menu @node dsolv_dual,,, DSOLV Functions @subsection @code{dsolv_dual} @findex dsolv_dual @table @t @item dsolv_dual(@var{f},@var{v}) :: Grobner dual of @var{f}. @end table @table @var @item return List @item f, v List @end table @itemize @bullet @item It returns the Grobner dual of @var{f} in the ring of polynomials with variables @var{v}. @item The ideal generated by @var{f} must be primary to the maximal ideal generated by @var{v}. If it is not primary to the maximal ideal, then this function falls into an infinite loop. @item This is an implementation of Algorithm 2.3.14 of the book [SST]. If we replace variables x, y, ... in the output by log(x), log(y), ..., then these polynomials in log are solutions of the system of differential equations @var{f}@code{_(x->x*dx, y->y*dy, ...)}. @end itemize */ /*&jp-texi @menu * dsolv_dual:: @end menu @node dsolv_dual,,, DSOLV 函数 @subsection @code{dsolv_dual} @findex dsolv_dual @table @t @item dsolv_dual(@var{f},@var{v}) :: @var{f} のグレブナ双対 @end table @table @var @item 戻り値 リスト @item f, v リスト @end table @itemize @bullet @item 変数 @var{v} 上の多項式環において, @var{f} のグレブナ双対を求める. @item @var{f} で生成されるイデアルは, @var{v} で生成される極大イデアルに 対して, primary でないといけない. primary でない場合, この函数は無限ループにおちいる. @item この函数は本 [SST] の Algorithm 2.3.14 の実装である. 出力中の変数 x, y, ... をそれぞれ log(x), log(y), ..., でおきかえると, これらの log 多項式は, @var{f}@code{_(x->x*dx, y->y*dy, ...)} で生成される微分方程式系 の解となっている. @end itemize */ /*&C-texi @example [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. @end example */ /*&eg-texi @menu * dsolv_starting_term:: @end menu @node dsolv_starting_term,,, DSOLV Functions @subsection @code{dsolv_starting_term} @findex dsolv_starting_term @table @t @item dsolv_starting_term(@var{f},@var{v},@var{w}) :: Find the starting term of the solutions of the regular holonomic system @var{f} to the direction @var{w}. @end table @table @var @item return List @item f, v, w List @end table @itemize @bullet @item Find the starting term of the solutions of the regular holonomic system @var{f} to the direction @var{w}. @item The return value is of the form [[@var{e1}, @var{e2}, ...], [@var{s1}, @var{s2}, ...]] where @var{e1} is an exponent vector and @var{s1} is the corresponding solution set, and so on. @item If you set @code{Dsolv_message_starting_term} to 1, then this function outputs messages during the computation. @end itemize */ /*&jp-texi @menu * dsolv_starting_term:: @end menu @node dsolv_starting_term,,, DSOLV 函数 @subsection @code{dsolv_starting_term} @findex dsolv_starting_term @table @t @item dsolv_starting_term(@var{f},@var{v},@var{w}) :: 正則ホロノミック系 @var{f} の方向 @var{w} での級数解の Staring terms を計算する. ここで, @var{v} は変数の集合. @end table @table @var @item 戻り値 リスト @item f, v, w リスト @end table @itemize @bullet @item 正則ホロノミック系 @var{f} の方向 @var{w} での級数解の Staring terms を計算する. ここで, @var{v} は変数の集合. @item 戻り値は次の形をしている: [[@var{e1}, @var{e2}, ...], [@var{s1}, @var{s2}, ...]] ここで @var{e1} は exponent ベクトルであり @var{s1} はこのベクトルに 対応する解の集合, 以下同様. @item 変数 @code{Dsolv_message_starting_term} を 1 にしておくと, この函数は計算の途中にいろいろとメッセージを出力する. @end itemize */ /*&C-texi @example [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]]] @end example */