8
現代数学解説
文献あり

超幾何数列の基礎3:漸化式の解き方

475
1

はじめに

 この記事では 前回の記事 に引き続き超幾何数列の基本事項についてまとめていきます。
 前回の記事では
S(n)=k=0nA(k)
という数列の閉形式の求め方、特に
T(n+1)T(n)=A(n)
という漸化式を満たす超幾何数列の求め方について解説しましたが、今回の記事ではより一般に多項式係数の線形漸化式
i=0Ipi(n)f(n+i)=0
を満たす超幾何数列の求め方について解説していきます。
 以下p0(n),,pI(n)は多項式であって、p0(n),pI(n)は(多項式として)0ではないものとします。

多項式による解

 まず非同次な漸化式
i=0Ipi(n)f(n+i)=g(n)
の多項式による解の求め方について考えていきましょう。f(n)が多項式であればこの左辺も多項式となるので、以下この右辺g(n)は多項式であるものとします。
 やることとしては適当にdを取り
f(n)=k=0dcknk
と展開することによってd+1個の未知数c0,,cdについての線型方程式に帰着させるだけなので、あとはdの上界を求めておけば機械的に処理することができます。

漸化式から差分方程式へ

 いま簡単のためNを前進作用素、つまり数列anに対して
Nan=an+1
と定めると件の方程式は
L=i=0Ipi(n)Ni
なる作用素を用いて
Lf(n)=g(n)
と表せます。
 またΔを差分作用素、つまり数列anに対して
Δan=an+1an
と定めるとΔ=N1よりLΔを用いて
L=i=0Ipi(n)(Δ+1)i=i=0Ipi(n)j=0i(ij)Δj=j=0I(i=jI(ij)pi(n))Δj
と表せます。
 したがって件の方程式は
qj(n)=i=jI(ij)pi(n)
なる多項式を係数に持つ差分方程式
j=0Iqj(n)(Δjf)(n)=g(n)
に変形できます。

次数の推定

 いまf(n)の次数をdとおき
f(n)=cnd+
と展開すると、繰り返しこの差分を取ることで
(Δjf(n))=cdjndj+
が成り立ちます。ただしxjは下降階乗
xj=x(x1)(x2)(xj+1)
としました。
 したがって
qj(n)=λjndj+(dj=degqj)
および
b=max0jI(degqjj)
とおくと
Lf(n)=j=0Iqj(n)(Δjf)(n)
の次数は高々b+dであり、またnb+dの係数は
cdegqjj=bλjdj
と表せます。
 これによってdは次のいずれかの条件を満たすことがわかります。

  • b+d<0のとき、db1
  • deg(Lf(n))=b+dのとき、d=deggb
  • deg(Lf(n))<b+dのとき、多項式
    r(x)=degqjj=bλjxj
    に対しr(d)=0

まとめ

 以上より漸化式
i=0Ipi(n)f(n+i)=g(n)
の多項式解は次のようなアルゴリズムによって網羅的に求めることができます。

  1. j=0,1,,Iに対し
    qj(n)=i=jI(ij)pi(n)
    によって定まる多項式qj(n)について、その次数degqjと最高次数の係数λjを求める。
  2. 整数bと多項式qj(n),r(x)
    b=max0jI(degqjj)r(x)=degqjj=bλjx(x1)(xj+1)
    によって定め
    d=max({deggb,b1}{dZ0r(d)=0})
    とおく。
  3. d<0であれば多項式解は存在せず、d0であれば
    f(n)=k=0dckxk
    とおき
    i=0Ipi(n)f(n+i)=g(n)
    の両辺を係数比較することによって得られるc0,,cdについての線形方程式を解く。
    この方程式が解を持たない場合も多項式解は存在しない。

 ちなみに 前回の記事 Gosper's algorithmのステップ2として
a(n)x(n+1)b(n1)x(n)=c(n)
という漸化式の多項式解x(n)の求め方を紹介しましたが、それはこのアルゴリズムの特殊な例(I=1)となっています。

超幾何数列による解

 次に上の結果を用いて同次漸化式
i=0Ipi(n)f(n+i)=0
の超幾何数列による解の求め方について考えていきましょう。
 いま超幾何数列f(n)に対し
