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

# 81. zeilberger

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

## 81.1 Introduction to zeilberger

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

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

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

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

·

Categories: Sums and products ·Share packages ·Package zeilberger

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

#### 81.1.0.1 The indefinite summation problem

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

F_k = f_(k+1) - f_k.

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

#### 81.1.0.2 The definite summation problem

`zeilberger`は超幾何定総和に関する Gosperのアルゴリズムの実装します。 適当な (nと kに関する)超幾何項 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)), のような nと kに関する有理函数 Rを見つけたいです。

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

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

### 81.1.1 Verbosity levels

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

`Summary`

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

`Verbose`

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

`VeryVerbose`

  更なる情報。

`Extra`

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

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

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

## 81.2 Functions and Variables for zeilberger

関数: AntiDifference (F_k, k)

  もし存在するなら F_kの超幾何反差を返します。
  そうでないなら `AntiDifference`は `no_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, そうでないなら `Gosper`は `no_hyp_sol`を返します。

  ·

  Categories: Package zeilberger

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

  もし F_kが超幾何反差を持つなら、 k = aから k = bまでの F_kの和を返します。 そうでないなら `GosperSum`は `nongosper_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`は `[]`を返します。

  `Zeilberger`は `Gosper_in_Zeilberger`が `true`の時だけ `Gosper`を呼び出します。

  ·

  Categories: Package zeilberger

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

## 81.3 General global variables

グローバル変数: MAX_ORD

  デフォルト値: 5

  `MAX_ORD`は `Zeilberger`が試みる漸化式の最大次数です。

  ·

  Categories: Package zeilberger

グローバル変数: simplified_output

  デフォルト値: `false`

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

  ·

  Categories: Package zeilberger

グローバル変数: linear_solver

  デフォルト値: `linsolve`

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

  ·

  Categories: Package zeilberger

グローバル変数: warnings

  デフォルト値: `true`

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

  ·

  Categories: Package zeilberger

グローバル変数: Gosper_in_Zeilberger

  デフォルト値: `true`

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

  ·

  Categories: Package zeilberger

グローバル変数: trivial_solutions

  デフォルト値: `true`

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

  ·

  Categories: Package zeilberger

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

## 81.4 Variables related to the modular test

グローバル変数: mod_test

  デフォルト値: `false`

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

  ·

  Categories: Package zeilberger

グローバル変数: modular_linear_solver

  デフォルト値: `linsolve`

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

  ·

  Categories: Package zeilberger

グローバル変数: ev_point

  デフォルト値: `big_primes[10]`

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

  ·

  Categories: Package zeilberger

グローバル変数: mod_big_prime

  デフォルト値: `big_primes[1]`

  `mod_big_prime`は `parGosper`でモジュラーテストが使う法です。

  ·

  Categories: Package zeilberger

グローバル変数: mod_threshold

  デフォルト値: 4

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

  ·

  Categories: Package zeilberger

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

この文書は市川 雄二によって2012年12月月12日にtexi2html 1.82を用いて生成されました。