6
現代数学解説
文献あり

超幾何数列の基礎2:望遠鏡和の作り方

753
0

はじめに

 この記事では 前回の記事 に引き続き超幾何数列の基本事項についてまとめていきます。
 今回の記事では超幾何数列の部分和
S(n)=k=0n1A(k)
の閉形式の求め方について解説していきます。

Gosper総和可能性

 超幾何数列の部分和S(n)
S(0)=0,S(n+1)S(n)=A(n)
という漸化式によって特徴づけられる数列であり、また
A(n+1)A(n)=p(n)q(n)
なる多項式p(n),q(n)を取ると三項間漸化式
q(n)(S(n+2)S(n+1))p(n)(S(n+1)S(n))=0
が成り立つ、つまりS(n)はP-再帰的であることがわかります。
 したがってS(n)の閉形式を考えることができ、また閉形式が存在すればそれは以下のような形になることがわかります。

 超幾何数列A(n)の部分和
S(n)=k=0n1A(k)
が閉形式を持つとき、それは漸化式
T(n+1)T(n)=A(n)
を満たす超幾何数列T(n)を用いて
S(n)=T(n)T(0)
と表せる。

証明

 互いに相似でない超幾何数列T1(n),,Tr(n)を用いて
S(n)=k=1rTk(n)
と表したとき、この差分を取ることで
A(n)=k=1r(Tk(n+1)Tk(n))
が成り立つ。このときTk(n+1)Tk(n)0でなければTk(n)と相似であること、および 前回の記事 の命題3(の一意性の部分)に注意すると上の式は
A(n)=T1(n+1)T1(n)
のようでなければならない。
 したがってT(n)=T1(n)とおくと
S(n)=k=0n1A(k)=k=0n1(T(k+1)T(k))=T(n)T(0)
を得る。

Gosper-summable

 超幾何数列A(n)Gosper総和可能であるとは、漸化式
T(n+1)T(n)=A(n)
を満たすような超幾何数列T(n)が存在することを言う。

 ちなみに
S(n)=k=0n1(T(k+1)T(k))=T(n)T(0)
のような変形(ができる和)のことを望遠鏡和(telescoping sum)と言い、また
A(n)=T(n+1)T(n)
のようなT(n)を見つけることでA(n)についての和を望遠鏡和の形に変形する手法のことをcreative telescopingといいます。

問題の帰着

 ではどのようなときにA(n)がGosper総和可能であり、そのときどのようにしてT(n)を求められるのかを考えていきましょう。

数列から有理関数へ

 超幾何数列A(n),T(n)
T(n+1)T(n)=A(n)
を満たすとき
r(n)=A(n+1)A(n),y(n)=T(n)A(n)
とおくとr(n),y(n)は有理関数であり
r(n)y(n+1)y(n)=1
が成り立つ。

証明

 y(n)が有理関数であることは
y(n)=T(n)T(n+1)T(n)=1T(n+1)T(n)1
とわかる。また
T(n+1)A(n)=A(n+1)A(n)T(n+1)A(n+1)=r(n)y(n+1)
に注意すると
T(n+1)T(n)A(n)=r(n)y(n+1)y(n)=1
を得る。

 この補題により与えられた超幾何数列A(n)に対し
T(n+1)T(n)=A(n)
を満たすような超幾何数列T(n)を求める問題は、与えられた有理関数r(n)に対して
r(n)y(n+1)y(n)=1
を満たすような有理関数y(n)を求める問題に帰着されます。

有理関数から多項式へ

 0でない有理関数r(n)に対して
r(n)=a(n)b(n)c(n+1)c(n)
なる多項式a(n),b(n),c(n)であって以下を満たすようなものが存在する。

  1. 任意の非負整数hに対しa(n)b(n+h)は互いに素である。
証明

 互いに素な多項式f(n),g(n)を用いて
r(n)=f(n)g(n)
と表したとき、ある正整数hに対しf(n)g(n+h)が共通因子u(n)を持つとすると
f(n)=f(n)u(n)g(n)=g(n)u(nh)U(n)=u(n1)u(n2)u(nh)
とおけば
r(n)=f(n)g(n)u(n)u(nh)=f(n)g(n)U(n+1)U(n)
が成り立つ。
 このように各h=1,2,に対しf(n),g(n+h)の共通因子を掃き出していくことで所望の多項式a(n),b(n),c(n)を構成できることがわかる。

 いま補題2のような多項式a(n),b(n),c(n)を取り
