[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.7 D 加群の制限に関する関数


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.7.1 nk_restriction.restriction

nk_restriction.restriction(Id, VL, DVL, W)

:: D 加群 M = D / Id (ホロノミック D イデアル Id) に対して, 重みベクトル W についての制限加群を返す.

Id

イデアルの生成元のリスト

VL

変数のリスト

DVL

変数のリスト(VL に対応する微分作用素の方の変数)

W

重みベクトルを表すリスト

以下は, イデアル I = D . { x dx -1, y dy - 1 } とおいた時, D 加群 M = D / I の x についての制限加群を計算した例である.

[1432] nk_restriction.restriction([x*dx-1,y*dy-1],[x,y],[dx,dy],[1,0]);
-- generic_bfct_and_gr :0.001sec(0.001629sec)
generic bfct : [[1,1],[s-1,1]]
S0 : 1
B_{S0} length : 2
-- fctr(BF) + base :0.000999sec(0.0005109sec)
[[y*dy-1,(y*dy-1)*dx,-1],[[1],[0]]]

返り値の第 1 番目の要素 [[1],[0]]] は, 制限加群の基底 dx^1, dx^0 を意味し, 返り値の第 0 番目の要素から, 制限加群は (y dy - 1, 0), (0, ydy-1), (-1,0) で生成されることがわかる.


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.7.2 nk_restriction.restriction_ideal

nk_restriction.restriction_ideal(Id, VL, DVL, W)

:: ホロノミック D イデアル Id を重みベクトル W についての制限イデアルを返す.

Id

イデアルの生成元のリスト

VL

変数のリスト

DVL

変数のリスト(VL に対応する微分作用素の方の変数)

W

重みベクトルを表すリスト

以下は, イデアル I = D . { x dx -1, y dy - 1 } の x についての制限イデアルを計算した例である。

[1346] nk_restriction.restriction_ideal([x*dx-1,y*dy-1],[x,y],[dx,dy],[1,0]);
-- generic_bfct_and_gr :0.002sec(0.001652sec)
generic bfct : [[1,1],[s-1,1]]
S0 : 1
B_{S0} length : 2
-- fctr(BF) + base :0sec(0.000566sec)
-- restriction_ideal_internal :0.001sec(0.0007441sec)
[-1]

[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.7.3 nk_restriction.integration

nk_restriction.integration(Id, VL, DVL, W)

:: D 加群 M = D / Id (ホロノミック D イデアル Id) に対して, 重みベクトル W についての積分加群を返す.

Id

イデアルの生成元のリスト

VL

変数のリスト

DVL

変数のリスト(VL に対応する微分作用素の方の変数)

W

重みベクトルを表すリスト

以下は, イデアル I = D . {2 t dx + dt, t dt + 2 x dx + 2 } とおいた時, D 加群 M = D / I の t についての積分加群を計算した例である. ([SST, Ex5.5.2, Ex5.5.6])

[1351] nk_restriction.integration([2*t*dx+dt,2*x*dx+t*dt+2],[t,x],
[dt,dx],[1,0]);
-- generic_bfct_and_gr :0.001sec(0.001796sec)
generic bfct : [[1,1],[s,1],[s-1,1]]
S0 : 1
B_{S0} length : 2
-- fctr(BF) + base :0.001sec(0.0006731sec)
[[4*x*dx^2+6*dx,-4*t*x*dx^2-6*t*dx,2*x*dx+1,-2*t*x*dx,2*t*dx],[[1],[0]]]

返り値の第 1 番目の要素 [[1],[0]]] は, 積分加群の基底 t^1, t^0 を意味し, 返り値の第 0 番目の要素から, 積分加群は (4 x dx^2 + 6 dx, 0), (0, -4 x dx^2 - 6 dx), (0, -2 x dx), (0, 2 dx) で生成されることがわかる.


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.7.4 nk_restriction.integration_ideal

nk_restriction.integration_ideal(Id, VL, DVL, W)

:: ホロノミック D イデアル Id を重みベクトル W についての積分イデアルを返す.

Id

イデアルの生成元のリスト

VL

変数のリスト

DVL

変数のリスト(VL に対応する微分作用素の方の変数)

W

重みベクトルを表すリスト

以下は, イデアル I = D . {2 t dx + dt, t dt + 2 x dx + 2 } の t についての積分イデアルを計算した例である. ([SST, Ex5.5.2, Ex5.5.6])

[1431]  nk_restriction.integration_ideal([2*t*dx+dt,t*dt+2*x*dx+2],[t,x],
[dt,dx],[1,0]);
-- generic_bfct_and_gr :0.002999sec(0.002623sec)
generic bfct : [[1,1],[s,1],[s-1,1]]
S0 : 1
B_{S0} length : 2
-- fctr(BF) + base :0.001sec(0.001091sec)
-- integration_ideal_internal :0.002sec(0.001879sec)
[2*x*dx+1]

