Ok diff (Okutani 版微分作用素関数) マニュアル

Edition : auto generated by oxgentexi on 23 February 2009

OpenXM.org

1 Differential equations (library by Okutani)

   ファイル ‘gr’, ‘ok_matrix.rr’, ‘ok_diff.rr’ が必要です.

Yukio Okutani 氏による Risa/Asir 言語で書かれた連立線形偏微分方程式用のライブラリです. すべての関数名は odiff で始まります.

この節で紹介される関数では微分作用素はリストまたは多項式で表現されます. リストによる表現は次のようになります.

[[f_{α}, [α_{1}, …, α_{n}]], …]

これは

∑_{α} f_{α}∂^{α}

という意味です. 線型偏微分方程式系

(∑_{α^{(i)}} f_{α^{(i)}}∂^{α^{(i)}}) • u = 0 (i = 1, …, s)

などのように複数の微分作用素を表現するときは微分作用素のリストを使います.

[[[f_{α^{(1)}}, [α_{1}^{(1)}, …, α_{n}^{(1)}]], …], …, [[f_{α^{(s)}}, [α_{1}^{(s)}, …, α_{n}^{(s)}]], …]]

例えば微分作用素 x∂_{x} + y∂_{y} + 1 の場合は

[[x, [1, 0]], [y, [0, 1]], [1, [0, 0]]]

となります. また微分作用素のリストで x∂_{x} + y∂_{y} + 1, ∂_{x}^{2} + ∂_{y}^{2} を表すと

[[[x, [1, 0]], [y, [0, 1]], [1, [0, 0]]], [[1, [2, 0]], [1, [0, 2]]]]

となります. またこの表現法を使うときは変数リストを常に意識している必要があります. 次に多項式による表現について述べます. 変数 x に対する微分は dx で表現されます. 例えば x∂_{x} + y∂_{y} + 1 については

x ∗ dx + y ∗ dy + 1

と表現されます.

1.0.1 odiff_op_appell4
odiff_op_appell4(a,b,c1,c2,V)

:: appell の F 4 を零化する微分作用素を生成します.

return リスト

a, b, c1, c2 有理式

V リスト

  • odiff_op_appell4の例.
     [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]] ] ]

1.0.2 odiff_op_tosm1
odiff_op_tosm1(LL,V)

:: リスト形式の微分作用素リストを sm1 形式に変換します.

return リスト

LL リスト

V リスト

• 微分作用素の係数は整数多項式に変換されます.

• odiff_op_tosm1の例
[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))]
1.0.3 odiff_op_toasir
odiff_op_toasir(LL,V)

:: リスト形式の微分作用素リスト LL を asir の多項式に変換します.

return リスト

LL リスト

V リスト

• odiff_op_toasirの例
[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]

1.0.4 odiff_op_fromasir
odiff_op_fromasir(D_list,V)

:: asir の多項式からリスト形式の微分作用素リストに変換します.

return リスト D list リスト V リスト

  • odiff_op_fromasirの例
     [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]]]]
1.0.5 odiff_act
odiff_act(L,F,V)

:: 微分作用素 L を有理式 F に作用させる. V は変数リスト.

return 有理式 L リスト or 多項式 F 有理式 V リスト

  • odiff_actの例
     [302] odiff_act([[1,[2]]],x^3+x^2+x+1,[x]);
     6*x+2
     [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
1.0.6 odiff_act_appell4
odiff_act_appell4(a,b,c1,c2,F,V)

:: 微分作用素 odiff_op_appell4 を有理式 F に作用させる.

return リスト a, b, c1, c2

有理式

F 有理式 V リスト

• odiff_act_appell4の例
[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] 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] odiff_act_appell4(-2,-2,-1,-1,x^2+y^2,[x,y]);
[0,0]
1.0.7 odiff_poly_solve
odiff_poly_solve(LL,N,V)

:: 与えられた線型微分方程式系の N 次以下の多項式解を求める.

return リスト

LL リスト

N 整数

V リスト

• odiff_poly_solveの例.
[297] odiff_poly_solve([[[x,[1,0]],[-1,[0,0]]],[[y,[0,1]],[-1,[0,0]]]],5,[x,y]);
[_4*y*x,[_4]]
[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]]
1.0.8 odiff_poly_solve_hg1
odiff_poly_solve_hg1(a,b,c,V)

:: ガウスの超幾何微分方程式の多項式解を求める.

return リスト

a, b, c 有理式

V リスト

• odiff_poly_solve_hg1の例.
[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] odiff_poly_solve_hg1(-3,-6,-7,[x]);
[-4/7*_2*x^3+15/7*_2*x^2-18/7*_2*x+_2,[_2]]

1.0.9 odiff_poly_solve_appell4
odiff_poly_solve_appell4(a,b,c1,c2,V)

:: F 4 がみたす線型微分方程式系の多項式解を求める.

return リスト

a, b, c1, c2 有理式

V リスト

  • odiff_poly_solve_appell4の例.
     [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] odiff_poly_solve_appell4(-3,1,1,-1,[x,y]);
     [-3*_45*y^2*x-_45*y^3+_45*y^2,[_45]]
1.0.10 odiff_rat_solve
odiff_rat_solve(LL,Dn,N,V)

:: 与えられた線型微分方程式系の分母が Dn, 分子が N 次以下の多項式であるような解を求める.

return リスト

LL リスト

Dn 有理式

N 整数

V リスト

  • odiff_rat_solveの例.
     [333] odiff_rat_solve([[[x,[1]],[1,[0]]]],x,1,[x]);
     [(_8)/(x),[_8]]
     [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]]

Index 6

Index

(Index is nonexistent) (Index is nonexistent)

Short Contents

1 Differential equations (library by Okutani) . . . . . . . . . . . . . . 1 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Table of Contents

1 Differential equations (library by Okutani) . . 1

1.0.1 odiff_op_appell4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.0.2 odiff_op_tosm1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.0.3 odiff_op_toasir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.0.4 odiff_op_fromasir . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.0.5 odiff_act . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.0.6 odiff_act_appell4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.0.7 odiff_poly_solve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.0.8 odiff_poly_solve_hg1 . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.0.9 odiff_poly_solve_appell4 . . . . . . . . . . . . . . . . . . . . 4 1.0.10 odiff_rat_solve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6