y(n)=b(n1)c(n)x(n)
とおくと考えている方程式は
a(n)x(n+1)b(n1)x(n)=c(n)
と変形できます。そして、驚くべきことに、以下のような事実が成り立ちます。

 補題3の(i)を満たすような多項式a(n),b(n),c(n)に対し
a(n)x(n+1)b(n1)x(n)=c(n)
なる有理関数x(n)が存在すればx(n)は多項式となる。

証明

 x(n)を互いに素な多項式f(n),g(n)を用いて
x(n)=f(n)g(n)
と表したときg(n)が定数でないものと仮定し矛盾を導く。
 いまg(n)の既約因子u(n)を任意に取り、適当に平行移動させることでu(n)
u(n)g(n)かつu(n+1)g(n)
を満たすものとしてよい。またN0
u(nN)g(n)かつu(nN)g(n+1)
を満たすような整数、例えばu(nN)g(n)を満たすような整数であって最大のものとする。
 このときx(n)の満たす等式
a(n)f(n+1)g(n+1)b(n1)f(n)g(n)=c(n)
の分母に注目すると
u(n+1)a(n)かつu(nN)b(n1)
が成り立たなければならないが
u(n+1)a(n),b(n+N)
となってa(n),b(n)の取り方に矛盾。
 よってg(n)は定数でなければならないことが示された。

まとめ

 以上の議論をまとめると超幾何数列A(n)のGosper総和可能性や
T(n+1)T(n)=A(n)
なる超幾何数列T(n)は次のようなステップによって求めることができます。

  1. 多項式a(n),b(n),c(n)であって
    A(n+1)A(n)=a(n)b(n)c(n+1)c(n)
    かつ、任意の非負整数hに対して
    gcd(a(n),b(n+h))=1
    となるようなものを求める。
  2. 方程式
    a(n)x(n+1)b(n1)x(n)=c(n)
    を満たすような多項式x(n)を求める。
  3. x(n)が求まらなければA(n)はGosper総和不可能であり、x(n)が求まれば
    T(n)=b(n1)c(n)x(n)A(n)
    が求める超幾何数列となる。

Gosper's Algorithm

 基本的には上の手順に沿って計算をすることでT(n)を求めることができますが、A(n)の与えられ方によってはこれを手計算で実行するのが現実的でないことも少なくありません。そういうときでもT(n)を求められるように、より機械的に処理する方法も考えておきましょう。

ステップ1について

 まずは与えられた有理関数r(n)に対してステップ1のような多項式a(n),b(n),c(n)を求める方法について考えていきましょう。と言っても大筋は補題3の証明の通り、つまりr(n)=f(n)/g(n)と表したとき各h=1,2,に対しf(n),g(n+h)の共通因子を掃き出していくことで求められます。
 ただし計算上はh=1,2,と無限に続けていくわけにはいかないので、事前にf(n)g(n+h)が共通因子を持ち得るようなhの範囲を求めておく必要があります。それには終結式という概念が重要な役割を果たします。
 終結式の定義などについては特に解説しませんが、多項式p,qについての終結式Res(p,q)p,qの係数から求まる値であり、p,qが共通因子を持つこととRes(p,q)=0となることは同値であることが知られています。特にf(n),g(n+h)についての終結式R(h)hについての多項式として表せ、これによってR(h)=0となるような正整数hの値を列挙することができます。
 以上のことをまとめるとこの問題は次のようなアルゴリズムによって解決することができます。

  1. 互いに素な多項式f(n),g(n)であって
    r(n)=f(n)g(n)
    を満たすようなものを求める。
  2. 非負整数hであって
    R(h)=Res(f(n),g(n+h))
    0とするようなものを全て求め、それらを小さい順に
    h=h1,h2,,hN
    とおく。
  3. 多項式列fj(n),gj(n),uj(n)
    f0(n)=f(n),g0(n)=g(n)
    および漸化式
    uj(n)=gcd(fj1(n),gj1(n+hj))fj(n)=fj1(n)/uj(n)gj(n)=gj1(n)/uj(nhj)
    によって定める。このとき
    a(n)=fN(n)b(n)=gN(n)c(n)=j=1Nuj(n1)uj(nhj)
    が求める多項式となる。

 ちなみにこのようにして求められたa(n),b(n),c(n)は次のような性質を満たします。

 0でない有理関数r(n)に対して
