=================================================================== RCS file: /home/cvs/OpenXM/src/asir-contrib/packages/doc/Attic/Diff.texi,v retrieving revision 1.5 retrieving revision 1.7 diff -u -p -r1.5 -r1.7 --- OpenXM/src/asir-contrib/packages/doc/Attic/Diff.texi 2000/01/31 11:01:00 1.5 +++ OpenXM/src/asir-contrib/packages/doc/Attic/Diff.texi 2001/06/24 01:14:21 1.7 @@ -1,10 +1,15 @@ -@c $OpenXM: OpenXM/src/asir-contrib/packages/doc/Diff.texi,v 1.4 2000/01/21 12:54:39 okutani Exp $ -@node Differential equations,,, その他の函数 -@section Differential equations +@c $OpenXM: OpenXM/src/asir-contrib/packages/doc/Diff.texi,v 1.6 2000/02/20 11:30:44 okutani Exp $ +@node Differential equations (library by Okutani),,, Top +@section Differential equations (library by Okutani) ファイル @file{gr}, @file{Matrix} が必要です. +Yukio Okutani 氏による Risa/Asir 言語で書かれた連立線形偏微分方程式用 +のライブラリです. +すべての関数名は odiff_ で始まります. + @tex -この節で紹介される関数では微分作用素は次のようなリストで表現します. +この節で紹介される関数では微分作用素はリストまたは多項式で表現されます. +リストによる表現は次のようになります. $$ [ [f_{\alpha},[\alpha_{1},\ldots,\alpha_{n}]],\ldots ] $$ これは $$ \sum_{\alpha}f_{\alpha}\partial^{\alpha} $$ @@ -12,45 +17,52 @@ $$ \sum_{\alpha}f_{\alpha}\partial^{\alpha} $$ $$ (\sum_{\alpha^{(i)}}f_{\alpha^{(i)}}\partial^{\alpha^{(i)}})\bullet u = 0 \quad (i = 1,\ldots,s) $$ などのように複数の微分作用素を表現するときは微分作用素のリストを使います. $$ [ [ [f_{\alpha^{(1)}},[\alpha_{1}^{(1)},\ldots,\alpha_{n}^{(1)}]],\ldots ],\ldots,[ [f_{\alpha^{(s)}},[\alpha_{1}^{(s)},\ldots,\alpha_{n}^{(s)}]],\ldots ] ] $$ -例えば微分作用素$x dx + y dy + 1$の場合は +例えば微分作用素$x \partial_{x} + y \partial_{y} + 1$の場合は $$ [ [x,[1,0]],[y,[0,1]],[1,[0,0]] ] $$ -となります. また微分作用素のリストで$x dx + y dy + 1, dx^2 + dy^2$を表すと +となります. また微分作用素のリストで$x \partial_{x} + y \partial_{y} + 1, {\partial_{x}}^{2} + {\partial_{y}}^{2}$を表すと $$ [ [ [x,[1,0]],[y,[0,1]],[1,[0,0]] ],[ [1,[2,0]],[1,[0,2]] ] ] $$ -となります. またこれらの表現法を使うときは変数リストを常に意識している必要があります。 +となります. またこの表現法を使うときは変数リストを常に意識している必要があります. +次に多項式による表現について述べます. 変数$x$に対する微分は$dx$で表現されます. +例えば$x \partial_{x} + y \partial_{y} + 1$については +$$ x*dx+y*dy+1 $$ +と表現されます. @end tex @menu -@c * diff_op_hg1:: -@c * diff_op_appell1:: -@c * diff_op_appell2:: -@c * diff_op_appell3:: -* diff_op_appell4:: -@c * diff_op_selberg2:: -@c * diff_op_gkz:: -* diff_act:: -@c * diff_act_hg1:: -@c * diff_act_appell1:: -@c * diff_act_appell2:: -@c * diff_act_appell3:: -* diff_act_appell4:: -@c * diff_act_selberg2:: -@c * diff_act_gkz:: -* diff_poly_solve:: -* diff_poly_solve_hg1:: -@c * diff_poly_solve_appell1:: -@c * diff_poly_solve_appell2:: -@c * diff_poly_solve_appell3:: -* diff_poly_solve_appell4:: -@c * diff_poly_solve_selberg2:: -@c * diff_poly_solve_gkz:: -* diff_rat_solve:: -@c * diff_pseries_appell4:: +@c * odiff_op_hg1:: +@c * odiff_op_appell1:: +@c * odiff_op_appell2:: +@c * odiff_op_appell3:: +* odiff_op_appell4:: +@c * odiff_op_selberg2:: +@c * odiff_op_gkz:: +* odiff_op_tosm1:: +* odiff_op_toasir:: +* odiff_op_fromasir:: +* odiff_act:: +@c * odiff_act_hg1:: +@c * odiff_act_appell1:: +@c * odiff_act_appell2:: +@c * odiff_act_appell3:: +* odiff_act_appell4:: +@c * odiff_act_selberg2:: +@c * odiff_act_gkz:: +* odiff_poly_solve:: +* odiff_poly_solve_hg1:: +@c * odiff_poly_solve_appell1:: +@c * odiff_poly_solve_appell2:: +@c * odiff_poly_solve_appell3:: +* odiff_poly_solve_appell4:: +@c * odiff_poly_solve_selberg2:: +@c * odiff_poly_solve_gkz:: +* odiff_rat_solve:: +@c * odiff_pseries_appell4:: @end menu -@node diff_op_appell4,,, Differential equations -@subsection @code{diff_op_appell4} -@findex diff_op_appell4 +@node odiff_op_appell4,,, Differential equations (library by Okutani) +@subsection @code{odiff_op_appell4} +@findex odiff_op_appell4 @table @t -@item diff_op_appell4(@var{a},@var{b},@var{c1},@var{c2},@var{V}) +@item odiff_op_appell4(@var{a},@var{b},@var{c1},@var{c2},@var{V}) :: appell の F_4 を零化する微分作用素を生成します. @end table @table @var @@ -62,50 +74,144 @@ $$ [ [ [x,[1,0]],[y,[0,1]],[1,[0,0]] ],[ [1,[2,0]],[1, リスト @end table @itemize @bullet -@item @code{diff_op_appell4}の例. +@item @code{odiff_op_appell4}の例. @end itemize @example -[298] diff_op_appell4(a,b,c1,c2,[x,y]); +[298] odiff_op_appell4(a,b,c1,c2,[x,y]); [ [ [-x^2+x,[2,0]], [-2*y*x,[1,1]], [-y^2,[0,2]], [(-a-b-1)*x+c1,[1,0]], [(-a-b-1)*y,[0,1]], [-b*a,[0,0]] ], [ [-y^2+y,[0,2]], [-2*y*x,[1,1]], [-x^2,[2,0]], [(-a-b-1)*y+c2,[0,1]], [(-a-b-1)*x,[1,0]], [-b*a,[0,0]] ] ] @end example -@node diff_act,,, Differential equations -@subsection @code{diff_act} -@findex diff_act +@node odiff_op_tosm1,,, Differential equations (library by Okutani) +@subsection @code{odiff_op_tosm1} +@findex odiff_op_tosm1 @table @t -@item diff_act(@var{L},@var{F},@var{V}) +@item odiff_op_tosm1(@var{LL},@var{V}) +:: リスト形式の微分作用素リストを sm1 形式に変換します. +@end table +@table @var +@item return +リスト +@item LL +リスト +@item V +リスト +@end table +@itemize @bullet +@item 微分作用素の係数は整数多項式に変換されます. +@item @code{odiff_op_tosm1}の例 +@end itemize +@example +[299] odiff_op_tosm1([[[x,[2,0]],[-1,[0,0]]], + [[y,[0,2]],[-1,[0,0]]]],[x,y]); +[ + ( + (1) x) dx^2 + ( + (-1)), + ( + (1) y) dy^2 + ( + (-1))] + +[300] odiff_op_tosm1([[[x,[1,0]],[y,[0,1]],[1,[0,0]]], + [[1,[2,0]],[1,[0,2]]]],[x,y]); +[ + ( + (1) x) dx + ( + (1) y) dy + ( + (1)), + ( + (1)) dx^2 + ( + (1)) dy^2] + +[301] odiff_op_tosm1([[[1/2,[1,0]],[1,[0,0]]], + [[1/3,[0,1]],[1/4,[0,0]]]],[x,y]); +[ + ( + (6)) dx + ( + (12)), + ( + (4)) dy + ( + (3))] + +[302] odiff_op_tosm1([[[1/2*x,[1,0]],[1,[0,0]]], + [[1/3*y,[0,1]],[1/4,[0,0]]]],[x,y]); +[ + ( + (6) x) dx + ( + (12)), + ( + (4) y) dy + ( + (3))] +@end example + +@node odiff_op_toasir,,, Differential equations (library by Okutani) +@subsection @code{odiff_op_toasir} +@findex odiff_op_toasir +@table @t +@item odiff_op_toasir(@var{LL},@var{V}) +:: リスト形式の微分作用素リスト @var{LL} を @code{asir} の多項式に変換します. +@end table +@table @var +@item return +リスト +@item LL +リスト +@item V +リスト +@end table +@itemize @bullet +@item @code{odiff_op_toasir}の例 +@end itemize +@example +[303] odiff_op_toasir([[[1/2*x,[1,0]],[1,[0,0]]], + [[1/3*y,[0,1]],[1/4,[0,0]]]],[x,y]); +[1/2*x*dx+1,1/3*y*dy+1/4] + +[304] odiff_op_toasir([[[x,[1,0]],[y,[0,1]],[1,[0,0]]], + [[1,[2,0]],[1,[0,2]]]],[x,y]); +[x*dx+y*dy+1,dx^2+dy^2] +@end example + +@node odiff_op_fromasir,,, Differential equations (library by Okutani) +@subsection @code{odiff_op_fromasir} +@findex odiff_op_fromasir +@table @t +@item odiff_op_fromasir(@var{D_list},@var{V}) +:: @code{asir} の多項式からリスト形式の微分作用素リストに変換します. +@end table +@table @var +@item return +リスト +@item D_list +リスト +@item V +リスト +@end table +@itemize @bullet +@item @code{odiff_op_fromasir}の例 +@end itemize +@example +[305] odiff_op_fromasir([1/2*x*dx+1,1/3*y*dy+1/4],[x,y]); +[[[1/2*x,[1,0]],[1,[0,0]]],[[1/3*y,[0,1]],[1/4,[0,0]]]] + +[306] odiff_op_fromasir([x*dx+y*dy+1,dx^2+dy^2],[x,y]); +[[[x,[1,0]],[y,[0,1]],[1,[0,0]]],[[1,[2,0]],[1,[0,2]]]] +@end example + +@node odiff_act,,, Differential equations (library by Okutani) +@subsection @code{odiff_act} +@findex odiff_act +@table @t +@item odiff_act(@var{L},@var{F},@var{V}) :: 微分作用素 @var{L} を有理式 @var{F} に作用させる. @var{V} は変数リスト. @end table @table @var @item return 有理式 @item L -リスト +リスト or 多項式 @item F 有理式 @item V リスト @end table @itemize @bullet -@item @code{diff_act}の例 +@item @code{odiff_act}の例 @end itemize @example -[302] diff_act([[1,[2]]],x^3+x^2+x+1,[x]); +[302] odiff_act([[1,[2]]],x^3+x^2+x+1,[x]); 6*x+2 -[303] diff_act([[1,[1,0]],[1,[0,1]]],x^2+y^2,[x,y]); +[303] odiff_act([[1,[1,0]],[1,[0,1]]],x^2+y^2,[x,y]); 2*x+2*y + +[349] odiff_act(x*dx+y*dy, x^2+x*y+y^2, [x,y]); +2*x^2+2*y*x+2*y^2 @end example -@node diff_act_appell4,,, Differential equations -@subsection @code{diff_act_appell4} -@findex diff_act_appell4 +@node odiff_act_appell4,,, Differential equations (library by Okutani) +@subsection @code{odiff_act_appell4} +@findex odiff_act_appell4 @table @t -@item diff_act_appell4(@var{a},@var{b},@var{c1},@var{c2},@var{F},@var{V}) -:: 微分作用素 @code{diff_op_appell4} を有理式 @var{F} に作用させる. +@item odiff_act_appell4(@var{a},@var{b},@var{c1},@var{c2},@var{F},@var{V}) +:: 微分作用素 @code{odiff_op_appell4} を有理式 @var{F} に作用させる. @end table @table @var @item return @@ -118,24 +224,24 @@ $$ [ [ [x,[1,0]],[y,[0,1]],[1,[0,0]] ],[ [1,[2,0]],[1, リスト @end table @itemize @bullet -@item @code{diff_act_appell4}の例 +@item @code{odiff_act_appell4}の例 @end itemize @example -[303] diff_act_appell4(1,0,1,1,x^2+y^2,[x,y]); +[303] odiff_act_appell4(1,0,1,1,x^2+y^2,[x,y]); [-6*x^2+4*x-6*y^2,-6*x^2-6*y^2+4*y] -[304] diff_act_appell4(0,0,1,1,x^2+y^2,[x,y]); +[304] odiff_act_appell4(0,0,1,1,x^2+y^2,[x,y]); [-4*x^2+4*x-4*y^2,-4*x^2-4*y^2+4*y] -[305] diff_act_appell4(-2,-2,-1,-1,x^2+y^2,[x,y]); +[305] odiff_act_appell4(-2,-2,-1,-1,x^2+y^2,[x,y]); [0,0] @end example -@node diff_poly_solve,,, Differential equations -@subsection @code{diff_poly_solve} -@findex diff_poly_solve +@node odiff_poly_solve,,, Differential equations (library by Okutani) +@subsection @code{odiff_poly_solve} +@findex odiff_poly_solve @table @t -@item diff_poly_solve(@var{LL},@var{N},@var{V}) +@item odiff_poly_solve(@var{LL},@var{N},@var{V}) :: 与えられた線型微分方程式系の @var{N} 次以下の多項式解を求める. @end table @table @var @@ -149,21 +255,24 @@ $$ [ [ [x,[1,0]],[y,[0,1]],[1,[0,0]] ],[ [1,[2,0]],[1, リスト @end table @itemize @bullet -@item @code{diff_poly_solve}の例. +@item @code{odiff_poly_solve}の例. @end itemize @example -[297] diff_poly_solve([[[x,[1,0]],[-1,[0,0]]],[[y,[0,1]],[-1,[0,0]]]],5,[x,y]); +[297] odiff_poly_solve([[[x,[1,0]],[-1,[0,0]]],[[y,[0,1]],[-1,[0,0]]]],5,[x,y]); [_4*y*x,[_4]] -[298] diff_poly_solve([[[x,[1,0]],[-2,[0,0]]],[[y,[0,1]],[-2,[0,0]]]],5,[x,y]); +[298] odiff_poly_solve([[[x,[1,0]],[-2,[0,0]]],[[y,[0,1]],[-2,[0,0]]]],5,[x,y]); [_33*y^2*x^2,[_33]] + +[356] odiff_poly_solve([x*dx+y*dy-3,dx+dy],4,[x,y]); +[-_126*x^3+3*_126*y*x^2-3*_126*y^2*x+_126*y^3,[_126]] @end example -@node diff_poly_solve_hg1,,, Differential equations -@subsection @code{diff_poly_solve_hg1} -@findex diff_poly_solve_hg1 +@node odiff_poly_solve_hg1,,, Differential equations (library by Okutani) +@subsection @code{odiff_poly_solve_hg1} +@findex odiff_poly_solve_hg1 @table @t -@item diff_poly_solve_hg1(@var{a},@var{b},@var{c},@var{V}) +@item odiff_poly_solve_hg1(@var{a},@var{b},@var{c},@var{V}) :: ガウスの超幾何微分方程式の多項式解を求める. @end table @table @var @@ -175,21 +284,21 @@ $$ [ [ [x,[1,0]],[y,[0,1]],[1,[0,0]] ],[ [1,[2,0]],[1, リスト @end table @itemize @bullet -@item @code{diff_poly_solve_hg1}の例. +@item @code{odiff_poly_solve_hg1}の例. @end itemize @example -[334] diff_poly_solve_hg1(-3,-6,-5,[x]); +[334] odiff_poly_solve_hg1(-3,-6,-5,[x]); [_1*x^6-2*_0*x^3+9/2*_0*x^2-18/5*_0*x+_0,[_0,_1]] -[335] diff_poly_solve_hg1(-3,-6,-7,[x]); +[335] odiff_poly_solve_hg1(-3,-6,-7,[x]); [-4/7*_2*x^3+15/7*_2*x^2-18/7*_2*x+_2,[_2]] @end example -@node diff_poly_solve_appell4,,, Differential equations -@subsection @code{diff_poly_solve_appell4} -@findex diff_poly_solve_appell4 +@node odiff_poly_solve_appell4,,, Differential equations (library by Okutani) +@subsection @code{odiff_poly_solve_appell4} +@findex odiff_poly_solve_appell4 @table @t -@item diff_poly_solve_appell4(@var{a},@var{b},@var{c1},@var{c2},@var{V}) +@item odiff_poly_solve_appell4(@var{a},@var{b},@var{c1},@var{c2},@var{V}) :: F_4がみたす線型微分方程式系の多項式解を求める. @end table @table @var @@ -201,21 +310,21 @@ $$ [ [ [x,[1,0]],[y,[0,1]],[1,[0,0]] ],[ [1,[2,0]],[1, リスト @end table @itemize @bullet -@item @code{diff_poly_solve_appell4}の例. +@item @code{odiff_poly_solve_appell4}の例. @end itemize @example -[299] diff_poly_solve_appell4(-3,1,-1,-1,[x,y]); +[299] odiff_poly_solve_appell4(-3,1,-1,-1,[x,y]); [-_26*x^3+(3*_26*y+_26)*x^2+3*_24*y^2*x-_24*y^3+_24*y^2,[_24,_26]] -[300] diff_poly_solve_appell4(-3,1,1,-1,[x,y]); +[300] odiff_poly_solve_appell4(-3,1,1,-1,[x,y]); [-3*_45*y^2*x-_45*y^3+_45*y^2,[_45]] @end example -@node diff_rat_solve,,, Differential equations -@subsection @code{diff_rat_solve} -@findex diff_rat_solve +@node odiff_rat_solve,,, Differential equations (library by Okutani) +@subsection @code{odiff_rat_solve} +@findex odiff_rat_solve @table @t -@item diff_rat_solve(@var{LL},@var{Dn},@var{N},@var{V}) +@item odiff_rat_solve(@var{LL},@var{Dn},@var{N},@var{V}) :: 与えられた線型微分方程式系の分母が @var{Dn}, 分子が @var{N} 次以下の多項式であるような解を求める. @end table @table @var @@ -231,13 +340,16 @@ $$ [ [ [x,[1,0]],[y,[0,1]],[1,[0,0]] ],[ [1,[2,0]],[1, リスト @end table @itemize @bullet -@item @code{diff_rat_solve}の例. +@item @code{odiff_rat_solve}の例. @end itemize @example -[333] diff_rat_solve([[[x,[1]],[1,[0]]]],x,1,[x]); +[333] odiff_rat_solve([[[x,[1]],[1,[0]]]],x,1,[x]); [(_8)/(x),[_8]] -[350] D = diff_op_appell4(0,0,3,0,[x,y])$ -[351] diff_rat_solve(D,x^2,2,[x,y]); +[361] odiff_rat_solve([x*(1-x)*dx^2+(1-3*x)*dx-1],1-x,2,[x]); +[(_180)/(-x+1),[_180]] + +[350] D = odiff_op_appell4(0,0,3,0,[x,y])$ +[351] odiff_rat_solve(D,x^2,2,[x,y]); [(_118*x^2-_114*y*x+1/2*_114*y^2+_114*y)/(x^2),[_114,_118]] @end example