Go to the first, previous, next, last section, table of contents.

### `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の変数に対する項順序

- n が 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 のサブルーチンとしての実行用なので, ユーザが明示的に使用することはない.
- param に指定された変数は係数体に属するものとみなされて計算が行われる. また, "generic" であることが仮定される. つまり, これらの変数に依存するような generic b-関数の根は, 最大整数根でないということである.
- param が指定されると, generic b-関数の計算は noro による 高速アルゴリズムではなく, 消去法が用いられる. param に空リストを指定することで, b-関数の計算方法のフラグとしても 利用できる.
- m が負でないとき, 計算を行わずに s-m を generic b-関数として 制限, 積分等の計算を行う.
- b により, 加群のグレブナ基底計算に斉次化, trace アルゴリズム を用いるかどうか指定できる. ただし, 斉次化ありで計算できるのは Risa/Asir バージョン 20100415 以降である. 0: 斉次化なし, trace なし 1: 斉次化なし, trace あり 2: 斉次化あり, trace なし (デフォルト) 3: 斉次化あり, trace あり
- ord が指定されると, 出力の積分, 制限イデアルは, その項順序に 関するグレブナ基底となる. 加群のグレブナ基底計算の POT 順序の tie breaker として使用されるので計算効率に大きな影響を与える可能性がある. デフォルトは 0, つまり全次数逆次書式順序である. このオプションは 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 であることを意味する.

Go to the first, previous, next, last section, table of contents.