[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

87. zeilberger


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

87.1 Introduction to zeilberger

zeilbergerは 超幾何定総和に関する Zeilbergerのアルゴリズムと超幾何不定総和に関する Gosperのアルゴリズムの実装します。

zeilbergerは Axel Rieseによって開発された「フィルタリング」最適化法を利用します。

zeilbergerは Fabrizio Carusoによって開発されました。

load ("zeilberger")はこのパッケージをロードします。

Categories:  Sums and products · Share packages · Package zeilberger


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

87.1.1 The indefinite summation problem

zeilbergerは超幾何不定総和に関する Gosperのアルゴリズムの実装します。 kの超幾何項 F_kが与えられたとして、 超幾何反差 (anti-difference)、すなわち、以下のような超幾何項 f_kを見つけたいです。

F_k = f_(k+1) - f_k.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

87.1.2 The definite summation problem

zeilbergerは超幾何定総和に関する Gosperのアルゴリズムの実装します。 適当な (nkに関する)超幾何項 F_(n,k) と正の整数 dが与えられたとして、 F_(n,k) に関する (nに関する)多項式係数を持つ d次の線形漸化式と、 a_0 F_(n,k) + ... + a_d F_(n+d),k = Delta_k(R(n,k) F_(n,k)), のような nkに関する有理函数 Rを見つけたいです。

ここで、 Delta_kk-順方向差分演算子です。すなわち、 Delta_k(t_k) := t_(k+1) - t_k.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

87.1.3 Verbosity levels

以下の接尾辞の 1つを追加することでコールされる出力が冗長なバージョンのコマンドもあります:

Summary

終わりにサマリだけが表示されます。

Verbose

中間ステップでのある情報。

VeryVerbose

更なる情報。

Extra

Zeilbergerのアルゴリズムでの線形系上の情報を含む更なる情報。

例えば:
GosperVerbose, parGosperVeryVerbose, ZeilbergerExtra, AntiDifferenceSummary.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

87.2 Functions and Variables for zeilberger

関数: AntiDifference (F_k, k)

もし存在するなら F_kの超幾何反差を返します。
そうでないなら AntiDifferenceno_hyp_antidifferenceを返します。

Categories:  Package zeilberger

関数: Gosper (F_k, k)

もし存在するなら、 F_kに対する有理証 (rational certificate)、 すなわち、以下のような有理函数を返します。 F_k = R(k+1) F_(k+1) - R(k) F_k, そうでないなら Gosperno_hyp_solを返します。

Categories:  Package zeilberger

関数: GosperSum (F_k, k, a, b)

もし F_kが超幾何反差を持つなら、 k = aから k = bまでの F_kの和を返します。 そうでないなら GosperSumnongosper_summableを返します。

例:

 
(%i1) load ("zeilberger")$
(%i2) GosperSum ((-1)^k*k / (4*k^2 - 1), k, 1, n);
Dependent equations eliminated:  (1)
                           3       n + 1
                      (n + -) (- 1)
                           2               1
(%o2)               - ------------------ - -
                                  2        4
                      2 (4 (n + 1)  - 1)
(%i3) GosperSum (1 / (4*k^2 - 1), k, 1, n);
                                3
                          - n - -
                                2       1
(%o3)                  -------------- + -
                                2       2
                       4 (n + 1)  - 1
(%i4) GosperSum (x^k, k, 1, n);
                          n + 1
                         x          x
(%o4)                    ------ - -----
                         x - 1    x - 1
(%i5) GosperSum ((-1)^k*a! / (k!*(a - k)!), k, 1, n);
                                n + 1
                a! (n + 1) (- 1)              a!
(%o5)       - ------------------------- - ----------
              a (- n + a - 1)! (n + 1)!   a (a - 1)!
(%i6) GosperSum (k*k!, k, 1, n);
Dependent equations eliminated:  (1)
(%o6)                     (n + 1)! - 1
(%i7) GosperSum ((k + 1)*k! / (k + 1)!, k, 1, n);
                  (n + 1) (n + 2) (n + 1)!
(%o7)             ------------------------ - 1
                          (n + 2)!
(%i8) GosperSum (1 / ((a - k)!*k!), k, 1, n);
(%o8)                  NON_GOSPER_SUMMABLE

Categories:  Package zeilberger

関数: parGosper (F_(n,k), k, n, d)

F_(n,k)に対して次数 dの漸化式を見つけようとします。

アルゴリズムは解の列 [s_1, s_2, ..., s_m]をもたらします。 解それぞれは形式

[R(n, k), [a_0, a_1, ..., a_d]].

を持ちます。

もし漸化式を見つけられないなら parGosper[]を返します。

Categories:  Package zeilberger

関数: Zeilberger (F_(n,k), k, n)

F_(n,k)の超幾何不定総和を計算しようとします。

Zeilbergerは最初に Gosperを呼び出し、 もしそれが解を見つけるのに失敗したら、 次数 1, 2, 3, ..., から MAX_ORDまでを使って parGosperを呼び出します。 もし Zeilbergerが MAX_ORDに達する前に解を見つけたら、 停止して解を返します。

アルゴリズムは解の列 [s_1, s_2, ..., s_m]をもたらします。 解それぞれは形式

[R(n,k), [a_0, a_1, ..., a_d]].

を持ちます。

もし解を見つけられなかったら、 Zeilberger[]を返します。

ZeilbergerGosper_in_Zeilbergertrueの時だけ Gosperを呼び出します。

Categories:  Package zeilberger


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

87.3 General global variables

グローバル変数: MAX_ORD

デフォルト値: 5

MAX_ORDZeilbergerが試みる漸化式の最大次数です。

Categories:  Package zeilberger

グローバル変数: simplified_output

デフォルト値: false

simplified_outputtrueの時、 zeilbergerパッケージの関数は解の更なる整理を試みます。

Categories:  Package zeilberger

グローバル変数: linear_solver

デフォルト値: linsolve

linear_solverは Zeilbergerのアルゴリズムで方程式系を解くのに使うソルバを指定します。

Categories:  Package zeilberger

グローバル変数: warnings

デフォルト値: true

warningstrueの時、 zeilbergerパッケージの関数は実行中に警告メッッセージを印字します。

Categories:  Package zeilberger

グローバル変数: Gosper_in_Zeilberger

デフォルト値: true

Gosper_in_Zeilbergertrueの時、 Zeilberger関数は parGosperをコールする前に Gosperをコールします。 そうでないなら、 Zeilbergerはすぐに parGosperに向かいます。

Categories:  Package zeilberger

グローバル変数: trivial_solutions

デフォルト値: true

trivial_solutionstrueの時、 Zeilbergerは 零に等しい証を持つ解か、すべての係数が零に等しい解を返します。

Categories:  Package zeilberger


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

87.4 Variables related to the modular test

グローバル変数: mod_test

デフォルト値: false

mod_testtrueの時、 parGosperは解を持たない系を除くためにモジュラーテストを実行します。

Categories:  Package zeilberger

グローバル変数: modular_linear_solver

デフォルト値: linsolve

modular_linear_solverparGosperでのモジュラーテストが使う線形ソルバを指定します。

Categories:  Package zeilberger

グローバル変数: ev_point

デフォルト値: big_primes[10]

parGosperでモジュラーテストを実行する時 ev_pointで変数 nを評価します。

Categories:  Package zeilberger

グローバル変数: mod_big_prime

デフォルト値: big_primes[1]

mod_big_primeparGosperでモジュラーテストが使う法です。

Categories:  Package zeilberger

グローバル変数: mod_threshold

デフォルト値: 4

mod_thresholdparGosperでのモジュラーテストが試みられる際の最大次数です。

Categories:  Package zeilberger


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by 市川雄二 on June, 5 2017 using texi2html 1.76.