r(n)=a(n)b(n)c(n+1)c(n)
なる多項式a(n),b(n),c(n)であって以下を満たすようなものが存在する。

  1. 任意の非負整数hに対しa(n)b(n+h)は互いに素である。
  2. a(n)c(n)は互いに素である。
  3. b(n)c(n+1)は互いに素である

また上のアルゴリズムによって得られる多項式はこれを満たす。

証明

 上のアルゴリズムによって得られる多項式をa(n),b(n),c(n)とおいたとき、これらが(i),(ii),(iii)を満たすことを示せばよい((i)については明らか)。

(ii)について

 もしa(n)c(n)が互いに素でなければ、c(n)の定め方からあるi,jに対してuj(ni)a(n)と共通因子v(n)を持つことになる。このときa(n)fj1(n)を割り切るのでfj1(n)v(n)を因数に持ち、また
gj1(n+hji)=gj(n+hji)uj(ni)
よりgj1(n+hji)v(n)を因数に持つが、fj1,gj1,hjの定め方から任意の0h<hjに対してfj1(n)gj1(n+h)は互いに素であったことに矛盾。よってa(n)c(n)は互いに素でなければならない。

(iii)について

 (ii)の場合と同様にb(n)c(n+1)が互いに素でなければあるi,jに対してuj(ni+1)b(n)と共通因子v(n)を持つことになり、このときv(n+i1)fj1(n),gj1(n+i1)を共に割り切ることがわかるので矛盾を得る。

ステップ2について

 次に与えられた多項式a(n),b(n),c(n)に対して
a(n)x(n+1)b(n1)x(n)=c(n)
を満たすような多項式x(n)を求める方法について考えていきましょう。
 と言っても多項式の恒等式なので適当にdを取って
x(n)=k=0dCknk
と展開し係数比較することによってd+1個の未知数C0,,Cdについての線型方程式に帰着させるだけではあります。
 ただ求める解が存在しない場合も考慮してd=degx(n)の取り得る値を求めておく必要があります。いまa(n)b(n)の最高次の係数が打ち消し合う場合と打ち消し合わない場合の二通りに分けて考えてみましょう。  

打ち消し合わない場合

 このときは件の方程式
a(n)x(n+1)b(n1)x(n)=c(n)
における左辺の次数はd+max{dega(n),degb(n)}となるので
d=degc(n)max{dega(n),degb(n)}
と求まります。

打ち消し合う場合

 このときa(n),b(n1),x(n)
a(n)=λnk+Ank1+b(n1)=λnk+Bnk1+x(n)=Cnd+Cnd1+
と展開すると
c(n)=a(n)x(n+1)b(n1)x(n)=a(n)(x(n+1)x(n))+(a(n)b(n1))x(n)
の右辺におけるnk+d1の係数はC(λd+AB)と表せます。
 したがってこれが0でなければ
d=degc(n)k+1
と求まり、これが0であれば
d=BAλ
と求まります。

