あいさつ
んちゃ!
今回は初心に戻り、Gosperのアルゴリズム、WZ法について概要を述べ
Gosperのアルゴリズムにより、面白い級数を手計算で見つけることが出来る場合が無いか調べていきます。
因みに最後にGosperのアルゴリズムに沿って実際にやなさんがC言語でコーディングしたコードが付いてます。
良かったらローカルで使ってみてください。
自分のための復習も含まれます。
それではよろしくお願いいたします。
目次
- 前提知識
- Gosperのアルゴリズム
- WZ法
- 手計算できる場合を考えたい
- 補遺:実際のコード
前提知識
超幾何項(hypergeometric term)
複素数列が以下の性質を持つとき、を超幾何項(hypergeometric term)と呼ぶ。
超幾何項の意味
複素数列が超幾何項だとしましょう。すると定義より、以下の事が成り立ちます。つまり、この式を用いると超幾何項は下記の様に書き直せます。この式は、としての第項と一致する事が分かります。これが、が超幾何項と呼ばれる由来となります。相似
二つの超幾何項とする。この時以下の事が成り立つときと書き相似と言う。
[1]反射律[2]対称律は略
[3]推移律
超幾何項が次の性質を持つとしましょう。。
すると、以下の性質を満たします。
この式から以下の結論が得られます。ゆえに
相似な超幾何項の和
二つの超幾何項が相似であるとする。
すると、(1)は超幾何項。また、(2)
この式を用いると以下の計算ができる。
[(1)]
[(2)]
相似は同値関係で、なので、のみを示せばよい。
Gosperのアルゴリズム
では次にGosperのアルゴリズムについて書きます。
Gosperのアルゴリズムを学ぶ事で、与えられた超幾何項の総和問題を機械的に望遠鏡和にする方法を学ぶ事が出来ます。
ピックアップ!
本節の重要な項目に飛ぶことが出来ます。読み返すときにぜひ使ってください。超幾何項の定義より以下の式が成り立つ。
[1]
一般性を損なわないので、として計算を進める。
[2][1]よりが分かる。
また帰納的に構成していくことでが分かるので、。
ゆえには超幾何項である事が示された。
the first part of Gosper algorithm
超幾何項について以下の事か成り立つ。
ここで、は次の様に定められている。
[1]は超幾何項なので、以下の式が成り立つ。
[2]を用いて以下の様に書けたとします。
この時、ある最小の自然数が存在して次式が成立したとしましょう。
すると以下の式が成り立つ。
ゆえに、以下の式が得られる。
そこでさらに次の様に記号を定めましょう。
[3]つまり以下の事を繰り返します。
(i)start: を適当に定め、次式が成り立つ様にする。
(ii)を満たす最小の自然数を求める。
その様な自然数が存在しない場合は(iv)へ進む。
(iii)次の様な更新を行う。
(iv)end:最終的に次の様に置けば、目的が達成される。
[4][3]の操作は高々有限回で終了する。
理由は、の次数は有限かつ自然数であり、その次数は単調減少であるため。
整数でない複素数に任意の整数を足しても整数でない複素数になる。
[1]虚部が出なければ明らかなので、虚部が出ない場合は省略
[2]以下虚部の場合。つまり実数かつ整数でない場合について本補題が成り立つ事を示す。
過程より、実数かつ整数でない様なものはと書ける。
[3]ゆえにが得られる。
モニックな多項式のそれぞれの根をとします。
この時、である場合、以下の式が成り立つ。
与えられた条件より
ゆえに任意の自然数に対して以下の事が成り立つ事が分かる。
そこで、が互いに素である事と双方が同一の根を持たない事は同値なので、結局を示せばよい。
仮定より、なので補題6より。
これから証明が完了された。
超幾何項がこの時下記の事が成り立つ。
- が成り立つ事が定理5により分かっている。このを用いての様に置き直せば次の式が得られます。
[1]
超幾何項の定義より、なので、が成り立つ。
この式を用いると下記の式が得られます。
[2]このは整理すると以下の式が得られます。
[3]定理5より下記の式を得ることが出来る。
また、の様に置き直すと次式が成り立つ。
それゆえに、下記の式を得る。
ここまでの変形でなぜこのような式変形を行うのだろうと疑問に思った方々もいらっしゃると思います。
その疑問を解消してくれるのが次の定理です。
the second half of Gosper algorithm
数列が
に対して定まる下記の漸化式を満たしているとする。
すると実は、となる!
が有理関数ではなく多項式になると驚きの定理です。
この定理より、であればの様に置いてを探せばいいのです。
Gosperさん凄いですよね。
では、この定理を証明しましょう。
まず、である事は分かりますのでと書けます。
示すべきことは、です。
[0]の場合は示す事はありません。
[1]そこでであるとします。するとこれを代入する事で下記の式を得ます。
また、明らかにが成り立ちます(少なくともN=0で成り立つ)から。その様なの最大のものをとします。
右辺はの倍数ですから、両辺はで割れます。
つまり次の事が成り立つ事が分かります。
さらに、次の式からが得られます。
しかし矛盾しています。
なぜなら、としたからです。
この矛盾は、とした事から起きました。
ゆえに、出なければなりません!
上述のGosperのアルゴリズムに従いC言語やpythonなどでコーディングを行い、実行する事でを構成出来れば望遠鏡和により命題4のは次の様に書ける事が分かります。
この方程式を解く方法は次の様です。
多項式に多項式をかけて出来る多項式との間には次の式が成り立つ事を用います。
この式を用いて連立方程式を立てればよいです。
WZ法
WZ法とはHerbert WilfとDoron Zeilbergerにより見つけられたものです。
この方法の全貌を見るために次の様な二変数の超幾何項に関する恒等式を考えます。
WZ的組
二つの二変数の超幾何項が次の恒等式を満たす時、WZ的組と呼ぶ。
実はこのWZ的組である事が本質的です。
それでは、核心をつきましょう。
WZ-method
WZ的組がを満たし、なおかつが成り立つ時以下の式が成り立つ。
まずと置きましょう。
WZ的組の定義を用いると
が成り立つ事が、についてからまで総和を取れば分かります。
ゆえに、として下記の式が得られます。
つまり、が得られるので本定理は証明された。
しかし、これだけだとそもそもWZ的組を見つけるにはどうすればいいか分からないのでもう少し踏み込んでみましょう。まず、多項式をが成り立つ様に定めます。そして、適当な多項式を定め、次の様にして多項式を作ります。そして次の計算を行います。すると自動的にを満たす超幾何項を構成出来ます。後は、のについてGosperのアルゴリズムに沿って計算を進めを求めを構成すればWZ的組を構成出来る。は一般的にについてGosperのアルゴリズムを適用しても解を持たないケースも存在するため、を構成できない事もある事に注意。これから、この分野で研究をする場合は以下の方法を探すのがよさそうです。- Gosperアルゴリズムでを求める事が可能なを定める方法
- Gosperアルゴリズムを使用しないでもを求める方法
手計算できる場合を考えたい
まずは一番簡単な例で考えます。
0.まずはが超幾何項である事を確認しましょう。
- Gosper変形:しかし、これは既に最初から適切な形になっているので今回は不要。
- Gosper方程式を解く:下記の様に記号を定めます。
- と置いて計算するとが成り立つ事が分かります。
ゆえに、以下の数列が得られます。
- を用いると下記の結論が得られる。
以下の三つの多項式について
次の事に答えよ。
0.が成り立つ事を示してください。
1.の解はである事を証明してください。
2.これから、とおき、が成り立つ様に数列を定めるとが成り立っている事を示してください。
ただし、とします。
3.最後にを求めてください。
0.のそれぞれの根はです。という事は、ですから命題7よりが示された。
1.0.より与えられた方程式はGosper方程式なので解は多項式の形を取る。
そこで、の様な形を仮定できます。
代入してを求めるとが得られるので証明完了。
2.1.の計算より
また、下記の様に計算できます。
この計算から、が得られます。
4.最後の和に関しては次の様になります。
つまり、次の様な計算が出来る事を意味しています。
ここでの計算から分かりますように、を満たすを先に定めましてそこからを決め、その後にを求める事で面白い級数の公式を構成できます。
残念ながら、一般の場合Gosperの方程式は解を持つとは限りません。
しかし、この構成法ならいつでも可能です。
でも不満です。だって、この方法だと例えばの加速級数すら導出できません。
ではどうすればいいでしょうか?
パラメータの個数を増やします。
次の様な二変数の多項式を考える。
この時、次の問題を解いてください。
1.を主変数とした時、が成り立つ。
2.とおき次の様なを求めよ。
3.を求めよ。
4.
5.とおくとを満たします。これを用いてを計算してください。
1.まず次の様に計算します。
そしてをでを主変数として割ります。すると余りは次の様になります。
ゆえにを得る。
2.計算するだけです。
つまり
3.以降は定義に従って計算しましょう。
4.
5.
より
この例は次の様な事を意味しています。
上の計算は自信が無いので一応予想でとどめておきます。
因みに、を構成するのは流石に手で計算できる範囲を超えているので省略いたします。(👈不可能かもしれない)
補遺:実際のコード
下記にgosperのアルゴリズムに沿ってコーディングしたファイルがございますので使用してみてください。
配布資料👈クリック
一変数の場合にしか現在は対応していません