r(n)=f(n+1)f(n)
とおくとf(n)
f(n)=f(0)k=0n1r(n)
のように表せるので、件の方程式は有理関数r(n)についての方程式
i=0Ipi(n)f(n+i)f(n)=i=0Ipi(n)j=0i1r(n+j)=0
に帰着できます。

r(n)の因数

 ここで 前回の記事 の定理5から
r(n)=a(n)b(n)c(n+1)c(n)z
なるモニック多項式a(n),b(n),c(n)と定数zであって

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

を満たすようなものを取ると
j=0i1r(n+j)=(j=0i1a(n+j)b(n+j))c(n+i)c(n)zi
が成り立つので件の方程式はさらに多項式の恒等式
i=0Ipi(n)(j=0i1a(n+j)j=iI1b(n+j))c(n+i)zi=0
に帰着されます。
 いまこの左辺の第i=0,I項に注目すると
a(n)p0(n)(j=0I1b(n+j))c(n)b(n+I1)pI(n)(j=0I1a(n+j))c(n+I)zI
が成り立つことがわかり、特にa(n),b(n),c(n)の取り方から
a(n)p0(n),b(n)pI(nI+1)
となることがわかります。これによりa(n),b(n)の候補はp0(n),pi(nI+1)の因数という高々有限個に絞ることができます。

多項式解への帰着

 そこでp0(n),pi(nI+1)のモニックな因数を任意に取ってa(n),b(n)とおき、件の方程式
i=0Ipi(n)(j=0i1a(n+j)j=iI1b(n+j))c(n+i)zi=0
c(n),zについての方程式として解いてみましょう。
 このときこの最高次の係数に注目することでzについての代数方程式(明示形については後述)
i=0Iαizi=0
が得られるので、この代数方程式の解z0を任意に取りz=z0とすることで残すは線形漸化式の多項式解c(n)を求めるだけとなります。そしてそれは前節で紹介したアルゴリズムによって解決することができます。

Petkovšek's Algorithm

 以上より漸化式
i=0Ipi(n)f(n+i)=g(n)
の超幾何数列による解は次のようなアルゴリズムによって網羅的に求めることができます。

  1. p0(n),pI(nI+1)のモニックな因数を任意に取りそれぞれa(n),b(n)とおく。
  2. このとき
    Pi(n)=pi(n)j=0i1a(n+j)j=iI1b(n+j)m=max0iIdegPi
    とおき、Pi(n)におけるnmの係数をαiとする。
  3. 代数方程式
    i=0Iαizi=0
    の各解zに対して、漸化式
    i=0IziPi(z)c(n+i)=0
    の多項式解c(n)を求める。
  4. もし多項式c(n)が求まれば
    f(n+1)f(n)=a(n)b(n)c(n+1)c(n)z
    によって定まる数列f(n)が求める超幾何数列となる。
  5. ステップ1においてp0(n),pI(nI+1)の因数の取り方を変えて同じ操作を繰り返す。

 見ての通りこのアルゴリズムは計算量が半端ではありません。実際"A=B"によると最悪の場合この計算量はp0(n),pI(n)の次数に関して指数的なオーダーとなるらしいです。そのため少しでも計算量を減らす工夫として以下のテクニックを覚えておくといいでしょう。

テクニック

  1. c(n)についての漸化式の係数はそれぞれa(n)b(n+I1)で割り切れるので、これにより係数となる多項式の次数を減らすことができる。
  2. ステップ2において定めた多項式Pi(n)の次数はd(a,b)=degbdegaを用いて
    degPi=degpi+Idegbid(a,b)
    と求まる。特に
    m=max0iI(degpiid(a,b))
    およびpiの最高次数の係数をαiとおくと、zについての代数方程式は
    degpiid(a,b)=mαizi=0
    と表せる。ここでこの方程式はd(a,b)の値のみによって定まるので各degp0d(a,b)degpIに対しこの方程式およびその解を求めることで、事前にzとして取り得る値を列挙しておくことができる。
  3. またzの取り方からz0であることに注意すると上の方程式がαi0zi0=0という形になる場合、つまりdegpiid(a,b)がただ一つのiにおいて最大値を取るような場合は無視することができる。
  4. 例えばdegpI=degp0degpiが成り立つ場合、d(a,b)0であればdegpiid(a,b)i=0i=Iでのみ最大値を取るので不適であり、したがってdega=degbでなければならないことがわかる(このときzについての方程式はただ一つに求まることにも注意したい)。
  5. a(n),b(n)は条件「(i) 任意の非負整数hに対しa(n)b(n+h)は互いに素である」を満たすように取れたので、これを満たさないような場合は無視することができる。

