数学 において、母関数 (ぼかんすう、英 : generating function ; 生成関数)は、(自然数 で添字付けられた)数列 {a n } に関する情報を内包した係数 を持つ、形式的冪級数 である。母関数は、一般線型回帰問題の解決のためにド・モアブル によって1730年に初めて用いられた[ 1] 。複数の自然数で添字付けられる数の配列(多重数列)の情報を取り込んだ多変数冪級数を同様に考えることもできる。
母関数には、通常型母関数 (ordinary generating function )、指数型母関数 (exponential generating function )、ランベルト級数 (Lambert series )、ベル級数 (Bell series )、ディリクレ級数 (Dirichlet series ) など様々なものがある。これらについては定義と例を後述する。原理的にはあらゆる列についてそれぞれの種類の母関数が存在する(ただし、ランベルト級数とディリクレ型は添字を 1 から始めることが必要)が、扱い易さについてはそれぞれの種類で相当異なるかもしれない。どの母関数が最も有効かは、その列の性質と解くべき問題の詳細に依存する。
母関数を、形式的冪級数に対する演算・操作を用いるなどして(級数の形ではなく)閉じた形 (英語版 ) の式で表すこともよく行われる。このような母関数の表示は、母関数の不定元を x とすれば、四則演算、母関数のx に関する微分、他の母関数へ代入すること、などを行った結果として得られる。これらの操作は関数に対しても定義されるものであるし、結果として得られる式もやはり x の関数であるかのように見える。実際、母関数を x の(十分小さい)具体的な値で評価することのできる関数として解釈することができる場合も少なくない(このとき、母関数の冪級数表示は、母関数の閉じた形の式のテイラー級数と解釈される)のであり、それがこの式が「母関数」と呼ばれる所以でもある。しかし、形式的冪級数は x に何らかの数値を代入したときに収束するかどうかは問題にしないのであって、母関数についてそのような関数としての解釈が可能であるということは必ずしも要求されるものではないし、同様に x の関数として意味を持つ式がいずれも形式的冪級数に対して意味を持つわけではない。
慣例的に母「関数」と呼ばれてはいるが、始域 から終域 への写像という関数の厳密な意味に照らして言えば母関数は関数ではなく、今日的には生成級数(母級数)と呼ぶこともしばしばである。
定義
通常型母関数
数列 {a n } の通常型母関数とは、形式的冪級数
G
(
a
n
;
x
)
=
∑ ∑ -->
n
=
0
∞ ∞ -->
a
n
x
n
{\displaystyle G(a_{n};x)=\sum _{n=0}^{\infty }a_{n}x^{n}}
のことである。単に「母関数」と言った場合、通常型母関数を意味することが多い。
a n が離散確率変数 の確率質量関数 なら、その通常型母関数を確率母関数 (英語版 ) と呼ぶ。
通常型母関数は多重添字を持つ列に対するものに一般化できる。例えば、二重数列 {a m,n }(n と m は自然数)の通常型母関数は
G
(
a
m
,
n
;
x
,
y
)
=
∑ ∑ -->
m
,
n
=
0
∞ ∞ -->
a
m
,
n
x
m
y
n
{\displaystyle G(a_{m,n};x,y)=\sum _{m,n=0}^{\infty }a_{m,n}x^{m}y^{n}}
である。
指数型母関数
数列 {a n } の指数型母関数とは、
E
G
(
a
n
;
x
)
=
∑ ∑ -->
n
=
0
∞ ∞ -->
a
n
x
n
n
!
{\displaystyle EG(a_{n};x)=\sum _{n=0}^{\infty }a_{n}{\frac {x^{n}}{n!}}}
という級数である。
ポアソン母関数
数列 {a n } のポアソン母関数 (Poisson generating function ) とは
P
G
(
a
n
;
x
)
=
∑ ∑ -->
n
=
0
∞ ∞ -->
a
n
e
− − -->
x
x
n
n
!
{\displaystyle PG(a_{n};x)=\sum _{n=0}^{\infty }a_{n}e^{-x}{\frac {x^{n}}{n!}}}
のことである。
ランベルト級数
数列 {a n } のランベルト級数は
L
G
(
a
n
;
x
)
=
∑ ∑ -->
n
=
1
∞ ∞ -->
a
n
x
n
1
− − -->
x
n
{\displaystyle LG(a_{n};x)=\sum _{n=1}^{\infty }a_{n}{\frac {x^{n}}{1-x^{n}}}}
で定義される。ランベルト級数では、添字 n は 0 からではなく 1 から始まる点に注意。
ベル級数
数論的関数 f (n ) と素数 p に対するベル級数は、
f
p
(
x
)
=
∑ ∑ -->
n
=
0
∞ ∞ -->
f
(
p
n
)
x
n
{\displaystyle f_{p}(x)=\sum _{n=0}^{\infty }f(p^{n})x^{n}}
で与えられる。
母関数としてのディリクレ級数
ディリクレ級数 は厳密な意味では形式的冪級数でないにもかかわらず、母関数の一種にしばしば分類される。数列 {a n } のディリクレ級数型の母関数とは
D
G
(
a
n
;
s
)
=
∑ ∑ -->
n
=
1
∞ ∞ -->
a
n
n
s
{\displaystyle DG(a_{n};s)=\sum _{n=1}^{\infty }{\frac {a_{n}}{n^{s}}}}
である。ディリクレ級数型の母関数は a n が乗法的関数 でその関数のベル級数を使ったオイラー積 表示があれば、特に便利である。
D
G
(
a
n
;
s
)
=
∏ ∏ -->
p
f
p
(
p
− − -->
s
)
{\displaystyle DG(a_{n};s)=\prod _{p}f_{p}(p^{-s})\,}
a n がディリクレ指標 なら、そのディリクレ級数母関数をディリクレのL関数 と呼ぶ。
多項式列の母関数
母関数の概念を他の数学的対象の列に対しても拡張することができる。例えば、二項型の多項式列の母関数は
e
x
f
(
t
)
=
∑ ∑ -->
n
=
0
∞ ∞ -->
p
n
(
x
)
n
!
t
n
{\displaystyle e^{xf(t)}=\sum _{n=0}^{\infty }{p_{n}(x) \over n!}t^{n}}
のようになる。ここで、p n (x ) は多項式列、f (t ) はある形式の関数である。シェファー列も同様にして生成される。詳細は一般化アペル多項式 を参照。
通常型母関数
有限列(あるいは同じことだが、ある番号以降の項が全て 0 となる実質有限列)に対応する特別の場合には、通常型母関数は多項式になる。このことは多くの有限列を、ポワンカレ多項式 などの母関数によって有効に解釈できるという点で重要である。
重要な母関数として、定数列 1, 1, 1, 1, ... の通常型母関数
∑ ∑ -->
n
=
0
∞ ∞ -->
x
n
=
1
1
− − -->
x
{\displaystyle \sum _{n=0}^{\infty }x^{n}={1 \over 1-x}}
がある。右辺の式は、左辺の冪級数に 1 − x を掛けるとその結果が定冪級数(つまり x 0 の項を除く全ての係数が 0 の級数)1 に一致することを確認することで正当化できる。もっといえば、このような性質を持つ冪級数は他に存在することはできず、したがって左辺の冪級数は形式的冪級数環に於ける 1 − x の乗法的逆元 を示している。
これを使えば、他のいくつかの列については、通常型母関数の閉じた式を容易に導出することができる。例えば、a を任意の定数とする等比数列 1, a , a 2 , a 3 , ... の母関数は
∑ ∑ -->
n
=
0
∞ ∞ -->
a
n
x
n
=
1
1
− − -->
a
x
{\displaystyle \sum _{n=0}^{\infty }a^{n}x^{n}={1 \over 1-ax}}
であり、特に a が −1 として
∑ ∑ -->
n
=
0
∞ ∞ -->
(
− − -->
1
)
n
x
n
=
1
1
+
x
{\displaystyle \sum _{n=0}^{\infty }(-1)^{n}x^{n}={1 \over 1+x}}
が得られる。x を x のある冪乗で置き換えると、列に規則的なギャップを導入することができる。例えば、1, 0, 1, 0, 1, 0, .... という列の母関数は
∑ ∑ -->
n
=
0
∞ ∞ -->
x
2
n
=
1
1
− − -->
x
2
{\displaystyle \sum _{n=0}^{\infty }x^{2n}={1 \over 1-x^{2}}}
で与えられる。最初の母関数の平方を計算すると、係数列が1, 2, 3, 4, 5, ... という数列を成すことは容易に確認できる。つまり、母関数について言えば
∑ ∑ -->
n
=
0
∞ ∞ -->
(
n
+
1
)
x
n
=
1
(
1
− − -->
x
)
2
{\displaystyle \sum _{n=0}^{\infty }(n+1)x^{n}={1 \over (1-x)^{2}}}
が成立する。また立方は係数列として三角数 1, 3, 6, 10, 15, 21, ... を持ち、n 番目の三角数は二項係数
(
n
+
2
2
)
{\displaystyle {\tbinom {n+2}{2}}}
であるから、
∑ ∑ -->
n
=
0
∞ ∞ -->
(
n
+
2
2
)
x
n
=
1
(
1
− − -->
x
)
3
{\displaystyle \sum _{n=0}^{\infty }{\tbinom {n+2}{2}}x^{n}={1 \over (1-x)^{3}}}
が得られる。また、
(
n
+
2
2
)
=
1
2
(
n
+
1
)
(
n
+
2
)
=
1
2
(
n
2
+
3
n
+
2
)
{\displaystyle {\binom {n+2}{2}}={\frac {1}{2}}{(n+1)(n+2)}={\frac {1}{2}}(n^{2}+3n+2)}
であることに注意すれば、上述の数列の母関数の線型結合 をとることにより、平方数 の列 0, 1, 4, 9, 16, ... の通常型母関数を
G
(
n
2
;
x
)
=
∑ ∑ -->
n
=
0
∞ ∞ -->
n
2
x
n
=
2
(
1
− − -->
x
)
3
− − -->
3
(
1
− − -->
x
)
2
+
1
1
− − -->
x
=
x
(
x
+
1
)
(
1
− − -->
x
)
3
{\displaystyle G(n^{2};x)=\sum _{n=0}^{\infty }n^{2}x^{n}={2 \over (1-x)^{3}}-{3 \over (1-x)^{2}}+{1 \over 1-x}={\frac {x(x+1)}{(1-x)^{3}}}}
と求めることができる。
有理関数
数列の通常型母関数が有理式 (2つの多項式の比)で表されるための必要十分条件は、その列が線型漸化式 を持つことである。これは、上述の例を一般化したものである。
畳み込み積
通常型母関数の間の乗法は、級数の離散畳み込み (コーシー積 )を生じる。
多変数母関数
多重添字をもつ級数に対して、多変数の母関数を定義することができる。これはしばしば超母関数 super generating function ) と呼ばれる。特に2変数の場合を2変数母関数 (bivariate generating function ) と呼ぶ。
例えば、(1 + x )n が固定された n に対する二項係数 の通常型母関数であるから、(n をも動かして)任意の k と n に対して二項係数
(
n
k
)
{\displaystyle {\tbinom {n}{k}}}
を生成する二変数母関数がどうなるのかと考えるのは自然な発想である。これを計算するためには、(1 + x )n 自身を n を添字とする数列と考え、それを係数に持ち、y を不定元とする母関数を求めればよい。a n の母関数はちょうど 1/(1 − ay ) に等しいから、求める二項係数の母関数は
1
1
− − -->
(
1
+
x
)
y
=
1
+
(
1
+
x
)
y
+
(
1
+
x
)
2
y
2
+
… … -->
{\displaystyle {\frac {1}{1-(1+x)y}}=1+(1+x)y+(1+x)^{2}y^{2}+\dots }
であり、x k y n の係数が二項係数
(
n
k
)
{\displaystyle {\tbinom {n}{k}}}
となる。
例
平方数 の列 a n = n 2 の各種母関数を以下に示す。
通常型母関数
G
(
n
2
;
x
)
=
∑ ∑ -->
n
=
0
∞ ∞ -->
n
2
x
n
=
x
(
x
+
1
)
(
1
− − -->
x
)
3
{\displaystyle G(n^{2};x)=\sum _{n=0}^{\infty }n^{2}x^{n}={\frac {x(x+1)}{(1-x)^{3}}}}
指数型母関数
E
G
(
n
2
;
x
)
=
∑ ∑ -->
n
=
0
∞ ∞ -->
n
2
x
n
n
!
=
x
(
x
+
1
)
e
x
{\displaystyle EG(n^{2};x)=\sum _{n=0}^{\infty }{\frac {n^{2}x^{n}}{n!}}=x(x+1)e^{x}}
ベル級数
f
p
(
x
)
=
∑ ∑ -->
n
=
0
∞ ∞ -->
p
2
n
x
n
=
1
1
− − -->
p
2
x
{\displaystyle f_{p}(x)=\sum _{n=0}^{\infty }p^{2n}x^{n}={\frac {1}{1-p^{2}x}}}
ディリクレ級数母関数
D
G
(
n
2
;
s
)
=
∑ ∑ -->
n
=
1
∞ ∞ -->
n
2
n
s
=
ζ ζ -->
(
s
− − -->
2
)
{\displaystyle DG(n^{2};s)=\sum _{n=1}^{\infty }{\frac {n^{2}}{n^{s}}}=\zeta (s-2)}
多変数母関数
多変数母関数(多変量生成関数)は、行と列の合計を与えられたとき、非負整数の分割表 の数を実際に計算する際に生じる。表に r 個の行と c 個の列があり、行の合計が
t
1
,
… … -->
t
r
{\displaystyle t_{1},\ldots t_{r}}
、列の合計が
s
1
,
… … -->
s
c
{\displaystyle s_{1},\ldots s_{c}}
とする。アービン・ジョン・グッド (英語版 ) によれば[ 2] 、次の式における
x
1
t
1
… … -->
x
r
t
r
y
1
s
1
… … -->
y
c
s
c
{\displaystyle x_{1}^{t_{1}}\ldots x_{r}^{t_{r}}y_{1}^{s_{1}}\ldots y_{c}^{s_{c}}}
の係数がその表の数である。
∏ ∏ -->
i
=
1
r
∏ ∏ -->
j
=
1
c
1
1
− − -->
x
i
y
j
{\displaystyle \prod _{i=1}^{r}\prod _{j=1}^{c}{\frac {1}{1-x_{i}y_{j}}}}
応用
母関数は次のような用途に使われる。
漸化式で与えられた数列に対して、その一般項の閉じた形の式を求める。たとえば、フィボナッチ数列 などについてこれを考えることができる。
数列に対して、それが満たす漸化式 を求める。母関数の形から漸化式をある程度予想できる[ 3] 。
数列の間に成立する関係を求める。二つの数列の母関数が似た形であれば、列自体にもなんらかの関係があるかもしれない。
数列の漸近的な挙動を調べる。これには複素関数論の知識が用いられる。
数列の間で満たされる関係式(恒等式)を求める。オイラーの分割恒等式 はその一例である。
組合せ論 における数え上げ 問題を解いて、それらの解を結びつける。ルーク多項式 (英語版 ) は組合せ論における応用例である。
無限和を評価する。
その他の母関数
さらに複雑な母関数で生成する多項式列として、次のようなものがある。
類似の概念
多項式補間 は、(係数ではなく)値を数列で与えられたとき、その多項式を求める問題である。また、これを可換環論 において抽象化したものがヒルベルト多項式 である。
関連項目
脚注
参考文献
Wilf, Herbert S. (1994), Generatingfunctionology (Second ed.), Academic Press, ISBN 0-12-751956-4 , http://www.math.upenn.edu/%7Ewilf/DownldGF.html .
Knuth, Donald E. , “Section 1.2.9: Generating Functions”, The Art of Computer Programming , 1, Fundamental Algorithms (Third ed.), Addison-Wesley, pp. 87–96, ISBN 0-201-89683-4
Graham, Ronald L.; Knuth, Donald E.; Patashnik, Oren, “Chapter 7: Generating Functions”, Concrete Mathematics . A foundation for computer science (Second Edition ed.), Addison-Wesley, pp. 320–380, ISBN 0-201-55802-5
外部リンク