[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.7.5 nk_restriction.ann_mul

nk_restriction.ann_mul(I, J, VL, DVL)

:: f を零化するホロノミック D イデアル I, g を零化するホロノミック D イデアルを J としたとき, fg を零化するホロノミック D イデアルを返す.

I

イデアルの生成元のリスト

J

イデアルの生成元のリスト

VL

変数のリスト

DVL

変数のリスト(VL に対応する微分作用素の方の変数)


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.7.6 nk_restriction (option)

nk_restriction.restriction(... | inhomo=n, param=p, s0=m)
nk_restriction.restriction_ideal(... | inhomo=n, param=p, s0=m, ht=b, ord=ord)
nk_restriction.integration(... | inhomo=n, param=p, s0=m)
nk_restriction.integration_ideal(... | inhomo=n, param=p, s0=m, ht=b, ord=ord)

:: D 加群の制限, 積分に関する関数のオプションの説明

n

0 または 1

p

リスト (係数体に属する変数のリスト)

m

整数

b

0, 1, 2, 3 のいずれか

ord

重み0の変数に対する項順序

以下は, 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])

[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]]]

この出力は {(x^2-x)dx^2+((a+b+1)x-c)dx+ab } - 1/1 { dt (-t+1)dx } \in I であることを意味する.

この例のように積分変数が1変数 t, パラメータ変数が x のとき イデアル I に対する inhomo=1 での積分アルゴリズムの出力が [[L],[[[[dt,M]],N]]] である場合, L は x のみの微分作用素, M は x, t の微分作用素, N は数で, L - (1/N)*dt*M が I の元となる. したがって f(x,t) が I で零化される 函数とすれば, L integral(f(x,t),[t,a,b]) - (1/N)[(Mf)(a)-(Mf)(b)]=0 が成り立つ.


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.7.7 nk_restriction.trans_inhomo

nk_restriction.trans_inhomo(P, INT, VL, DVL, W)

:: D 加群の制限イデアル, 積分イデアルの生成元に対する非斉次部分の情報から, 任意の元に対する非斉次部分を計算する関数

P

積分イデアルの元, または制限イデアルの元

INT

nk_restriction.integration_ideal( ... |inhomo=1); または

nk_restriction.restriction_ideal( ... |inhomo=1); の出力

VL

変数のリスト

DVL

変数のリスト(VL に対応する微分作用素の方の変数)

W

重みベクトルを表すリスト


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.7.8 nk_restriction.ost_integration_ideal

積分領域が区間の直積であるような積分の満たす ホロノミック斉次微分方程式系を返す (Oaku-Shiraki-Takayama, 2003).

nk_restriction.ost_integration_ideal(Id, VL, DVL, W, LB, UB)

:: Heaviside 関数との積の満たす微分方程式系の計算にショートカット法を用いる.

nk_restriction.ost_integration_ideal2(Id, VL, DVL, W, LB, UB)

:: Heaviside 関数との積の満たす微分方程式系の計算に制限イデアルを用いる.

Id

イデアルの生成元のリスト

VL

変数のリスト

DVL

変数のリスト(VL に対応する微分作用素の方の変数)

W

重みベクトルを表すリスト

LB

積分区間の下端を表すリスト

UB

積分区間の上端を表すリスト

以下は, Oaku-Shiraki-Takayama (2003) の例5.1を計算したものである. \int_0^∞ exp((-t^3+t)x) dt の被積分関数の満たすホロノミックイデアルは I = < dt +(3t^2-1)x, dx+t^3-t > であるから, これを入力として次のように計算を行う.

[1871] Id=[dt+(3*t^2-1)*x, dx+t^3-t]$
[1872] VL=[t,x]$
[1873] DVL=[dt,dx]$
[1874] W=[1,0]$
[1875] nk_restriction.ost_integration_ideal(Id,VL,DVL,W,[0],["inf"]);
-- nd_weyl_gr :0.008sec(0.006768sec)
-- weyl_minipoly :0.004001sec(0.003029sec)
-- generic_bfct_and_gr :0.012sec(0.0129sec)
generic bfct : [[1,1],[s,1],[s-2,1]]
S0 : 2
B_{S0} length : 3
-- fctr(BF) + base :0.008sec(0.007395sec)
-- integration_ideal_internal :0.012sec + gc : 0.016sec(0.04311sec)
[-27*x^3*dx^3-54*x^2*dx^2+(4*x^3+3*x)*dx+4*x^2-3,27*x^2*dx^4+135*x*dx^3+(-4*x^2+105)*dx^2-16*x*dx-8]