計算例

 百聞は一見に如かず、ということで今回も"A=B"に掲載されているいくつかの計算例を見ていくこととしましょう。

 三項間漸化式
3f(n+2)nf(n+1)+(n1)f(n)=0
の多項式解を全て求めよ。

解説

p2(n)=3,p1(n)=n,p0(n)=n1
より
q2(n)=p2(n)=3q1(n)=2p2(n)+p1(n)=6nq0(n)=p2(n)+p1(n)+p0(n)=2
と求まる。
 したがって
degqjj=2,0,0(j=2,1,0)
つまりb=0および
r(x)=x+2
と求まり、degg=に注意するとd=2を得る。
 いま
f(n)=An2+Bn+C
とおくと
3f(n+2)=3(An2+(4A+B)n+(4A+2B+C))nf(n+1)=(An3+(2A+B)n2+(A+B+C)n)(n1)f(n)=An3(AB)n2(BC)nC
より
(3A(2A+B)(AB)3(4A+B)(A+B+C)(BC)3(4A+2B+C)0C)=(00011101262)(ABC)=(000)
という方程式に帰着する。これを解くことで
f(n)=A(n211n+27)(Aは任意)
を得る。

 三項間漸化式
(n1)f(n+2)(n2+3n2)f(n+1)+2n(n+1)f(n)=0
の超幾何数列による解を全て求めよ。

解説

p2(n)=n1,p1(n)=(n2+3n2),p0(n)=2n(n+1)
なのでテクニック(5)に注意するとa(n),b(n)の候補は
(a(n),b(n))=(1,1),(n,1),(n+1,1),(n(n+1),1)
の四通りに絞られる。

(a(n),b(n))=(1,1)のとき

 このときzの満たす方程式は
z+2=0
つまりその解はz=2と求まり、c(n)の満たす漸化式は
z2p2(n)b(n+1)a(n+1)c(n+2)+zp1(n)c(n+1)+p0(n)a(n)b(n)c(n)=4(n1)c(n)2(n2+3n2)c(n)+2n(n+1)c(n)=0
となる。これを解くとc(n)=Aつまりf(n)=A2nが得られる(Aは任意)。

(a(n),b(n))=(n+1,1)のとき

 このときzの満たす方程式は
z2z=0
つまりその解はz=1と求まり、c(n)の満たす漸化式は
(n1)(n+2)c(n+2)(n2+3n2)c(n+1)+2nc(n)=0
となる。これを解くとc(n)=Bつまりf(n)=Bn!が得られる(Bは任意)。

結論

 これにて二つの線形独立な解が得られたので、残る(a(n),b(n))の候補を確かめずとも
(n1)f(n+2)(n2+3n2)f(n+1)+2n(n+1)f(n)=0
の解は
f(n)=A2n+Bn!(A,Bは任意)
で尽くされることがわかる。

 アペリー数
f(n)=k=0n(nk)2(n+kk)2
は三項間漸化式
(n+2)3f(n+2)(2n+3)(17n2+51n+39)f(n+1)+(n+1)3f(n)=0
を満たすことが知られている。このことからf(n)は閉形式に表せないことを示せ。

解説

 テクニック(4),(5)に注意するとa(n),b(n)の候補は
(a(n),b(n))=(1,1)
の一通りに絞られる。このときzの満たす方程式は
z234z+1=0
つまりその解はz=17±122と求まり、c(n)の満たす漸化式は
z2(n+2)3c(n+2)z(2n+3)(17n2+51n+39)c(n+1)+(n+1)3c(n)=0
となる。しかしこれを解くとこのような多項式は存在しないことがわかる。
 したがってf(n)が満たす漸化式は超幾何数列による解を持たず、f(n)は閉形式に表せないことが示された(cf. 前々回の記事 の定理6)。

 やはり計算量が大変なことになってしまうので、やむを得ず多項式解を計算する過程は省略しました。

