Funkcja tworząca (funkcja generująca )
G
(
x
)
{\displaystyle G(x)}
dla ciągu
(
g
n
)
=
(
g
0
,
g
1
,
g
2
,
…
)
{\displaystyle (g_{n})=(g_{0},g_{1},g_{2},\ldots )}
jest zdefiniowana jako
G
(
x
)
=
∑
n
=
0
∞
g
n
x
n
.
{\displaystyle G(x)=\sum _{n=0}^{\infty }g_{n}x^{n}.}
Ciąg
(
g
n
)
{\displaystyle (g_{n})}
może być w szczególnym przypadku ciągiem liczbowym (wartości są liczbami naturalnymi , jak to się dzieje, gdy odpowiada on zliczaniu obiektów kombinatorycznych, rzeczywistymi , zespolonymi ) jednak w ogólności jego wartości mogą być inne (np. funkcje ).
Tymczasem jednomiany
x
n
{\displaystyle x^{n}}
mogą być rozpatrywane jako wyrazy pierścienia szeregu formalnego (gdy interesują nas wyłącznie algebraiczne właściwości funkcji tworzącej) albo liczby (rzeczywiste lub zespolone).
Funkcje tworzące wykorzystywane są w wielu różnych działach matematyki. Jednym z najważniejszych ich zastosowań jest przydatność do rozwiązywania równań rekurencyjnych . Bardzo dobrym przykładem stosowanych technik jest wyprowadzenie wzoru na
n
{\displaystyle n}
-ty wyraz ciągu Fibonacciego .
Częstym zastosowaniem funkcji tworzących jest zliczanie pewnych obiektów kombinatorycznych . Klasyczną metodą jest ułożenie najpierw równania rekurencyjnego na zliczane obiekty, a potem rozwiązanie go z użyciem funkcji tworzących. Przykładem takiego rozumowania jest m.in. wyprowadzenie wzoru na liczby Catalana .
Funkcje tworzące stosuje się również do opisu szeregów funkcji, np. wielomianów Hermite’a .
Ciąg jedynek i ciąg liczb naturalnych
edytuj
Funkcją tworzącą ciągu złożonego z samych jedynek
(
1
,
1
,
1
,
…
)
{\displaystyle \left(1,1,1,\ldots \right)}
jest funkcja
G
(
x
)
=
∑
n
=
0
∞
x
n
=
1
1
−
x
.
{\displaystyle G(x)=\sum _{n=0}^{\infty }x^{n}={\frac {1}{1-x}}.}
Przykład ten jest ilustracją bardzo ważnego założenia w teorii funkcji tworzących, mianowicie – ze względu na to, że szeregi w funkcjach tworzących są tylko szeregami formalnymi, to aspekt zbieżności jest z tego punktu widzenia nieistotny. Powyższy szereg jest zbieżny tylko dla
|
x
|
<
1.
{\displaystyle |x|<1.}
Funkcją tworzącą ciągu kolejnych liczb naturalnych
(
1
,
2
,
3
,
…
)
{\displaystyle (1,2,3,\ldots )}
jest funkcja
G
(
x
)
=
∑
n
=
0
∞
(
n
+
1
)
x
n
=
1
(
1
−
x
)
2
.
{\displaystyle G(x)=\sum _{n=0}^{\infty }(n+1)x^{n}={\frac {1}{(1-x)^{2}}}.}
Dzieje się tak, gdyż
∑
n
=
0
∞
(
n
+
1
)
x
n
=
∑
n
=
0
∞
d
d
x
x
n
+
1
=
d
d
x
∑
n
=
0
∞
x
n
+
1
=
d
d
x
(
x
1
−
x
)
=
1
(
1
−
x
)
2
.
{\displaystyle \sum _{n=0}^{\infty }(n+1)x^{n}=\sum _{n=0}^{\infty }{\frac {d}{dx}}x^{n+1}={\frac {d}{dx}}\sum _{n=0}^{\infty }x^{n+1}={\frac {d}{dx}}\left({\frac {x}{1-x}}\right)={\frac {1}{(1-x)^{2}}}.}
Funkcją tworzącą dwumianu Newtona
(
n
k
)
{\displaystyle {\tbinom {n}{k}}}
(ze względu na
k
,
{\displaystyle k,}
przy ustalonym
n
{\displaystyle n}
) jest
G
n
(
x
)
=
(
1
+
x
)
n
.
{\displaystyle G_{n}(x)=(1+x)^{n}.}
Można rozważać funkcje tworzące od dwóch zmiennych. W szczególności potraktujmy powyższe wyrażenia jako ciąg, z którego chcemy uzyskać funkcję tworzącą
G
(
x
,
y
)
=
∑
n
=
0
∞
(
1
+
x
)
n
y
n
=
1
1
−
y
(
1
+
x
)
.
{\displaystyle G(x,y)=\sum _{n=0}^{\infty }(1+x)^{n}y^{n}={\frac {1}{1-y(1+x)}}.}
Ciąg Fibonacciego określony jest wzorem rekurencyjnym
{
F
0
=
0
F
1
=
1
F
n
=
F
n
−
1
+
F
n
−
2
dla
n
≥
2.
{\displaystyle {\begin{cases}F_{0}=0\\F_{1}=1\\F_{n}=F_{n-1}+F_{n-2}{\mbox{ dla }}n\geq 2.\end{cases}}}
Niech
F
(
x
)
{\displaystyle F(x)}
będzie funkcją tworzącą tego ciągu, wtedy[1]
F
(
x
)
=
∑
n
=
0
∞
F
n
x
n
=
F
0
x
0
+
∑
n
=
1
∞
F
n
x
n
=
∑
n
=
1
∞
F
n
x
n
.
{\displaystyle F(x)=\sum _{n=0}^{\infty }F_{n}x^{n}=F_{0}x^{0}+\sum _{n=1}^{\infty }F_{n}x^{n}=\sum _{n=1}^{\infty }F_{n}x^{n}.}
Zauważmy, że
F
(
x
)
=
∑
n
=
1
∞
F
n
x
n
=
F
1
x
1
+
∑
n
=
2
∞
(
F
n
−
1
+
F
n
−
2
)
x
n
.
{\displaystyle F(x)=\sum _{n=1}^{\infty }F_{n}x^{n}=F_{1}x^{1}+\sum _{n=2}^{\infty }(F_{n-1}+F_{n-2})x^{n}.}
teraz wyciągnijmy
x
{\displaystyle x}
w odpowiedniej potędze przed znak sumy i otrzymamy
F
(
x
)
=
F
1
x
+
x
∑
n
=
2
∞
(
F
n
−
1
x
n
−
1
)
+
x
2
∑
n
=
2
∞
(
F
n
−
2
x
n
−
2
)
,
{\displaystyle F(x)=F_{1}x+x\sum _{n=2}^{\infty }(F_{n-1}x^{n-1})+x^{2}\sum _{n=2}^{\infty }(F_{n-2}x^{n-2}),}
a jak już zauważyliśmy
∑
n
=
0
∞
F
n
x
n
=
∑
n
=
1
∞
F
n
x
n
,
{\displaystyle \sum _{n=0}^{\infty }F_{n}x^{n}=\sum _{n=1}^{\infty }F_{n}x^{n},}
stąd mamy
F
(
x
)
=
F
1
x
+
x
∑
n
=
1
∞
(
F
n
x
n
)
+
x
2
∑
n
=
0
∞
(
F
n
x
n
)
=
x
+
x
F
(
x
)
+
x
2
F
(
x
)
.
{\displaystyle F(x)=F_{1}x+x\sum _{n=1}^{\infty }(F_{n}x^{n})+x^{2}\sum _{n=0}^{\infty }(F_{n}x^{n})=x+xF(x)+x^{2}F(x).}
Po przekształceniu otrzymamy[1] :
F
(
x
)
=
x
1
−
x
−
x
2
.
{\displaystyle F(x)={\frac {x}{1-x-x^{2}}}.}
Wielomian
1
−
x
−
x
2
{\displaystyle 1-x-x^{2}}
ma dwa pierwiastki
x
1
=
−
5
−
1
2
,
x
2
=
5
−
1
2
.
{\displaystyle x_{1}={\tfrac {-{\sqrt {5}}-1}{2}},x_{2}={\tfrac {{\sqrt {5}}-1}{2}}.}
Funkcję
F
(
x
)
{\displaystyle F(x)}
można więc zapisać w następujący sposób:
F
(
x
)
=
x
(
x
x
1
−
1
)
(
x
x
2
−
1
)
,
{\displaystyle F(x)={\frac {x}{({\tfrac {x}{x_{1}}}-1)({\tfrac {x}{x_{2}}}-1)}},}
Przyjmując
λ
1
=
1
x
1
,
λ
2
=
1
x
2
{\displaystyle \lambda _{1}={\tfrac {1}{x_{1}}},\lambda _{2}={\tfrac {1}{x_{2}}}}
otrzymujemy po uprzednim rozkładzie na ułamki proste :
F
(
x
)
=
x
(
1
−
λ
1
x
)
(
1
−
λ
2
x
)
=
1
5
(
1
1
−
λ
1
x
−
1
1
−
λ
2
x
)
=
1
5
(
∑
n
=
0
∞
x
n
λ
1
n
−
∑
n
=
0
∞
x
n
λ
2
n
)
=
∑
n
=
0
∞
(
1
5
(
λ
1
n
−
λ
2
n
)
)
x
n
.
{\displaystyle F(x)={\frac {x}{(1-\lambda _{1}x)(1-\lambda _{2}x)}}={\frac {1}{\sqrt {5}}}\left({\frac {1}{1-\lambda _{1}x}}-{\frac {1}{1-\lambda _{2}x}}\right)={\frac {1}{\sqrt {5}}}\left(\sum _{n=0}^{\infty }x^{n}\lambda _{1}^{n}-\sum _{n=0}^{\infty }x^{n}\lambda _{2}^{n}\right)=\sum _{n=0}^{\infty }\left({\frac {1}{\sqrt {5}}}(\lambda _{1}^{n}-\lambda _{2}^{n})\right)x^{n}.}
Stąd szukany
n
{\displaystyle n}
-ty wyraz można zapisać z pominięciem rekurencji:
F
n
=
1
5
(
λ
1
n
−
λ
2
n
)
=
1
5
(
(
1
+
5
2
)
n
−
(
1
−
5
2
)
n
)
.
{\displaystyle F_{n}={\frac {1}{\sqrt {5}}}(\lambda _{1}^{n}-\lambda _{2}^{n})={\frac {1}{\sqrt {5}}}\left(\left({\frac {1+{\sqrt {5}}}{2}}\right)^{n}-\left({\frac {1-{\sqrt {5}}}{2}}\right)^{n}\right).}
Operacje związane z funkcjami tworzącymi
edytuj
α
∑
n
=
0
∞
a
n
x
n
+
β
∑
n
=
0
∞
b
n
x
n
=
∑
n
=
0
∞
(
α
a
n
+
β
b
n
)
x
n
{\displaystyle \alpha \sum \limits _{n=0}^{\infty }a_{n}x^{n}+\beta \sum \limits _{n=0}^{\infty }b_{n}x^{n}=\sum \limits _{n=0}^{\infty }(\alpha a_{n}+\beta b_{n})x^{n}}
x
m
∑
n
=
0
∞
a
n
x
n
=
∑
n
=
m
∞
a
n
−
m
x
n
{\displaystyle x^{m}\sum \limits _{n=0}^{\infty }a_{n}x^{n}=\sum \limits _{n=m}^{\infty }a_{n-m}x^{n}}
c
⋅
A
(
x
)
=
∑
n
=
0
∞
(
c
a
n
)
x
n
,
c
∈
C
{\displaystyle c\cdot A(x)=\sum \limits _{n=0}^{\infty }(ca_{n})x^{n},\;c\in \mathbb {C} }
∑
n
=
0
∞
a
n
x
n
⋅
∑
n
=
0
∞
b
n
x
n
=
∑
n
=
0
∞
c
n
x
n
,
{\displaystyle \sum \limits _{n=0}^{\infty }a_{n}x^{n}\cdot \sum \limits _{n=0}^{\infty }b_{n}x^{n}=\sum \limits _{n=0}^{\infty }c_{n}x^{n},}
gdzie
c
n
=
∑
k
=
0
n
a
k
b
n
−
k
{\displaystyle c_{n}=\sum \limits _{k=0}^{n}a_{k}b_{n-k}}
(
A
(
x
)
)
′
=
∑
n
=
0
∞
n
a
n
x
n
−
1
{\displaystyle (A(x))'=\sum \limits _{n=0}^{\infty }na_{n}x^{n-1}}
∫
0
x
A
(
t
)
d
t
=
∑
n
=
1
∞
1
n
a
n
−
1
x
n
{\displaystyle \int \limits _{0}^{x}A(t)\;dt=\sum \limits _{n=1}^{\infty }{\frac {1}{n}}a_{n-1}x^{n}}
Czasem okazuje się, że wygodniejsze do rozważania są pewne modyfikacje funkcji tworzących. Jedną z bardziej znanych są wykładnicze funkcje tworzące. Wykładniczą funkcję tworzącą dla ciągu liczb
(
g
0
,
g
1
,
g
2
,
…
)
{\displaystyle \left(g_{0},g_{1},g_{2},\ldots \right)}
definiuje się jako funkcję
G
(
x
)
=
∑
n
=
0
∞
g
n
x
n
n
!
.
{\displaystyle G(x)=\sum _{n=0}^{\infty }g_{n}{\frac {x^{n}}{n!}}.}
Rozważane są także funkcje tworzące Dirichleta zdefiniowane dla powyższego ciągu jako
G
(
x
)
=
∑
n
=
1
∞
g
n
n
x
.
{\displaystyle G(x)=\sum _{n=1}^{\infty }{\frac {g_{n}}{n^{x}}}.}
Przykładowo funkcją tworzącą Dirichleta dla ciągu
(
1
,
1
,
1
,
…
)
{\displaystyle \left(1,1,1,\ldots \right)}
jest znana funkcja dzeta Riemanna .
Funkcje tworzące znanych ciągów
edytuj
∑
n
⩾
0
[
n
m
]
x
n
=
x
m
(
1
−
x
)
(
1
−
2
x
)
…
(
1
−
m
x
)
{\displaystyle \sum _{n\geqslant 0}\left[{\begin{matrix}n\\m\end{matrix}}\right]x^{n}={\frac {x^{m}}{(1-x)(1-2x)\ldots (1-mx)}}}
Funkcja tworząca ciągu liczb Stirlinga II rodzaju:
∑
n
⩾
0
{
n
m
}
x
n
=
x
(
x
+
1
)
…
(
x
+
m
−
1
)
=
x
m
¯
{\displaystyle \sum _{n\geqslant 0}\left\{{\begin{matrix}n\\m\end{matrix}}\right\}x^{n}=x(x+1)\ldots (x+m-1)=x^{\bar {m}}}
∑
n
⩾
0
B
n
x
n
n
!
=
x
e
x
−
1
{\displaystyle \sum _{n\geqslant 0}B_{n}{\frac {x^{n}}{n!}}={\frac {x}{e^{x}-1}}}
Ronald L. Graham, Donald Knuth , Oren Patashnik, Matematyka konkretna , Wydawnictwo Naukowe PWN , Warszawa 2002, ISBN 83-01-13906-4 , rozdział 7.
Herbet S. Wilf, generatingfunctionology (Second Edition) , Academic Press, 1994, ISBN 0-12-751956-4 .