[1876] nk_restriction.ost_integration_ideal2(Id,VL,DVL,W,[0],["inf"]);
(略)
[27*x^3*dx^3+54*x^2*dx^2+(-4*x^3-3*x)*dx-4*x^2+3,-27*x^2*dx^4-135*x*dx^3+(4*x^2-105)*dx^2+16*x*dx+8]

この出力は, 積分を零化するホロノミック系である.


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.7.9 nk_restriction.ost_sum

nk_restriction.ost_sum(Id, VL, DVL, W)

:: 和の満たす(斉次/非斉次)差分方程式系を返す.

Id

イデアルの生成元のリスト

VL

変数のリスト

DVL

変数のリスト(VL に対応する差分作用素の方の変数)

W

重みベクトルを表すリスト

以下は, Oaku-Shiraki-Takayama (2003) の例6.5の非斉次部分まで計算したものである. \sum_{k=a}^b n_C_k の非和関数の満たすホロノミックイデアルは I = < (n-k+1)E_n-(n+1), (k+1)E_k-(n-k) > であるから, これを入力として次のように計算を行う.

[1871] Id=[(n-k+1)*en-(n+1), (k+1)*ek-(n-k)]$  
[1872] VL=[k,n]$
[1873] DVL=[ek,en]$
[1874] W=[1,0]$
[1875] nk_restriction.ost_sum(Id,VL,DVL,W|inhomo=1);
-- nd_weyl_gr :0.006667sec(0.004057sec)
-- weyl_minipoly :0sec(0.001163sec)
-- generic_bfct_and_gr :0.01sec(0.007085sec)
generic bfct : [[1,1],[s,1]]
S0 : 0
B_{S0} length : 1
-- fctr(BF) + base :0.003333sec(0.001785sec)
-- restriction_ideal_internal :0sec(0.002336sec)
[[(en-2)*n+en-2],[[[[ek-1,[(-en+1)*n-en+1,1]]],1]]]

[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.7.10 nk_restriction.module_restriction

nk_restriction.module_restriction(M, VL, DVL, W)

:: D 加群 D^r/M (M は D^r の部分加群) の重みベクトル W についての制限加群を返す.

M

D 自由加群 D^r の部分加群

VL

変数のリスト

DVL

変数のリスト(VL に対応する微分作用素の方の変数)

W

重みベクトルを表すリスト

以下は, D 自由加群 D^2 の部分加群 M = D . { (dx, dy), (dy, dx), (x, y) } をとり, D 加群 D^2 / M の x ついての制限加群を計算した例である.

[2691] nk_restriction.module_restriction([[dx,dy],[dy,dx],[x,y]], [x,y], [dx,dy], [1,0]);
....
bfunction : 
s
[[1,1],[s,1]]
integer roots :
[0,0]
Generators: 
[e1,e2]
Relations: 
[-8*e2*dy,4*e2*dy^2,-4*e2*dy^3,4*e1*y*dy-4*e1,-4*e1*dy^2,-4*e2,-e2*y*dy^2+2*e2*dy,-e1*y*dy+e1,e1*y*dy-e1]
[[0,-1],[-dy^2,0],[y*dy-1,0]]

制限加群は (0, -1), (-dy^2, 0), (y, dy-1, 0) で生成されることがわかる.


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.7.11 nk_restriction.module_integration

nk_restriction.module_integration(M, VL, DVL, W)

:: D 加群 D^r/M (M は D^r の部分加群) の重みベクトル W についての積分加群を返す.

M

D 自由加群 D^r の部分加群

VL

変数のリスト

DVL

変数のリスト(VL に対応する微分作用素の方の変数)

W

重みベクトルを表すリスト

以下は, D 自由加群 D^2 の部分加群 M = D . { (x, y), (y, x), (dx, dy) } をとり, D 加群 D^2 / M の x についての積分加群を計算した例である.

[2702] nk_restriction.module_integration([[x,y],[y,x],[dx,dy]], [x,y], [dx,dy], [1,0]);
...
bfunction : 
s
[[1,1],[s,1]]
integer roots :
[0,0]
Generators: 
[e1,e2]
Relations: 
[-8*e2*y,-4*e2*y^2,-4*e2*y^3,-4*e1*y*dy-8*e1,-4*e1*y^2,-4*e2,-e2*y^2*dy-4*e2*y,e1*y*dy+2*e1,e1*y*dy+2*e1]
[[0,-1],[y*dy+2,0],[-y^2,0]]

積分加群は (0, -1), (y dy + 2, 0), (-y^2, 0) で生成されることがわかる.

ChangeLog


[ << ] [ < ] [] [ > ] [ >> ]

この文書は3月 29, 2024texi2html 5.0を用いて生成されました。