[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
nk_restriction.restriction
:: D 加群 M = D / Id (ホロノミック D イデアル Id) に対して, 重みベクトル W についての制限加群を返す.
イデアルの生成元のリスト
変数のリスト
変数のリスト(VL に対応する微分作用素の方の変数)
重みベクトルを表すリスト
[1,1,0,0,0]
は OK だが、 [1,0,1,0,0]
はダメ)
=[x,y,z]
, W =[1,1,0]
であれば,
x,y について制限を行う.
以下は, イデアル 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)
で生成されることがわかる.
[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
nk_restriction.restriction_ideal
:: ホロノミック D イデアル Id を重みベクトル W についての制限イデアルを返す.
イデアルの生成元のリスト
変数のリスト
変数のリスト(VL に対応する微分作用素の方の変数)
重みベクトルを表すリスト
[1,1,0,0,0]
は OK だが, [1,0,1,0,0]
はダメ)
=[x,y,z]
, W =[1,1,0]
であれば,
x,y について制限を行う.
以下は, イデアル 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]
[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
nk_restriction.integration
:: D 加群 M = D / Id (ホロノミック D イデアル Id) に対して, 重みベクトル W についての積分加群を返す.
イデアルの生成元のリスト
変数のリスト
変数のリスト(VL に対応する微分作用素の方の変数)
重みベクトルを表すリスト
[1,1,0,0,0]
は OK だが, [1,0,1,0,0]
はダメ)
=[x,y,z]
, W =[1,1,0]
であれば,
x,y について積分を行う.
以下は, イデアル 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)
で生成されることがわかる.
[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
nk_restriction.integration_ideal
:: ホロノミック D イデアル Id を重みベクトル W についての積分イデアルを返す.
イデアルの生成元のリスト
変数のリスト
変数のリスト(VL に対応する微分作用素の方の変数)
重みベクトルを表すリスト
[1,1,0,0,0]
は OK だが, [1,0,1,0,0]
はダメ)
=[x,y,z]
, W =[1,1,0]
であれば,
x,y について積分を行う.
以下は, イデアル 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]
[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
nk_restriction.ann_mul
:: f を零化するホロノミック D イデアル I, g を零化するホロノミック D イデアルを J としたとき, fg を零化するホロノミック D イデアルを返す.
イデアルの生成元のリスト
イデアルの生成元のリスト
変数のリスト
変数のリスト(VL に対応する微分作用素の方の変数)
[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
nk_restriction (option)
:: D 加群の制限, 積分に関する関数のオプションの説明
0 または 1
リスト (係数体に属する変数のリスト)
整数
0, 1, 2, 3 のいずれか
重み0の変数に対する項順序
restriction_ideal (integration_ideal) に関しては, イデアル I
の
M
変数についての制限(積分)イデアル J
と
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
を満たす非斉次部分を構成する情報 IH
とのペア [J,IH]
を出力する.
詳しい出力の見方については, 下の例やソースの inhomo_part
の
コメントを参照.
restriction, integration に対する inhomo
オプションは
restriction_ideal, integration_ideal のサブルーチンとしての実行用なので,
ユーザが明示的に使用することはない.
0: 斉次化なし, trace なし
1: 斉次化なし, trace あり
2: 斉次化あり, trace なし (デフォルト)
3: 斉次化あり, trace あり
このオプションは param と同時利用できない. (後に対応予定.)
以下は, 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 が成り立つ.
[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
nk_restriction.trans_inhomo
:: D 加群の制限イデアル, 積分イデアルの生成元に対する非斉次部分の情報から, 任意の元に対する非斉次部分を計算する関数
積分イデアルの元, または制限イデアルの元
nk_restriction.integration_ideal( ... |inhomo=1); または
nk_restriction.restriction_ideal( ... |inhomo=1); の出力
変数のリスト
変数のリスト(VL に対応する微分作用素の方の変数)
重みベクトルを表すリスト
[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
nk_restriction.ost_integration_ideal
積分領域が区間の直積であるような積分の満たす ホロノミック斉次微分方程式系を返す (Oaku-Shiraki-Takayama, 2003).
:: Heaviside 関数との積の満たす微分方程式系の計算にショートカット法を用いる.
:: Heaviside 関数との積の満たす微分方程式系の計算に制限イデアルを用いる.
イデアルの生成元のリスト
変数のリスト
変数のリスト(VL に対応する微分作用素の方の変数)
重みベクトルを表すリスト
積分区間の下端を表すリスト
積分区間の上端を表すリスト
以下は, 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]
この出力は, 積分を零化するホロノミック系である.
[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
nk_restriction.ost_sum
:: 和の満たす(斉次/非斉次)差分方程式系を返す.
イデアルの生成元のリスト
変数のリスト
変数のリスト(VL に対応する差分作用素の方の変数)
重みベクトルを表すリスト
以下は, 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]]]
[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
nk_restriction.module_restriction
:: D 加群 D^r/M (M は D^r の部分加群) の重みベクトル W についての制限加群を返す.
D 自由加群 D^r の部分加群
変数のリスト
変数のリスト(VL に対応する微分作用素の方の変数)
重みベクトルを表すリスト
=[x,y,z]
, W =[1,0,0]
であれば
x について制限を行う.
以下は, 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) で生成されることがわかる.
[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
nk_restriction.module_integration
:: D 加群 D^r/M (M は D^r の部分加群) の重みベクトル W についての積分加群を返す.
D 自由加群 D^r の部分加群
変数のリスト
変数のリスト(VL に対応する微分作用素の方の変数)
重みベクトルを表すリスト
=[x,y,z]
, W =[1,0,0]
であれば
x について積分を行う.
以下は, 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
inhomo
, param
, s0
) が追加された. 1.7–1.9 を見よ.
ht
, ord
) と
新たな関数 trans_inhomo() が追加された. 1.10–1.13 を見よ.
[ << ] | [ < ] | [上] | [ > ] | [ >> ] |
この文書は3月 16, 2025にtexi2html 5.0を用いて生成されました。