Fibonacci数の母関数

同義語:generating function of the Fibonacci numbers

概要

Fibonacci数の母関数(generating function of the Fibonacci numbers)とは、$F_0=0$、$F_1=1$、$F_{n+2}=F_{n+1}+F_n$ で定まる Fibonacci 数の形式的冪級数 $\Phi=\sum_{n\ge0}F_nx^n$ のことで、$\Phi=\frac{x}{1-x-x^2}$ である。分母を $(1-\varphi x)(1-\psi x)$($\varphi,\psi=\frac{1\pm\sqrt5}2$)と分解して部分分数に分けると、一般項 $F_n=\frac{\varphi^n-\psi^n}{\sqrt5}$(Binet の公式)が得られる。この計算は数を代入しない係数の等式として正しい。$n\ge0$ を $1$ と $2$ の順序付きの和で表す方法の数は $F_{n+1}$ である。

$$\newcommand{C}[0]{\mathbb{C}} \newcommand{N}[0]{\mathbb{N}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{Z}[0]{\mathbb{Z}} $$

前提知識: 漸化式, 等比数列, 部分分数分解, 2次方程式

高校での出発点:Fibonacci 数

数列の例としてよく出てくる Fibonacci 数は、
$$ F_0=0,\qquad F_1=1,\qquad F_{n+2}=F_{n+1}+F_n\quad(n\ge0) $$
で定まる数列である。前の 2 項を足して次の項を作る。

Fibonacci 数を順に計算する

漸化式に $n=0,1,2,\dots$ を順に入れると、
$$ F_2=1+0=1,\quad F_3=1+1=2,\quad F_4=2+1=3,\quad F_5=3+2=5,\quad F_6=5+3=8, $$
$$ F_7=13,\quad F_8=21,\quad F_9=34,\quad F_{10}=55 $$
である。項は急速に大きくなり、$F_{20}=6765$、$F_{30}=832040$ である。

高校では、このような 3 項の間の漸化式の一般項を、特性方程式 $t^2=t+1$ の解を使って求める(三項間漸化式の特性方程式)。この記事では、同じ一般項を母関数で求める。方針は次の 3 段である。

段高校の言葉母関数の言葉本記事の箇所
1漸化式 $F_{n+2}=F_{n+1}+F_n$等式 $(1-x-x^2)\Phi=x$ex-gff-coefficients、thm-gff-main の 1
2分数式の部分分数分解逆数どうしの等式prf-thm-gff-main の段 3・段 4
3等比数列の一般項$\frac1{1-ax}=\sum a^nx^n$thm-gff-main の 2

この方法の良いところは、「なぜ特性方程式の解が一般項に現れるのか」が、分母の因数分解として見えることである。

母関数の準備

数列 $(a_n)$ の母関数とは、形式的冪級数 $\sum_{n\ge0}a_nx^n$ のことである。ここで $x$ は数ではなく、係数の位置を示す目印であり、収束は問わない。この記事で使う規則は次の 3 つである(詳しくは形式的冪級数の積と逆数)。

  • 和は係数ごとの和、積は $[x^n](FG)=\sum_{k=0}^na_kb_{n-k}$($[x^n]F$ は $F$ の $x^n$ の係数)。この和と積は、多項式と同じ交換・結合・分配法則を満たす。
  • 2 つの形式的冪級数は、すべての係数が等しいとき等しい。
  • 定数項が $0$ でない級数 $F$ には、$FG=1$ となる $G$ がただ 1 つある。これを $\frac1F$ と書く。特に $\frac1{1-ax}=\sum_{n\ge0}a^nx^n$ である($(1-ax)\sum a^nx^n$ の $x^n$ の係数は、$n\ge1$ で $a^n-a\cdot a^{n-1}=0$)。
    Fibonacci 数の母関数を
    $$ \Phi:=\sum_{n\ge0}F_nx^n=0+x+x^2+2x^3+3x^4+5x^5+8x^6+\cdots $$
    とおく。
$(1-x-x^2)\Phi$ の係数を計算する

$1-x-x^2$ の係数は、$x^0$ が $1$、$x^1$ が $-1$、$x^2$ が $-1$、それ以外は $0$ である。積の定義から、$(1-x-x^2)\Phi$ の $x^n$ の係数は $F_n-F_{n-1}-F_{n-2}$ である(添字が負になる項は $0$ とする)。小さい $n$ で計算すると、

  • $x^0$:$F_0=0$。
  • $x^1$:$F_1-F_0=1-0=1$。
  • $x^2$:$F_2-F_1-F_0=1-1-0=0$。
  • $x^3$:$F_3-F_2-F_1=2-1-1=0$。
  • $x^4$:$F_4-F_3-F_2=3-2-1=0$。
    となる。$x^1$ の係数だけが $1$ で、残りは $0$ である。$n\ge2$ では、係数 $F_n-F_{n-1}-F_{n-2}$ は漸化式そのものなので $0$ になる。つまり $(1-x-x^2)\Phi=x$ である。

主定理:母関数と一般項

Fibonacci 数の母関数と一般項

$\Phi=\sum_{n\ge0}F_nx^n\in\mathbb{R}[\![x]\!]$ とする。

  1. $\Phi=\dfrac{x}{1-x-x^2}$ である。
  2. $\varphi:=\dfrac{1+\sqrt5}2$、$\psi:=\dfrac{1-\sqrt5}2$ とすると、すべての $n\ge0$ で
    $$ F_n=\frac{\varphi^n-\psi^n}{\sqrt5} $$
    である(Binet の公式)。
係数を比べ、分母を因数分解する

方針:1 は係数の比較で示す。2 は、分母 $1-x-x^2$ を 1 次式の積に分け、$\Phi$ を 2 つの等比数列の母関数の差として書き直して、係数を読む。
段 1(1 の証明):$(1-x-x^2)\Phi$ の $x^n$ の係数は $F_n-F_{n-1}-F_{n-2}$ である(負の添字の項は $0$)。$n=0$ では $F_0=0$、$n=1$ では $F_1-F_0=1$、$n\ge2$ では漸化式 $F_n=F_{n-1}+F_{n-2}$ により $0$ である。よって $(1-x-x^2)\Phi=x$ である。$1-x-x^2$ は定数項が $1\ne0$ なので逆数 $\frac1{1-x-x^2}$ をもつ。両辺にこれを掛けて $\Phi=\frac{x}{1-x-x^2}$ を得る。
段 2(分母の因数分解):$\varphi,\psi$ は 2 次方程式 $t^2-t-1=0$ の 2 つの解であり、解と係数の関係から $\varphi+\psi=1$、$\varphi\psi=-1$ である。よって
$$ (1-\varphi x)(1-\psi x)=1-(\varphi+\psi)x+\varphi\psi x^2=1-x-x^2 $$
である。
段 3(2 つの逆数の差を計算する):$A:=\frac1{1-\varphi x}-\frac1{1-\psi x}$ とおく。$A$ に $(1-\varphi x)(1-\psi x)$ を掛けると、分配法則と $\frac1{1-\varphi x}\cdot(1-\varphi x)=1$ などにより
$$ A\,(1-\varphi x)(1-\psi x)=(1-\psi x)-(1-\varphi x)=(\varphi-\psi)x $$
である。段 2 により左辺は $A\,(1-x-x^2)$ なので、両辺に $\frac1{1-x-x^2}$ を掛けて $A=\frac{(\varphi-\psi)x}{1-x-x^2}$ を得る。
段 4($\Phi$ を書き直す):$\varphi-\psi=\sqrt5$ なので、段 3 と 1 から $A=\sqrt5\,\Phi$、すなわち
$$ \Phi=\frac1{\sqrt5}\Bigl(\frac1{1-\varphi x}-\frac1{1-\psi x}\Bigr) $$
である。
段 5(係数を読む):$\frac1{1-\varphi x}=\sum\varphi^nx^n$、$\frac1{1-\psi x}=\sum\psi^nx^n$ なので、右辺の $x^n$ の係数は $\frac{\varphi^n-\psi^n}{\sqrt5}$ である。2 つの形式的冪級数が等しいので係数も等しく、$F_n=\frac{\varphi^n-\psi^n}{\sqrt5}$ である。$\square$

段 3・段 4 は、高校で習う部分分数分解の計算と同じ形をしている。違うのは、それが $x$ に数を入れた等式ではなく、形式的冪級数の等式として正しいことである。数を代入していないので、収束は一度も使っていない。証明には Lev24 §6.1.4(p. 428)の「漸化式を母関数と部分分数で解く」方法を使った。

Binet の公式で $F_5$ を手で計算する

$\varphi$ は $t^2=t+1$ を満たすので、$\varphi^2=\varphi+1$ である。これを繰り返し使うと
$$ \varphi^3=\varphi\cdot\varphi^2=\varphi^2+\varphi=2\varphi+1,\qquad \varphi^4=2\varphi^2+\varphi=3\varphi+2,\qquad \varphi^5=3\varphi^2+2\varphi=5\varphi+3 $$
である。$\psi$ も $t^2=t+1$ を満たすので、同じ計算で $\psi^5=5\psi+3$ である。よって
$$ \frac{\varphi^5-\psi^5}{\sqrt5}=\frac{5(\varphi-\psi)}{\sqrt5}=\frac{5\sqrt5}{\sqrt5}=5=F_5 $$
である。係数 $5,3$ に $F_5,F_4$ が現れていることにも注意する(一般に $\varphi^n=F_n\varphi+F_{n-1}$)。

$F_n$ は $\frac{\varphi^n}{\sqrt{5}}$ にいちばん近い整数

$\varphi=1.6180\ldots$、$\psi=-0.6180\ldots$ である。Binet の公式から
$$ F_n-\frac{\varphi^n}{\sqrt5}=-\frac{\psi^n}{\sqrt5} $$
であり、$|\psi|<1$ なので右辺の絶対値は $\frac1{\sqrt5}=0.447\ldots$ 以下である。これは $\frac12$ より小さいので、$F_n$ は $\frac{\varphi^n}{\sqrt5}$ にいちばん近い整数である。たとえば $n=10$ では $\frac{\varphi^{10}}{\sqrt5}=55.0036\ldots$ であり、$F_{10}=55$ に一致する。$n$ が大きくなると差 $\frac{|\psi|^n}{\sqrt5}$ はさらに小さくなる($n=10$ で $0.0036\ldots$)。

左は !FORMULA[136][35426867][0] と !FORMULA[137][253574382][0](片対数目盛り)、右は差 !FORMULA[138][-1457250858][0]。差は符号を変えながら 0 に近づく 左は $F_n$ と $\varphi^n/\sqrt5$(片対数目盛り)、右は差 $F_n-\varphi^n/\sqrt5$。差は符号を変えながら 0 に近づく
図 1 の左で点が直線に並ぶのは、$F_n$ がおよそ $\frac{\varphi^n}{\sqrt5}$、つまり公比 $\varphi$ の等比数列のように増えるからである。
同じ部分分数分解を有理関数の積分に使う話は 有理関数の積分 で扱う。

同じ方法を別の漸化式に使う

分母の多項式と漸化式の関係を、もう少し見ておく。漸化式 $a_{n+2}=pa_{n+1}+qa_n$ を満たす数列の母関数 $A=\sum a_nx^n$ では、ex-gff-coefficients と同じ計算で $(1-px-qx^2)A$ の $x^n$ の係数が $n\ge2$ で $0$ になる。したがって $(1-px-qx^2)A$ は 1 次以下の多項式である。分母 $1-px-qx^2$ は、特性方程式 $t^2-pt-q=0$ の左辺 $t^2-pt-q$ の係数を逆順に並べたものである。

$a_{n+2}=a_{n+1}+2a_n$ の一般項

$a_0=0$、$a_1=1$、$a_{n+2}=a_{n+1}+2a_n$ とする。項は $0,1,1,3,5,11,21,43,\dots$ である。
段 1:$(1-x-2x^2)A$ の係数は、$x^0$ で $a_0=0$、$x^1$ で $a_1-a_0=1$、$n\ge2$ で $a_n-a_{n-1}-2a_{n-2}=0$ である。よって $A=\frac{x}{1-x-2x^2}$ である。
段 2:$1-x-2x^2=(1-2x)(1+x)$ であり、
$$ \frac1{1-2x}-\frac1{1+x}=\frac{(1+x)-(1-2x)}{(1-2x)(1+x)}=\frac{3x}{1-x-2x^2} $$
である(この等式は、prf-thm-gff-main の段 3 と同じく、両辺に $(1-2x)(1+x)$ を掛けて確かめる)。
段 3:よって $A=\frac13\bigl(\frac1{1-2x}-\frac1{1+x}\bigr)$ であり、係数を読むと
$$ a_n=\frac{2^n-(-1)^n}3 $$
である。$n=5$ で $\frac{32+1}3=11$、$n=7$ で $\frac{128+1}3=43$ となり、表と一致する。

反例:同じ漸化式でも初期値が違えば母関数は違う

Lucas 数 $L_0=2$、$L_1=1$、$L_{n+2}=L_{n+1}+L_n$($2,1,3,4,7,11,18,\dots$)は Fibonacci 数と同じ漸化式を満たす。$(1-x-x^2)\sum L_nx^n$ の係数は、$x^0$ で $L_0=2$、$x^1$ で $L_1-L_0=-1$、$n\ge2$ で $0$ なので、
$$ \sum_{n\ge0}L_nx^n=\frac{2-x}{1-x-x^2} $$
である。分母は $\Phi$ と同じだが、分子が違う。「漸化式が同じなら母関数も同じ」という主張は、この例で破れる。分母は漸化式で決まり、分子は初期値で決まる。実際、$\frac{2-x}{1-x-x^2}=\frac1{1-\varphi x}+\frac1{1-\psi x}$(両辺に $1-x-x^2$ を掛けて確かめられる)から $L_n=\varphi^n+\psi^n$ である。

1 と 2 の順序付きの和

Fibonacci 数は数え上げの答えとしてもよく現れる。
0 以上の整数 $n$ を、$1$ と $2$ を順番に並べた和として表す方法を考える。$3=1+2$ と $3=2+1$ は区別する(順序付きの和)。$n=0$ では、何も足さない空の和の 1 通りと数える。図 2 のように、長さ $n$ の帯を長さ $1$ と $2$ のタイルで左から敷き詰める方法と言い換えてもよい。
長さ !FORMULA[199][38042][0] の帯を長さ 1 と 2 のタイルで敷く方法。左から読んだタイルの長さの列が順序付きの和になる 長さ $n$ の帯を長さ 1 と 2 のタイルで敷く方法。左から読んだタイルの長さの列が順序付きの和になる

$n=4$ と $n=5$ の場合

$n=4$ の表し方は
$$ 1+1+1+1,\quad 1+1+2,\quad 1+2+1,\quad 2+1+1,\quad 2+2 $$
の $5$ 通りである。$n=5$ の表し方を、最後の項で分けて数える。

  • 最後が $1$ のもの:残りは $4$ の表し方で、上の $5$ 通りの後ろに $+1$ を付けたもの。
  • 最後が $2$ のもの:残りは $3$ の表し方($1+1+1$、$1+2$、$2+1$ の $3$ 通り)の後ろに $+2$ を付けたもの。
    合わせて $5+3=8$ 通りである。$n=0,1,2,3,4,5$ の個数は $1,1,2,3,5,8$ であり、$F_1,F_2,\dots,F_6$ に一致する。
1 と 2 の順序付きの和の数

$n\ge0$ を $1$ と $2$ の順序付きの和で表す方法の数を $c_n$ とする($c_0=1$)。このとき $c_n=F_{n+1}$ である。

漸化式を母関数に翻訳する

方針:ex-gff-compositions-small の「最後の項で分ける」数え方で $c_n$ の漸化式を作り、それを母関数の等式にして $\Phi$ と比べる。
段 1(初めの値):$c_0=1$(空の和)、$c_1=1$($1$ だけ)である。
段 2(漸化式):$n\ge2$ とする。$n$ の表し方は、最後の項が $1$ か $2$ かのどちらか一方である。最後が $1$ の表し方から最後の $1$ を取り除くと $n-1$ の表し方になり、逆に $n-1$ の表し方の後ろに $+1$ を付けると最後が $1$ の $n$ の表し方になる。この 2 つの操作は互いに逆なので、最後が $1$ のものは $c_{n-1}$ 個ある。同じ理由で、最後が $2$ のものは $c_{n-2}$ 個ある。よって $c_n=c_{n-1}+c_{n-2}$ である。
段 3(母関数の等式):$C:=\sum_{n\ge0}c_nx^n$ とおく。$(1-x-x^2)C$ の $x^n$ の係数は、$n=0$ で $c_0=1$、$n=1$ で $c_1-c_0=0$、$n\ge2$ で段 2 により $0$ である。よって $(1-x-x^2)C=1$、すなわち $C=\frac1{1-x-x^2}$ である。
段 4($\Phi$ と比べる):thm-gff-main の 1 により $\Phi=\frac x{1-x-x^2}=x\,C$ である。$x\,C=\sum_{n\ge0}c_nx^{n+1}$ の $x^{n+1}$ の係数は $c_n$、$\Phi$ の $x^{n+1}$ の係数は $F_{n+1}$ なので、$c_n=F_{n+1}$ である。$\square$

同じ数え上げは、$2\times n$ の盤を $2\times1$ のタイルで敷く方法の数としても現れる(KT17 Example 9.2、p. 185)。盤の右端の列が縦のタイル 1 枚か、横のタイル 2 枚かで分けると、prf-prop-gff-compositions の段 2 と同じ漸化式が出る。

母関数から個数を読む

$C=\frac1{1-x-x^2}$ の係数は、prf-prop-gff-compositions の段 3 から $c_n=c_{n-1}+c_{n-2}$ で順に決まる:$1,1,2,3,5,8,13,21,34,55,89,\dots$ である。したがって $10$ を $1$ と $2$ の順序付きの和で表す方法は $c_{10}=89=F_{11}$ 通りである。Binet の公式を使えば $c_{10}=F_{11}=\frac{\varphi^{11}-\psi^{11}}{\sqrt5}$ であり、ex-gff-rounding により $\frac{\varphi^{11}}{\sqrt5}=88.998\ldots$ にいちばん近い整数として $89$ が得られる。

Fibonacci 数を行列の $n$ 乗と割り算の余りで求める方法は 行列のn乗と割り算の余り で扱う。

さらに先へ

  • 数を代入する:$\Phi=\frac x{1-x-x^2}$ に $x=\frac1{10}$ を入れると $\sum_{n\ge0}\frac{F_n}{10^{n+1}}=\frac1{89}$ が得られる。ただし、形式的な等式に数を入れてよいのは、級数が収束する範囲に限られる(母関数に数を代入してよいとき)。
  • 一般の線形漸化式:$a_{n+k}=p_1a_{n+k-1}+\cdots+p_ka_n$ を満たす数列の母関数は、分母 $1-p_1x-\cdots-p_kx^k$、分子が $k-1$ 次以下の多項式の分数式になる。逆に、そのような分数式の係数はこの漸化式を満たす(母関数)。
  • 行列で見る:同じ一般項は、漸化式を行列の積で書き、行列の固有値を求めても得られる(三項間漸化式と行列の固有値)。

関連項目

参考文献

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する