追記:d'Alembertian数列による解

 上では漸化式の超幾何数列による解の求め方について解説してきましたが、"閉じた形(closed form)"の解釈をもう少し広げ
f(n)=A0(n)n1=0n1A1(n1)nn=0n11A2(n2)nd=0nd11Ad(nd)
と表せるような解について考えてみましょう。

 数列f(n)d'Alembertianであるとは、ある有理関数係数の一階作用素
Lk=pk(n)N+qk(n)(k=0,1,,d)
(ただしNは前進作用素Nf(n)=f(n+1))が存在して
LdLd1L0f(n)=0
が成り立つことを言う。

 例えば超幾何数列A0(n),A1(n)を用いて
f(n)=A0(n)k=0nA1(k)
と表せるような数列は
(NA0(n+2)A1(n+2)A0(n+1)A1(n+1))(NA0(n+1)A0(n))f(n)=0
という漸化式を満たします。
 ここでこの漸化式はf(n)=A0(n)も解に持つことに注意しましょう。

漸化式の階数下げ

 いま与えられた漸化式のd'Alembertian数列による解を考える上で重要な事実として次のような命題が成り立ちます(証明については気が向いたら書きます)。

 d'Alembertian数列f(n)0が多項式係数の線形漸化式
i=0Ipi(n)f(n+i)=0
を満たすとき、同じ漸化式
i=0Ipi(n)A(n+i)=0
を満たすような超幾何数列A(n)が存在する。

 このようなA(n)に対して
g(n)=f(n)A(n),h(n)=g(n+1)g(n)
とおくとこの漸化式の階数を下げることができます。実際これにより
=i=0Ipi(n)f(n+i)=pI(n)A(n+I)g(n+I)+i=0I1pi(n)A(n+i)g(n+i)=(i=0I1pi(n)A(n+i))g(n+I)+i=0I1pi(n)A(n+i)g(n+i)=i=0I1pi(n)A(n+i)(g(n+i)g(n+I))=i=0I1pi(n)A(n+i)j=iI1(g(n+j)g(n+j+1))=j=0I1(i=0jpi(n)A(n+i))(g(n+j)g(n+j+1))
と変形できるのでh(n)I1階の漸化式
j=0I1(i=0jpi(n)A(n+i)A(n))h(n+j)=0
を満たすことがわかります。
 またf(n)がd'Alembertianであればh(n)も再びd'Alembertianとなるのでこれが0でなければh(n)についての漸化式にも超幾何数列による解A(n)が存在することになります。このようにして超幾何数列による解が求まらなくなるまで階数を下げていくことで
f(n)=A(n),A(n)n1=0n1A(n1),A(n)n1=0n1A(n1)n2=0n11A(n2),
といった形の解が得られることとなります。

計算例

 やはりこれも百聞は一見に如かず、ということで計算例をいくつか紹介しておきましょう。

 三項間漸化式
f(n+2)=(n+1)(f(n+1)+f(n))
の解を全て求めよ。

解説

 まずは超幾何数列による解を一つ求める。
 いまa(n)=n+1,b(n)=1とおくとzについての方程式は
z2z=0
つまりz=1と求まり、c(n)についての方程式は
(n+2)c(n+2)(n+1)x(n+1)c(n)=0
となる。これを解くとc(n)=Aつまりf(n)=An!が得られる(Aは任意)。
 ここで
g(n)=f(n)n!,h(n)=g(n+1)g(n)
とおくと問題の漸化式は
(n+2)g(n+2)=(n+1)g(n+1)+g(n)(n+2)h(n+1)=h(n)
と変形できるので
h(n)=B(1)n(n+1)!
つまり
f(n)=Bn!k=0n(1)kk!
という解が得られる(Bは任意)。
 したがって求める解は
f(n)=n!(A+Bk=0n(1)kk!)
で尽くされることとなる。

 ちなみにこの階数下げのテクニックは単に超幾何数列による解を求める場合にも役に立ちます。

 三項間漸化式