まとめ

 以上のことをまとめるとこの問題は次のようなアルゴリズムによって解決することができます。

 k=max{dega,degb}としa(n),b(n1)k,k1次の係数をそれぞれλa,λb,A,Bとおく。

  1. dega(n)degb(n)またはλaλbが成り立つとき
    d=degck
    dega(n)=degb(n)かつλa=λb=λが成り立つとき
    d={degck+1(BAλZのとき)max{degck+1, BAλ}(BAλZのとき)
    とおく。
  2. このときd<0であれば求めるような多項式x(n)は存在せず、そうでなければ
    x(n)=k=0dCknk
    と展開し
    a(n)x(n+1)b(n1)x(n)=c(n)
    の両辺を係数比較することによって得られるC0,,Cdについての方程式を解く。
    もしその方程式が解を持たなければ求めるような多項式x(n)は存在しない。

計算例

 以上がGosper's algorithmの全容となります。
 と言ってもアルゴリズムの説明だけではいまいちパッとしないと思うので、ここからは"A=B"に載っているいくつかの簡単な例に対してGosper's algorithmがどのように機能するのかを見ていくこととしましょう。

k=0n(4k+1)k!(2k+1)!
を閉形式に表せ。

解説

ステップ1

A(n)=(4n+1)n!(2n+1)!
とおくと
A(n+1)A(n)=(4n+5)(n+1)(4n+3)(2n+2)(2n+3)=12(2n+3)4n+54n+1
と表せるので
a(n)=1,b(n)=2(2n+3),c(n)=4n+1
とおくとよい。

ステップ2

 このときx(n)の次数は
d=degc(n)degb(n)=0
と求まるのでx(n)=Kとおくと
a(n)x(n+1)b(n1)x(n)=K(12(2n+1))=K(4n+1)=Kc(n)
よりK=1を得る。

ステップ3

 以上より
T(n)=b(n1)c(n)x(n)A(n)=2(2n+1)4n+1(4n+1)n!(2n+1)!=2n!(2n)!k=0nA(k)=T(n+1)T(0)=22(n+1)!(2n+2)!=2n!(2n+1)!
を得る。

k=0nkk!
を閉形式に表せ。

解説

ステップ1

 A(n)=nn!とおくと
A(n+1)A(n)=(n+1)2n=n+11n+1n
と表せるので
a(n)=n+1,b(n)=1,c(n)=n
とおくとよい。

ステップ2

 このときx(n)の次数は
d=degc(n)dega(n)=0
と求まるのでx(n)=Kとおくと
a(n)x(n+1)b(n1)x(n)=K((n+1)1)=Kn=Kc(n)
よりK=1を得る。

ステップ3

 以上より
T(n)=b(n1)c(n)x(n)A(n)=1n(nn!)=n!k=0nA(k)=T(n+1)T(0)=(n+1)!1
を得る。

k=0nk!
は閉形式に表せないことを示せ。

解説

 A(n)=n!とおくと
A(n+1)A(n)=n+1
が成り立つので
a(n)=n+1,b(n)=1,c(n)=1
とおくとよい。このとき
a(n)x(n+1)b(n1)x(n)=c(n)
なる多項式x(n)が存在すればその次数は
d=degc(n)degb(n)=1
となって不適。よって主張を得る。

k=0n(Nk)
は閉形式に表せないことを示せ。

解説

 A(n)=(Nn)とおくと
A(n+1)A(n)=Nnn+1
が成り立つので
a(n)=Nn,b(n)=n+1,c(n)=1
とおくとよい。このとき
a(n)x(n+1)b(n1)x(n)=c(n)
なる多項式x(n)が存在すればその次数は
d=degc(n)degb(n)=1
となって不適。よって主張を得る。

k=1n1kN(N1)
は閉形式に表せないことを示せ。

解説

 A(n)=1/nNとおくと
A(n+1)A(n)=nN(n+1)N
が成り立つので
a(n)=nN,b(n)=(n+1)N,c(n)=1
とおくとよい。このとき明らかに
a(n)x(n+1)b(n1)x(n)=nk(x(n+1)x(n))=1
なる多項式x(n)は存在し得ないので主張を得る。

 より多くの具体例に対してGosper's algorithmを試してみたい人は"A=B"のp.95, 96にあるExercisesなどを解いてみてはいかがでしょうか(p.97, 98のSolutionsにてその解も載っています)。

参考文献

[1]
M. Petkovšek, H. Wilf, D. Zeilberger, A=B, 1997
投稿日:2024314
更新日:19
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

子葉
子葉
1069
262845
主に複素解析、代数学、数論を学んでおります。 私の経験上、その証明が簡単に探しても見つからない、英語の文献を漁らないと載ってない、なんて定理の解説を主にやっていきます。 同じ経験をしている人の助けになれば。最近は自分用のノートになっている節があります。

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. Gosper総和可能性
  3. 問題の帰着
  4. 数列から有理関数へ
  5. 有理関数から多項式へ
  6. まとめ
  7. Gosper's Algorithm
  8. ステップ1について
  9. ステップ2について
  10. 計算例
  11. 参考文献