はじめに
この記事では
前回の記事
に引き続き超幾何数列の基本事項についてまとめていきます。
今回の記事では超幾何数列の部分和
の閉形式の求め方について解説していきます。
Gosper総和可能性
超幾何数列の部分和は
という漸化式によって特徴づけられる数列であり、また
なる多項式を取ると三項間漸化式
が成り立つ、つまりはP-再帰的であることがわかります。
したがっての閉形式を考えることができ、また閉形式が存在すればそれは以下のような形になることがわかります。
超幾何数列の部分和
が閉形式を持つとき、それは漸化式
を満たす超幾何数列を用いて
と表せる。
証明
互いに相似でない超幾何数列を用いて
と表したとき、この差分を取ることで
が成り立つ。このときはでなければと相似であること、および
前回の記事
の命題3(の一意性の部分)に注意すると上の式は
のようでなければならない。
したがってとおくと
を得る。
Gosper-summable
超幾何数列がGosper総和可能であるとは、漸化式
を満たすような超幾何数列が存在することを言う。
ちなみに
のような変形(ができる和)のことを望遠鏡和(telescoping sum)と言い、また
のようなを見つけることでについての和を望遠鏡和の形に変形する手法のことをcreative telescopingといいます。
問題の帰着
ではどのようなときにがGosper総和可能であり、そのときどのようにしてを求められるのかを考えていきましょう。
数列から有理関数へ
超幾何数列が
を満たすとき
とおくとは有理関数であり
が成り立つ。
証明
が有理関数であることは
とわかる。また
に注意すると
を得る。
この補題により与えられた超幾何数列に対し
を満たすような超幾何数列を求める問題は、与えられた有理関数に対して
を満たすような有理関数を求める問題に帰着されます。
有理関数から多項式へ
でない有理関数に対して
なる多項式であって以下を満たすようなものが存在する。
- 任意の非負整数に対しとは互いに素である。
証明
互いに素な多項式を用いて
と表したとき、ある正整数に対しとが共通因子を持つとすると
とおけば
が成り立つ。
このように各に対しの共通因子を掃き出していくことで所望の多項式を構成できることがわかる。
いま補題2のような多項式を取り
とおくと考えている方程式は
と変形できます。そして、驚くべきことに、以下のような事実が成り立ちます。
補題3の(i)を満たすような多項式に対し
なる有理関数が存在すればは多項式となる。
証明
を互いに素な多項式を用いて
と表したときが定数でないものと仮定し矛盾を導く。
いまの既約因子を任意に取り、適当に平行移動させることでは
を満たすものとしてよい。またを
を満たすような整数、例えばを満たすような整数であって最大のものとする。
このときの満たす等式
の分母に注目すると
が成り立たなければならないが
となっての取り方に矛盾。
よっては定数でなければならないことが示された。
まとめ
以上の議論をまとめると超幾何数列のGosper総和可能性や
なる超幾何数列は次のようなステップによって求めることができます。
- 多項式であって
かつ、任意の非負整数に対して
となるようなものを求める。 - 方程式
を満たすような多項式を求める。 - が求まらなければはGosper総和不可能であり、が求まれば
が求める超幾何数列となる。
Gosper's Algorithm
基本的には上の手順に沿って計算をすることでを求めることができますが、の与えられ方によってはこれを手計算で実行するのが現実的でないことも少なくありません。そういうときでもを求められるように、より機械的に処理する方法も考えておきましょう。
ステップ1について
まずは与えられた有理関数に対してステップ1のような多項式を求める方法について考えていきましょう。と言っても大筋は補題3の証明の通り、つまりと表したとき各に対しの共通因子を掃き出していくことで求められます。
ただし計算上はと無限に続けていくわけにはいかないので、事前にとが共通因子を持ち得るようなの範囲を求めておく必要があります。それには終結式という概念が重要な役割を果たします。
終結式の定義などについては特に解説しませんが、多項式についての終結式はの係数から求まる値であり、が共通因子を持つことととなることは同値であることが知られています。特にについての終結式はについての多項式として表せ、これによってとなるような正整数の値を列挙することができます。
以上のことをまとめるとこの問題は次のようなアルゴリズムによって解決することができます。
- 互いに素な多項式であって
を満たすようなものを求める。 - 非負整数であって
をとするようなものを全て求め、それらを小さい順に
とおく。 - 多項式列を
および漸化式
によって定める。このとき
が求める多項式となる。
ちなみにこのようにして求められたは次のような性質を満たします。
でない有理関数に対して
なる多項式であって以下を満たすようなものが存在する。
- 任意の非負整数に対しとは互いに素である。
- とは互いに素である。
- とは互いに素である
また上のアルゴリズムによって得られる多項式はこれを満たす。
証明
上のアルゴリズムによって得られる多項式をとおいたとき、これらが(i),(ii),(iii)を満たすことを示せばよい((i)については明らか)。
(ii)について
もしとが互いに素でなければ、の定め方からあるに対してはと共通因子を持つことになる。このときはを割り切るのでもを因数に持ち、また
よりもを因数に持つが、の定め方から任意のに対してとは互いに素であったことに矛盾。よってとは互いに素でなければならない。
(iii)について
(ii)の場合と同様にとが互いに素でなければあるに対してはと共通因子を持つことになり、このときはを共に割り切ることがわかるので矛盾を得る。
ステップ2について
次に与えられた多項式に対して
を満たすような多項式を求める方法について考えていきましょう。
と言っても多項式の恒等式なので適当にを取って
と展開し係数比較することによって個の未知数についての線型方程式に帰着させるだけではあります。
ただ求める解が存在しない場合も考慮しての取り得る値を求めておく必要があります。いまとの最高次の係数が打ち消し合う場合と打ち消し合わない場合の二通りに分けて考えてみましょう。
打ち消し合わない場合
このときは件の方程式
における左辺の次数はとなるので
と求まります。
打ち消し合う場合
このときを
と展開すると
の右辺におけるの係数はと表せます。
したがってこれがでなければ
と求まり、これがであれば
と求まります。
まとめ
以上のことをまとめるとこの問題は次のようなアルゴリズムによって解決することができます。
としの次の係数をそれぞれとおく。
- またはが成り立つとき
かつが成り立つとき
とおく。 - このときであれば求めるような多項式は存在せず、そうでなければ
と展開し
の両辺を係数比較することによって得られるについての方程式を解く。
もしその方程式が解を持たなければ求めるような多項式は存在しない。
計算例
以上がGosper's algorithmの全容となります。
と言ってもアルゴリズムの説明だけではいまいちパッとしないと思うので、ここからは"A=B"に載っているいくつかの簡単な例に対してGosper's algorithmがどのように機能するのかを見ていくこととしましょう。
解説
ステップ1
とおくと
と表せるので
とおくとよい。
ステップ2
このときの次数は
と求まるのでとおくと
よりを得る。
ステップ3
以上より
を得る。
解説
ステップ1
とおくと
と表せるので
とおくとよい。
ステップ2
このときの次数は
と求まるのでとおくと
よりを得る。
ステップ3
以上より
を得る。
解説
とおくと
が成り立つので
とおくとよい。このとき
なる多項式が存在すればその次数は
となって不適。よって主張を得る。
解説
とおくと
が成り立つので
とおくとよい。このとき
なる多項式が存在すればその次数は
となって不適。よって主張を得る。
解説
とおくと
が成り立つので
とおくとよい。このとき明らかに
なる多項式は存在し得ないので主張を得る。
より多くの具体例に対してGosper's algorithmを試してみたい人は"A=B"のp.95, 96にあるExercisesなどを解いてみてはいかがでしょうか(p.97, 98のSolutionsにてその解も載っています)。