=================================================================== RCS file: /home/cvs/OpenXM/src/asir-doc/exp/exp-ja.texi,v retrieving revision 1.34 retrieving revision 1.39 diff -u -p -r1.34 -r1.39 --- OpenXM/src/asir-doc/exp/exp-ja.texi 2009/05/16 04:56:32 1.34 +++ OpenXM/src/asir-doc/exp/exp-ja.texi 2010/07/16 07:55:06 1.39 @@ -1,4 +1,4 @@ -%% $OpenXM: OpenXM/src/asir-doc/exp/exp-ja.texi,v 1.33 2009/05/16 03:13:07 ohara Exp $ +%% $OpenXM: OpenXM/src/asir-doc/exp/exp-ja.texi,v 1.38 2010/02/10 05:49:58 takayama Exp $ \input texinfo @iftex @catcode`@#=6 @@ -38,13 +38,13 @@ @title 実験的仕様の関数 @subtitle Risa/Asir 実験的仕様関数説明書 @subtitle 1.0 版 -@subtitle 2008 年 1 月 +@subtitle 2010 年 2 月 @author by Risa/Asir committers @page @vskip 0pt plus 1filll Copyright @copyright{} Risa/Asir committers -2004. All rights reserved. +2004--2010. All rights reserved. @end titlepage @comment --- おまじない --- @@ -134,6 +134,7 @@ ChangeLog の項目は www.openxm.org の cvswe * dcurrenttime:: * nd_gr nd_gr_trace nd_weyl_gr nd_weyl_gr_trace (module):: * nd_gr nd_gr_trace nd_weyl_gr nd_weyl_gr_trace (option):: +* tk_pf.rkn:: @end menu @node クオート,,, 実験的仕様の関数 @@ -1946,8 +1947,9 @@ ChangeLog @itemize @bullet @item asirgui (Windows 版) を起動すると asirgui.exe のあるフォルダおよび 環境変数 TEMP が定義されていればこのファイルが作成される. -@item 中身は10進整数で, asirgui の main winodw のハンドルである. このハンドルあてに PostMessage をすれば, asuirgui にキーボードから入力したのと同様な効果が得られる. +@item 中身は10進整数で, asirgui の main window のハンドルである. このハンドルあてに PostMessage をすれば, asuirgui にキーボードから入力したのと同様な効果が得られる. @item text editor で作成, 保存したファイルを text editor 側から asirgui に読み込ませたりするために利用可能. +@item http://www.math.kobe-u.ac.jp/Asir/Add-ons にて winfep.exe を配布している. winfep ではあらかじめファイルに入力スクリプトを書いておいて, asirgui で一行づつ実行させることができる. winfep はプレゼンテーション用のソフトウエアである. これは asirgui.hnd を利用している. @end itemize @example @@ -1988,6 +1990,8 @@ ChangeLog @item この機能は 2006-12-5, 2007-02-13 に加えられた. @item @code{OpenXM_contrib2/windows/asir32gui/asir32gui.clw} 1.11 @item @code{OpenXM_contrib2/windows/asir32gui/asir32guiview.cpp} 1.15, 1.1.6 +@item winfep は 2010-01-20 頃に第一版が commit された. +@item @code{OpenXM_contrib2/windows/winfep} 1.1 @end itemize @@ -2837,14 +2841,317 @@ B_@{S0@} length : 2 [1432] @end example +@node nk_restriction,,, D 加群の制限, 積分に関する関数の説明 (option) +@subsection @code{nk_restriction (option)} +@comment --- 索引用キーワード +@findex nk_restriction (option) + +@comment --- 関数の簡単な説明 --- +@table @t +@item nk_restriction.restriction(... | inhomo=@var{n}, param=@var{p}, s0=@var{m}) +@item nk_restriction.restriction_ideal(... | inhomo=@var{n}, param=@var{p}, s0=@var{m}, ht=@var{b}, ord=@var{ord}) +@item nk_restriction.integration(... | inhomo=@var{n}, param=@var{p}, s0=@var{m}) +@item nk_restriction.integration_ideal(... | inhomo=@var{n}, param=@var{p}, s0=@var{m}, ht=@var{b}, ord=@var{ord}) +:: D 加群の制限, 積分に関する関数のオプションの説明 +@end table + +@comment --- 引数の簡単な説明 --- +@table @var +@item @var{n} +0 または 1 +@item @var{p} +リスト (係数体に属する変数のリスト) +@item @var{m} +整数 +@item @var{b} +0, 1, 2, 3 のいずれか +@item @var{ord} +重み0の変数に対する項順序 +@end table + +@comment --- ここで関数の詳しい説明 --- +@comment --- @itemize〜@end itemize は箇条書き --- +@comment --- @bullet は黒点付き --- +@itemize @bullet +@item @var{n} が 0 でないとき, 非斉次部分の計算を行う. + +restriction_ideal (integration_ideal) に関しては, イデアル @code{I} の +@code{M} 変数についての制限(積分)イデアル @code{J} と + +@iftex +@tex +{\tt J[K]-(1/IH[K][1])(IH[K][0][0][0]IH[K][0][0][1]+...+IH[K][0][M][0]IH[K][0][M][1])} $\in$ {\tt I} +@end tex +@end iftex +@ifinfo +J[K]-(1/IH[K][1])(IH[K][0][0][0]IH[K][0][0][1]+...+IH[K][0][M][0]IH[K][0][M][1]) \in I +@end ifinfo + +を満たす非斉次部分を構成する情報 @code{IH} とのペア @code{[J,IH]} を出力する. +詳しい出力の見方については, 下の例やソースの @code{inhomo_part} の +コメントを参照. + +restriction, integration に対する @code{inhomo} オプションは +restriction_ideal, integration_ideal のサブルーチンとしての実行用なので, +ユーザが明示的に使用することはない. + +@item @var{param} に指定された変数は係数体に属するものとみなされて計算が行われる. +また, ``generic'' であることが仮定される. +つまり, これらの変数に依存するような generic b-関数の根は, +最大整数根でないということである. + +@item @var{param} が指定されると, generic b-関数の計算は noro による +高速アルゴリズムではなく, 消去法が用いられる. +@var{param} に空リストを指定することで, b-関数の計算方法のフラグとしても +利用できる. + +@item @var{m} が負でないとき, 計算を行わずに s-m を generic b-関数として +制限, 積分等の計算を行う. + +@item @var{b} により, 加群のグレブナ基底計算に斉次化, trace アルゴリズム +を用いるかどうか指定できる. +ただし, 斉次化ありで計算できるのは Risa/Asir バージョン 20100415 以降である. + +0: 斉次化なし, trace なし + +1: 斉次化なし, trace あり + +2: 斉次化あり, trace なし (デフォルト) + +3: 斉次化あり, trace あり + +@item @var{ord} が指定されると, 出力の積分, 制限イデアルは, その項順序に +関するグレブナ基底となる. 加群のグレブナ基底計算の POT 順序の tie breaker +として使用されるので計算効率に大きな影響を与える可能性がある. +デフォルトは 0, つまり全次数逆次書式順序である. + +このオプションは @var{param} と同時利用できない. (後に対応予定.) +@end itemize + +以下は, +@iftex +@tex +$ t^{b-1} (1-t)^{c-b-1} (1-xt)^{-a} $ +@end tex +の annihilator +@tex +$I = D \cdot \{ x(1-x) \partial_x^2+((1-t) \partial_t-(a+b+1)x+c-1) + \partial_x-ab, (1-t)x \partial_x+t(1-t) \partial_t+(2-c)t+b-1, + (xt-1) \partial_x+at \}$ +@end tex +の +@tex +$t$ +@end tex +についての積分イデアル +@tex +$J$ +@end tex +を計算し, Gauss の超幾何微分方程式を導出した例である. ([SST, Chap 1.3]) +@end iftex +@ifinfo +t^{b-1} (1-t)^{c-b-1} (1-xt)^{-a} +の annihilator +I = D . @{ x(1-x)dx^2+((1-t)dt-(a+b+1)x+c-1)dx-ab, + (1-t)x dx+t(1-t)dt+(2-c)t+b-1, (xt-1)dx+at @} +の t についての積分イデアル J +を計算し, Gauss の超幾何微分方程式を導出した例である. ([SST, Chap 1.3]) +@end ifinfo +@example +[1555] A=ndbf.ann_n([t,1-t,1-x*t])$ +[1556] I=map(subst,A,s0,b-1,s1,c-b-1,s2,-a); +[(x^2-x)*dx^2+((t-1)*dt+(a+b+1)*x-c+1)*dx+b*a,(-t+1)*x*dx+(t^2-t)*dt+(-c+2)*t+b-1,(t*x-1)*dx+a*t] +[1557] J=nk_restriction.integration_ideal(I,[t,x],[dt,dx],[1,0]|inhomo=1, param=[a,b,c]); +-- nd_weyl_gr :0sec(0.001875sec) +-- weyl_minipoly_by_elim :0.008001sec(0.006133sec) +-- generic_bfct_and_gr :0.008001sec(0.006181sec) +generic bfct : [[-1,1],[s,1],[s-a+c-1,1]] +S0 : 0 +B_{S0} length : 1 +-- fctr(BF) + base :0sec(0.003848sec) +-- integration_ideal_internal :0sec(0.07707sec) +[[(x^2-x)*dx^2+((a+b+1)*x-c)*dx+b*a],[[[[dt,(-t+1)*dx]],1]]] +@end example +@iftex +この出力は +@tex +$\{(x^2-x) \partial_x^2+((a+b+1)x-c) \partial_x+ab \} +- 1/1 \{ \partial_t (-t+1) \partial_x \} \in I$ +@end tex +であることを意味する. +@end iftex +@ifinfo +この出力は +@{(x^2-x)dx^2+((a+b+1)x-c)dx+ab @} - 1/1 @{ dt (-t+1)dx @} \in I +であることを意味する. +@end ifinfo + +@node nk_restriction,,, D 加群の積分イデアルの非斉次部分に関する関数 +@subsection @code{nk_restriction.trans_inhomo} +@comment --- 索引用キーワード +@findex trans_inhomo + +@comment --- 関数の簡単な説明 --- +@table @t +@item nk_restriction.trans_inhomo(@var{P}, @var{INT}, @var{VL}, @var{DVL}, @var{W}) +:: D 加群の制限イデアル, 積分イデアルの生成元に対する非斉次部分の情報から, 任意の元に対する非斉次部分を計算する関数 +@end table + +@comment --- 引数の簡単な説明 --- +@table @var +@item P +積分イデアルの元, または制限イデアルの元 +@item INT +nk_restriction.integration_ideal( ... |inhomo=1); または + +nk_restriction.restriction_ideal( ... |inhomo=1); の出力 +@item VL +変数のリスト +@item DVL +変数のリスト(@var{VL} に対応する微分作用素の方の変数) +@item W +重みベクトルを表すリスト +@end table + +@comment --- ここで関数の詳しい説明 --- +@comment --- @itemize〜@end itemize は箇条書き --- +@comment --- @bullet は黒点付き --- +@itemize @bullet +@item @var{VL}, @var{DVL}, @var{W} は @var{INT} の計算に用いたものをそのまま使用しなければならない. +@item もし, @var{P} が @var{INT[0]} で生成される積分, 制限イデアルの元でない場合はエラーメッセージが表示される. +@end itemize + @noindent ChangeLog @itemize @bullet @item これらの関数は OpenXM/src/asir-contrib/packages/src/nk_restriction.rr で定義されている. nk_restriction.rr, 1.1--1.6 を見よ. +@item 2010-02-05 に 3 つの option (@code{inhomo}, @code{param}, @code{s0}) が追加された. 1.7--1.9 を見よ. +@item 2010-05 から 2010-07 にかけて 2 つの option (@code{ht}, @code{ord}) と +新たな関数 trans_inhomo() が追加された. 1.10--1.13 を見よ. @end itemize -@node その他,,, 実験的仕様の関数 -@section その他 +@node その他(未分類),,, 実験的仕様の関数 +@section その他(未分類) + +@node tk_pfn.rkn,,, 実験的仕様の関数 +@subsection @code{tk_pfn.rkn} +@findex tk_pfn.rkn + +@comment --- 関数の簡単な説明 --- +@comment --- @itemx は複数に対して説明を一つつける場合に使う --- +@table @t +@item tk_pfn.rkn(@var{F},@var{X},@var{Y},@var{Xs},@var{Ys},@var{Ht},@var{H}) +:: Pfaffian 方程式に対する Runge-Kutta 法 +@end table + +@table @var +@item return +リスト 独立変数と解の組 +@item F, X, Y, Xs, Ys, Ht, H +@var{F} は Pfaffian 方程式の係数行列リスト. +@var{X} は独立変数リスト. +@var{Y} は従属変数リスト. +@var{Xs} 独立変数の出発値リスト. +@var{Ys} は出発時の従属変数の値リスト. +@var{Xt} は停止する独立変数の値リスト. +@var{H} は微少数. +@end table + +@itemize @bullet +@item この関数は連立Pfaffian方程式 dY/d X[i] = F[i] Y を数値的に解く. +@item 任意の holonomic system は Pfaffian 方程式に変換できる ([SST, Chap 1]). 変換には yang.rr パッケージを用いる. +@item d F[i]/d X[j] + F[i] F[j] = d F[j]/d X[i] + F[j] F[i] = 0 が任意の i, j に対して成立していることが解が存在する必要十分条件である. この条件が成立しないときにこの関数を用いて解を計算してもその解は偽物である. +@item X[i] が動く範囲は実数でないといけない. +@item Xs[i] <= X[i] <= Xt[i] または Xt[i] <= X[i] <= Xs[i] である. +@item 引数の与え方の例はソースコード (@code{OpenXM/lib/asir-contrib/tk_pfn.rr} )の @code{tk_pfn.test1}, @code{tk_pfn.test2} を参照. +@item 下の例の出力は X=(1,3) での値が Y=(-8,2,-6) であることを意味する. +@item 参考. taka_runge_kutta.rr, yang.rr +@end itemize + +@example +[1355] import("tk_pfn.rr"); +[1590] tk_pfn.test1(); +Value at (3,0.1)[8.99,6,-0.2] +Value at (1,3)[-8,2,-6] +[[[1,3],-8,2,-6], + [[1,2.9],-7.41,2,-5.8], + --- snip --- + [[3,0.1],8.99,6,-0.2]] +@end example + + +@comment --- ChangeLog を書く. 動機. ソースコードの位置. 変更日時 など CVSサーバを見るため +@comment --- openxm の外部からの寄与も述べる. Credit. +@noindent +ChangeLog +@itemize @bullet +@item この関数は 2009-12 から 2010-01 にかけて最初の版が書かれた. +@item @code{OpenXM/src/asir-contrib/packages/src/tk_pfn.rr} 1.1, 1.2 +@item このモジュールの前身は @code{tk_pf2.rr} である. これは独立変数が 2 個の場合である. +@end itemize + +@node fj_simp.simplify,,, 実験的仕様の関数 +@subsection @code{fj_simp.simplify} +@findex fj_simp.simplify + +@comment --- 関数の簡単な説明 --- +@comment --- @itemx は複数に対して説明を一つつける場合に使う --- +@table @t +@item fj_simp.simplify(@var{arg1}) +:: arg1 を簡単化する. +@end table + +@table @var +@item return +多項式, 有理式 または quote +@item arg1 +多項式 または 有理式 +@end table + +@itemize @bullet +@item +現在のバージョンでは fj_simp.simplify でなく, 単に simplify とよぶ. +@item +この関数は +Joel S. Cohen, Computer Algebra and Symbolic Computation, +http://web.cs.du.edu/~jscohen/MathematicalMethods/index.htm +に記述されている Automatic simplification algorithm と +B.F.Caviness, R.J.Fateman, Simplification of Radical Expressions (1976) +に記述されている radcan アルゴリズムの実装である. +@item +複素多値関数としては (x*y)^a = x^a*x^b は一般には成立しないので, 結果を複素関数に使うときは +注意が必要である. (x^a = exp(a*log(x)) なので) +@end itemize + +@example +load("fj_simplify.rr"); +[1434] simplify((x^(1/2))^3); +((x)^(3/2)) +[1435] simplify((2^(1/2))^2); +2 +[1436] simplify((2+2^(1/2))^3); +14*((2)^(1/2))+20 +[1437] simplify(exp(x)*exp(-x+y)); +((@@e)^(y)) +@end example + +@table @t +@item 参照 +@ref{quote} +@end table + +@noindent +ChangeLog +@itemize @bullet +@item +将来的には module 化して fj_simp module に含める予定. +poly_simplify から fj_simp.simplify を呼ぶ. +@item +Todo: exp 以外の特殊関数についてのsimplification の機能. +@item +この関数は 2010.01 に M.Fujimoto により最初の版が書かれた. +OpenXM/src/asir-contrib/packages/src/fj_simplify.rr +@end itemize @comment ----------- 以下は見本. 消すな. @comment ****************************************************************