(n1)f(n+2)(n2+3n2)f(n+1)+2n(n+1)f(n)=0
の解を全て求めよ。

解説

 問題2として解説したように、これは
f(n)=A2n+Bn!
という解を持つのであった。ここでf(n)=2nという解を既知としてもう一方の解f(n)=n!を導出してみよう。
 いま
g(n)=2nf(n),h(n)=g(n+1)g(n)
とおくと問題の方程式は
2(n1)g(n+2)(n2+3n2)g(n+1)+n(n+1)g(n)=02(n1)h(n+1)n(n+1)h(n)=0
と変形できるので
h(n)=n(n1)2(n2)h(n1)=(n1)n!2nB
つまりB=1とすると
f(n)=2nk=0n1(k1)k!2k
という解が得られる。
 ここでこのcreative telescopingを考えると
(n1)n!2n+1=(n+1)!2n+1n!2n
が成り立つので結局
f(n)=2nn!2n=n!
という解が得られることとなる。

 このようにd'Alembertian数列による解
f(n)=A(n)k=0nA(k)
が得られても、A(n)がGosper総和可能であれば
T(n+1)T(n)=A(k)
なる超幾何数列T(n)を用いて
f(n)=A(n)T(n+1)A(n)T(0)
という閉形式が得られることにも注意しなければなりません。
 ちなみに問題4の場合は
A(n)=(1)nn!
がGosper総和可能ではないのであれが最善の結果となっています。

追記:三項間漸化式の一般解

 よくよく考えると三項間漸化式は解が一つ求まれば次のような解の公式を作れることに気付いたので簡単に書いておきます。

 A(n),B(n)0
p(n)A(n+2)+q(n)A(n+1)+r(n)A(n)=0
および
B(n+1)B(n)=r(n)p(n)
を満たす数列とすると、三項間漸化式
p(n)f(n+2)+q(n)f(n+1)+r(n)f(n)=0
の一般解は
f(n)=A(n)(C1+C2k=0n1B(k)A(k)A(k+1))
と表せる(C1,C2は任意)。

証明

g(n)=f(n)A(n),h(n)=g(n+1)g(n)
とおくと問題の漸化式は
0=p(n)A(n+2)g(n+2)+q(n)A(n+1)g(n+1)+r(n)A(n)g(n)=p(n)A(n+2)g(n+2)(p(n)A(n+2)+r(n)A(n))g(n+1)+r(n)A(n)g(n)=p(n)A(n+2)h(n+1)r(n)A(n)h(n)
と変形でき、これは
h(n+1)=r(n)A(n)p(n)A(n+2)h(n)=CB(n+1)A(n+1)A(n+2)
と解ける(Cは任意)。
 また
f(n+1)A(n+1)f(n)A(n)=h(n)=C2B(n)A(n)A(n+1)
であったので
f(n)=A(n)(C1+C2k=0n1B(k)A(k)A(k+1))
を得る(C1,C2は任意)。

 例えばこれにより上の問題1の一般解も簡単に求めることができます。

 三項間漸化式
3f(n+2)nf(n+1)+(n1)f(n)=0
の解を全て求めよ。

解説

 問題1として解説したようにこれは
f(n)=n211n+27
という解を持つのであった。したがって上の公式より
f(n)=(n211n+27)(C1+C2k=2n1(k2)!3k(k211k+27)(k29k+17))
が求める一般解となる(C1,C2は任意)。

 ちなみに 第十一回の記事 の手法を用いると
k=2n1(k2)!3k(k211k+27)(k29k+17)=2243n66(n211n+27)(n2)!3n+118k=2n1(k2)!3k
と表せたりします。

参考文献

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

この記事を高評価した人

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

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

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

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

投稿者

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

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 多項式による解
  3. 漸化式から差分方程式へ
  4. 次数の推定
  5. まとめ
  6. 超幾何数列による解
  7. $r(n)$の因数
  8. 多項式解への帰着
  9. Petkovšek's Algorithm
  10. 計算例
  11. 追記:d'Alembertian数列による解
  12. 漸化式の階数下げ
  13. 計算例
  14. 追記:三項間漸化式の一般解
  15. 参考文献