\input texinfo-ja @iftex @catcode`@#=6 @def@fref#1{@xrefX[#1,,@code{#1},,,]} @def@b#1{{@bf@gt #1}} @catcode`@#=@other @end iftex @overfullrule=0pt @documentlanguage ja @c -*-texinfo-*- @comment %**start of header @comment --- GNU info ファイルの名前 --- @setfilename asir-contrib-ns_twistedlog @comment --- タイトル --- @settitle ns_twistedlog.rr @comment %**end of header @comment %@setchapternewpage odd @comment --- おまじない --- @ifinfo @macro fref{name} @ref{\name\,,@code{\name\}} @end macro @end ifinfo @iftex @comment @finalout @end iftex @titlepage @comment --- おまじない終り --- @comment --- タイトル, バージョン, 著者名, 著作権表示 --- @title ns_twistedlog.rr @subtitle ns_twistedlog.rr User's Manual @subtitle Edition 1.0 @subtitle February 2012 @author by Keisuke Nishitani @page @vskip 0pt plus 1filll Copyright @copyright{} Keisuke Nishitani 2012. All rights reserved. @end titlepage @comment --- おまじない --- @synindex vr fn @comment --- おまじない終り --- @comment --- @node は GNU info, HTML 用 --- @comment --- @node の引数は node-name, next, previous, up --- @node Top,, (dir), (dir) @comment --- @menu は GNU info, HTML 用 --- @comment --- chapter 名を正確に並べる --- @menu * ns_twistedlog.rr:: * Index:: @end menu @comment --- chapter の開始 --- @comment --- 親 chapter 名を正確に --- @node ns_twistedlog.rr,,, Top @chapter ns_twistedlog.rr @comment --- section 名を正確に並べる --- @menu * ns_twistedlog.rrについて:: * Twisted logarithmic cohomology 群の計算に関する関数:: * その他の関数:: @end menu @comment --- section の開始 --- @node ns_twistedlog.rr について,,, ns_twistedlog.rr @section ns_twistedlog.rr について @comment --- 書体指定について --- @comment --- @code{} はタイプライタ体表示 --- @comment --- @var{} は斜字体表示 --- @comment --- @b{} はボールド表示 --- @comment --- @samp{} はファイル名などの表示 --- @samp{ns_twistedlog.rr} は twisted logarithmic cohomology 群の計算, およびそれに基づいて, 多項式ベキの積分から定まるあるクラスの超幾何積分の満たす差分方程式系の計算と, 指数関数と多項式ベキの積分から定まるあるクラスの超幾何積分の満たす微分方程式系の計算を行うためのパッケージである. @node Twisted logarithmic cohomology 群の計算に関する関数 ,,, ns_twistedlog.rr @section Twisted logarithmic cohomology 群の計算に関する関数 @comment --- 関数名を正確に --- @comment --- 複数の関数をまとめて説明できる --- @menu * ns_twistedlog.twisted_log_cohomology:: * ns_twistedlog.twisted_log_cohomology(option):: * ns_twistedlog.difference_equation:: * ns_twistedlog.difference_equation(option):: * ns_twistedlog.differential_equation:: * ns_twistedlog.differential_equation(option):: @end menu @comment --- 個々の関数の説明の開始 --- @comment --- section 名を正確に --- @node ns_twistedlog.twisted_log_cohomology,,, Twisted logarithmic cohomology 群の計算に関する関数 @subsection @code{ns_twistedlog.twisted_log_cohomology} @comment --- 索引用キーワード @findex ns_twistedlog.twisted_log_cohomology @comment --- 関数の簡単な説明 --- @table @t @item ns_twistedlog.twisted_log_cohomology(@var{FL},@var{PL},@var{VL}) :: Twisted logarithmic cohomology 群の middle cohomology 群の基底を返す. @end table @comment --- 引数の簡単な説明 --- @table @var @item @var{FL} 多項式のリスト @item @var{PL} パラメータのリスト @item @var{VL} 変数のリスト @end table @comment --- ここで関数の詳しい説明 --- @comment --- @itemize〜@end itemize は箇条書き --- @comment --- @bullet は黒点付き --- @itemize @bullet @item @var{PL} に属する変数は, 係数体に属する整数でない不定元と見なして計算される. 従って, これらの変数に依存する generic @var{b}-関数の根は最大整数根とはならず, またグレブナ基底の計算において, これらの変数を係数に含む先頭項は0にはならない. このような事情により, パラメータが変数の場合と整数の場合とでは出力結果が異なる場合がある. @item 3 変数以上の場合だと, twisted logarithmic cohomology 群からくる@var{D}-加群がホロノミックでない場合がある. そのような場合には twisted logarithmic cohomology 群は計算できない. @end itemize @comment --- @example〜@end example は実行例の表示 --- @example [1] ns_twistedlog.twisted_log_cohomology([x,y,1-x-y],[a,b,c],[x,y]); -- nd_weyl_gr :0.003848sec(0.008291sec) -- weyl_minipoly_by_elim :0.006988sec(0.007177sec) -- generic_bfct_and_gr :0.01325sec(0.02175sec) generic bfct : [[-1,1],[s,1],[s+a+b+c-1,1]] S0 : 0 B_{S0} length : 1 -- fctr(BF) + base :0.001454sec(0.005543sec) dimension : 1 [1] [2] ns_twistedlog.twisted_log_cohomology([x,y,1-x-y],[-1,-2,-3],[x,y]); -- nd_weyl_gr :0.001845sec(0.001838sec) -- weyl_minipoly_by_elim :0.003972sec(0.003971sec) -- generic_bfct_and_gr :0.007363sec(0.007584sec) generic bfct : [[-1,1],[s,1],[s-7,1]] S0 : 7 B_{S0} length : 36 -- fctr(BF) + base :0.02438sec(0.03323sec) dimension : 3 [y^2*x^5,y^7,1] [3] ns_twistedlog.twisted_log_cohomology([x*z+y,x^4+y^5+x*y^4],[0,0],[x,y,z]); -- nd_weyl_gr :0.004sec(0.0028sec) weyl_minipoly_by_elim : b-function does not exist stopped in weyl_minipoly_by_elim2 at line 378 in file "/usr/local/ox/OpenXM/src/ asir-contrib/packages/src/nk_restriction.rr" 378 error("weyl_minipoly_by_elim : b-function does not exist"); (debug) @end example @comment --- 参照(リンク)を書く --- @table @t @item 参照 ns_twistedlog.twisted_log_cohomology(option) @end table @node ns_twistedlog.twisted_log_cohomology(option),,, Twisted logarithmic cohomology 群の計算に関する関数 @subsection @code{ns_twistedlog.twisted_log_cohomology(option)} @findex ns_twistedlog.twisted_log_cohomology(option) @table @t @item ns_twistedlog.twisted_log_cohomology(...| exp = @var{f}, check = @var{n}, s0 = @var{m}, excp = @var{v}) :: ns_twistedlog.twisted_log_cohomology のオプションの説明 @end table @table @var @item f 多項式 @item n 0 または 1 @item m 整数 @item v 0 または 1 @end table @itemize @bullet @item @code{exp} を指定すると, 外微分の twisted の項に指数関数 exp(@var{f}) が含まれる場合の twisted logarithmic cohomology 群の計算を行う. @item @var{n} が 0 でないとき, twisted logarithmic cohomlogy 群からくる@var{D}-加群がホロノミックであるか否かの判定を行う. @item @code{s0} を指定すると, @var{s-m} を generic @var{b}-関数として計算を行う. 本来の generic @var{b}-関数の計算は行わない. @item @var{v} が 0 でないとき, 除外集合の計算を行う. パラメータに現れる変数は整数でないと仮定しており, その情報は出力されない. @code{excp} を指定するとグレブナ基底計算において Buchberger アルゴリズムがそのまま用いられるため, 計算は格段に遅くなる. @end itemize @example [4] ns_twistedlog.twisted_log_cohomology([x,y,1-x-y],[a,b,c],[x,y]|exp = x+y); -- nd_weyl_gr :0.004sec + gc : 0.004sec(0.006156sec) -- weyl_minipoly_by_elim :0sec(0.001558sec) -- generic_bfct_and_gr :0.004sec + gc : 0.004sec(0.008213sec) generic bfct : [[1,1],[s,1],[s-1,1],[s+a+b-1,1]] S0 : 1 B_{S0} length : 3 -- fctr(BF) + base :0sec(0.000469sec) dimension : 2 [y,1] [5] ns_twistedlog.twisted_log_cohomology([x*z+y,x^4+y^5+x*y^4],[0,0],[x,y,z]|ch eck = 1); Hilbert polynomial : 1/24*x^4+65/12*x^3-529/24*x^2+727/12*x-51 holonomic : No -- nd_weyl_gr :0.004001sec(0.002876sec) weyl_minipoly_by_elim : b-function does not exist stopped in weyl_minipoly_by_elim2 at line 378 in file "/usr/local/ox/OpenXM/src/ asir-contrib/packages/src/nk_restriction.rr" 378 error("weyl_minipoly_by_elim : b-function does not exist"); (debug) [6] ns_twistedlog.twisted_log_cohomology([x*z+y,x^4+y^5+x*y^4],[0,0],[x,y,z]|s0 = 1 ); dimension : 3 [y,z,1] [7] ns_twistedlog.twisted_log_cohomology([x,y,1-x-y],[a,b,c],[x,y]|excp = 1); generic bfct : [[-1,1],[s,1],[s+a+b+c-1,1]] S0 : 0 B_{S0} length : 1 dimension : 1 [[1],[a+b+c-1,a,b]] @end example @node ns_twistedlog.difference_equation,,, Twisted logarithmic cohomology 群の計算に関する関数 @subsection @code{ns_twistedlog.difference_equation} @findex ns_twistedlog.difference_equation @comment --- 関数の簡単な説明 --- @table @t @item ns_twistedlog.difference_equation(@var{FL},@var{PL},@var{VL}) :: 多項式ベキの積分から定まる超幾何関数の満たす差分方程式系を返す. @end table @table @var @item FL 多項式のリスト @item PL 多項式のベキのリスト(パラメータに対応) @item VL 積分を行う変数のリスト @end table @itemize @bullet @item Twisted logarithmic cohomology 群の基底を用いて, 多項式ベキの積分から定まる超幾何積分の満たす斉次差分方程式系を計算する. @item 差分方程式が計算できるのは, パラメータが多項式のベキのみに存在する場合に限る. パラメータに現れる変数は整数でない不定元として扱われる. さらに, 多項式のベキの形には以下を仮定している. @enumerate @item 多項式のベキは有理数であるか, またはパラメータを表す1文字+有理数の形をしている. @item パラメータに現れる変数は全て相異なる. @item パラメータに現れる変数の係数は1である. @end enumerate この仮定を満たさない入力に対しては正しい出力が得られない. @item 3 変数以上の場合には, twisted logarithmic cohomology 群からくる@var{D}-加群がホロノミックとならないために, 計算できない場合がある. @end itemize 以下は, @code{p(a,b,c) = \int_C x^@{a-1@}y^@{b-1@}(1-x-y)^@{c-1@} dxdy}の満たす差分方程式系を計算した例である. @example [8] ns_twistedlog.difference_equation([x,y,1-x-y],[a,b,c],[x,y]); -- nd_weyl_gr :0sec(0.000421sec) -- weyl_minipoly_by_elim :0sec(0.001051sec) Order : 1 [(-ea+1)*a-ea*b-ea*c,eb*a+(eb-1)*b+eb*c,ec*a+ec*b+(ec-1)*c] @end example 以下のような入力に対しては正しく動かない. @example [9] ns_twistedlog.difference_equation([x,y,1-x-y],[a,b,a-b],[x,y]); -- nd_weyl_gr :0sec(0.0003741sec) -- weyl_minipoly_by_elim :0.004sec + gc : 0.004sec(0.006554sec) Order : 1 [-ea,eb,1] [10] ns_twistedlog.difference_equation([x,y,1-x-y],[-a,-b,2*c],[x,y]); -- nd_weyl_gr :0sec(0.0003951sec) -- weyl_minipoly_by_elim :0sec(0.001059sec) Order : 1 [(ea-1)*a+ea*b-2*ea*c,-eb*a+(-eb+1)*b+2*eb*c,ec*a+ec*b+(-2*ec+2)*c] @end example @table @t @item 参照 ns_twistedlog.difference_equation(option) @end table @node ns_twistedlog.difference_equation(option),,, Twisted logarithmic cohomology 群の計算に関する関数 @subsection @code{ns_twistedlog.difference_equation(option)} @findex ns_twistedlog.difference_equation(option) @table @t @item ns_twistedlog.difference_equation(... | exp = @var{f}, check = @var{n}, inhomo = @var{h}, shift = @var{p}, @item order = @var{m}, excp = @var{v}) :: @code{ns_twistedlog.difference_equation} のオプションの説明. @end table @table @var @item f 多項式 @item n 0 または 1 @item h 0 または 1 @item p パラメータ @item m 整数 @item v 0 または 1 @end table @itemize @bullet @item @code{exp} を指定すると, 被積分関数に指数関数 exp(@var{f}) がある場合の差分方程式系を計算する. @item @var{n} が0でないとき, twisted logarithmic cohomlogy 群からくる@var{D}-加群がホロノミックであるか否かの判定を行う. @item @var{h} が0でないとき, 非斉次項部分の計算を行う. @item @code{shift} を指定すると, 指定されたパラメータに関する差分方程式のみを計算する. これは差分方程式系から消去法を行うよりも, 効率のよい計算である. @item @code{s0} を指定すると, @var{s-m} を generic @var{b}-関数として計算を行う. 本来の generic @var{b}-関数の計算は行わない. @item @var{v} が 0 でないとき, 除外集合の計算を行う. パラメータに現れる変数は整数でないと仮定しており, その情報は出力されない. @code{excp} を指定するとグレブナ基底計算において Buchberger アルゴリズムがそのまま用いられるため, 計算は格段に遅くなる. @code{excp} は @code{inhomo}, @code{shift}, @code{order} と併用できない. @end itemize @example [11] ns_twistedlog.difference_equation([x,y,1-x-y],[a,b,c],[x,y]|inhomo = 1); -- nd_weyl_gr :0sec(0.0003991sec) -- weyl_minipoly_by_elim :0sec(0.001058sec) Order : 1 [[(-ea+1)*b*a-ea*b^2-ea*c*b,[((y^2-y)*dy+b*x+(b+c)*y-b)*dx+(-y^2+y)*dy^2+((-a-b- c)*y+b)*dy,(-a-b-c)*x+(-b-c)*y]],[eb*a+(eb-1)*b+eb*c,[((y^2-y)*dy+b*x+(b+c)*y-b) *dx+(-y^2+y)*dy^2+((-a-b-c)*y+b)*dy,-y]],[ec*b*a+ec*b^2+(ec-1)*c*b,[((y^2-y)*dy+ b*x+(b+c)*y-b)*dx+(-y^2+y)*dy^2+((-a-b-c)*y+b)*dy,(-a-b-c)*x-c*y]]] [12] ns_twistedlog.difference_equation([x,y,1-x-y],[a,b,c],[x,y]|shift = a); -- nd_weyl_gr :0.004sec(0.0004289sec) -- weyl_minipoly_by_elim :0sec(0.001042sec) Order : 1 [(ea-1)*a+ea*b+ea*c] @end example @node ns_twistedlog.differential_equation,,, Twisted logarithmic cohomology 群の計算に関する関数 @subsection @code{ns_twistedlog.differential_equation} @findex ns_twistedlog.differential_equation @table @t @item ns_twistedlog.differential_equation(@var{EXP},@var{FL},@var{PL},@var{TVL},@var{XVL}) :: 指数関数と多項式ベキの積分から定まる超幾何関数の満たす微分方程式系を返す. @end table @table @var @item EXP 多項式 @item FL 多項式のリスト @item PL 多項式のベキのリスト @item TVL 積分を行う変数のリスト @item XVL パラメータの変数のリスト @end table @itemize @bullet @item Twisted logarithmic cohomology 群の基底を用いて, 指数関数と多項式ベキの積分から定まる超幾何関数の満たす斉次微分方程式系を計算する. @item 微分方程式が計算できるのは, パラメータが指数関数に存在する場合に限る. 多項式のベキに変数が存在しても構わないが, その変数は固定されたものと見なされる. パラメータに現れる変数および多項式のベキに現れる変数は, 整数でない不定元として扱われる. @item 3変数以上の場合には, twisted logarithmic cohomology 群からくる@var{D}-加群がホロノミックとならないために, 計算できない場合がある. @end itemize 以下は @code{f(x_1,x_2) = \int_C exp(x1*t1+x2*t2) t1^@{a-1@}*t2^@{b-1@}dt1dt2} の満たす微分方程式系を計算した例である. @example [13] ns_twistedlog.differential_equation(x1*t1+x2*t2,[t1,t2],[a,b],[t1,t2],[x1,x2]) ; -- nd_weyl_gr :0sec(0.0004089sec) -- weyl_minipoly_by_elim :0sec(0.000495sec) Order : 1 [x1*dx1+a,-x2*dx2-b] @end example @table @t @item 参照 ns_twistedlog.differential_equation(option) @end table @node ns_twistedlog.differential_equation(option),,, Twisted logarithmic cohomology 群の計算に関する関数 @subsection @code{ns_twistedlog.differential_equation(option)} @findex ns_twistedlog.differential_equation(option) @table @t @item ns_twistedlog.differential_equation(... | check = @var{n}, inhomo = @var{h}, diff = @var{p}, @item order = @var{m}, excp = @var{v}) :: @code{ns_twistedlog.differential_equation} のオプションの説明 @end table @table @var @item n 0 または 1 @item h 0 または 1 @item p パラメータ @item m 整数 @item v 0 または 1 @end table @itemize @bullet @item @var{n} が0でないとき, twisted logarithmic cohomlogy 群からくる@var{D}-加群がホロノミックであるか否かの判定を行う. @item @var{h} が0でないとき, 非斉次項部分の計算を行う. @item @code{diff} を指定すると, 指定されたパラメータに関する微分方程式のみを計算する. これは微分方程式系から消去法を行うよりも, 効率のよい計算である. @item @code{s0} を指定すると, @var{s-m} を generic @var{b}-関数として計算を行う. 本来の generic @var{b}-関数の計算は行わない. @item @var{v} が 0 でないとき, 除外集合の計算を行う. パラメータに現れる変数は整数でないと仮定しており, その情報は出力されない. @code{excp} を指定するとグレブナ基底計算において Buchberger アルゴリズムがそのまま用いられるため, 計算は格段に遅くなる. @code{excp} は @code{inhomo}, @code{diff}, @code{order} と併用できない. @end itemize @example [14] ns_twistedlog.differential_equation(x1*t1+x2*t2,[t1,t2],[a,b],[t1,t2],[x1,x2]| diff = x1); -- nd_weyl_gr :0sec(0.0007901sec) -- weyl_minipoly_by_elim :0sec + gc : 0.008sec(0.006175sec) Order : 1 [x1*dx1+a] @end example @node その他の関数,,, ns_twistedlog.rr @section その他の関数 @menu * ns_twistedlog.twisted_deRham:: * ns_twistedlog.holonomic:: @end menu @node ns_twistedlog.twisted_deRham,,, その他の関数 @subsection @code{ns_twistedlog.twisted_deRham} @findex ns_twistedlog.twisted_deRham @table @t @item ns_twistedlog.twisted_deRham(@var{F},@var{P},@var{VL}) :: Twisted de Rham cohomology 群の middle cohomology 群の基底を返す. @end table @table @var @item F 多項式 @item P パラメータ @item VL 変数のリスト @end table @itemize @bullet @item @var{P} が変数の場合, 係数体に属する整数でない不定元と見なして計算される. 従って, これらの変数に依存する generic @var{b}-関数の根は最大整数根とはならず, またグレブナ基底の計算において, これらの変数を係数に含む先頭項は0にはならない. このような事情により, パラメータが変数の場合と整数の場合とでは出力結果が異なる場合がある. @end itemize @example [15] ns_twistedlog.twisted_deRham(x*y*(1-x-y),a,[x,y]); -- nd_weyl_gr :0sec(9.489e-05sec) -- weyl_minipoly :0sec(0.0002191sec) -- generic_bfct_and_gr :0sec(0.000423sec) generic bfct : [[1,1],[s,1]] S0 : 0 B_{S0} length : 1 -- fctr(BF) + base :0sec(6.008e-05sec) dimension : 0 [] [16] ns_twistedlog.twisted_deRham(x*y*(1-x-y),-1,[x,y]); -- nd_weyl_gr :0sec(0.0001891sec) -- weyl_minipoly :0sec(0.000247sec) -- generic_bfct_and_gr :0sec(0.0006139sec) generic bfct : [[1,1],[s,1],[s-1,1]] S0 : 1 B_{S0} length : 3 -- fctr(BF) + base :0.004sec(0.0002241sec) dimension : 3 [x,y,1] @end example @node ns_twistedlog.holonomic,,, その他の関数 @subsection @code{ns_twistedlog.holonomic} @table @t @item ns_twistedlog.holonomic(@var{Id}, @var{VL}, @var{DVL}) :: @var{D} の左イデアル @var{Id} がホロノミックならば標準単項式のリストを返す. ホロノミックでないならば-1を返す. @end table @table @var @item Id イデアルの生成元のリスト @item VL 変数のリスト @item DVL 変数のリスト (@var{VL} に対応する微分作用素の方の変数) @end table @example [17] ns_twistedlog.holonomic([x*dy,y*dx],[x,y],[dx,dy]); Hilbert polynomial : x^2+1 holonomic : Yes holonomic rank : 1 [1] [18] ns_twistedlog.holonomic([(x^3-y^2)*dx+3*x^2,(x^3-y^2)*dy-2*y],[x,y],[dx, dy]); Hilbert polynomial : 1/2*x^3+2*x^2+1/2*x+2 holonomic : No -1 @end example @comment --- おまじない --- @node Index,,, Top @unnumbered Index @printindex fn @printindex cp @iftex @vfill @eject @end iftex @summarycontents @contents @bye @comment --- おまじない終り ---