漸化式
数学における漸化式(ぜんかしき、recurrence relation; 再帰関係式)は、各項がそれ以前の項の関数として定まるという意味で数列を再帰的に定める等式である。
ある種の漸化式はしばしば差分方程式 (difference equation) と呼ばれる。また、「差分方程式」という言葉を単に「漸化式」と同義なものとして扱うことも多い。
漸化式の例として、ロジスティック写像
x_{n+1} = r x_n (1 - x_n)
が挙げられる。このような単純な形の漸化式が、しばしば非常に複雑な(カオス的な)挙動を示すことがあり、このような現象についての研究は非線型解析学などと呼ばれる分野を形成している。
漸化式を解くとは、 添字 n に関する非再帰的な函数として、一般項を表す閉じた形の式を得ることをいう。
F_{n} = F_{n-1}+F_{n-2}
に初期値、F_0:=0,\ F_1:=1を与えて得られる。
この漸化式は、陽に書けば F_2=F_1+F_0,\ F_3=F_2+F_1,\ F_4=F_3+F_2,\dots といった無限個の式と同じである。
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
となる。後述するような方法で漸化式を解けば、特性多項式(固有多項式) t2 - t - 1 の二つの根を用いたビネーの公式が得られる。フィボナッチ数列の母関数は
\frac{t}{1-t-t^2}
という有理式である。
定数係数の d-階斉次線型漸化式は、一般に
a_n = c_1a_{n-1} + c_2a_{n-2}+\cdots+c_da_{n-d}
の形に表される式で、d 個の係数 ci はすべての i について定数となるものである。
一般にd-階斉次線型漸化式の解は、異なる公比をもつ d-個の幾何数列の和として表される。例外は、それらの幾何数列の公比を与える方程式の根が重根を持つ場合である。このように幾何数列の和として書かれた式をビネーの公式 (Binet's formula) という(ただし「ビネーの公式」という名称は、フィボナッチ数列の一般項を二つの冪数列の和として表す式の意味で用いられることのほうが多い)。
もう少し詳しく言えば、この線型漸化式は各 n(> d − 1) に対する無限本の線型方程式に関する連立方程式であり、この形の漸化式を満たす列は線形回帰数列 (linear recursive sequence) と呼ばれ、あるいは短く "LRS" とも呼ばれる。d-階の線型再帰列は初期値 a0, ..., ad−1 を任意に選ぶ分だけの自由度 d を持ち、それら初期値に対して一意に決定される。
この形の線型漸化式と同じ係数を持つ、漸化式の固有多項式または特性多項式 (characteristic polynomial) あるいは補助多項式 (auxiliary polynomial) と呼ばれる多項式
p(t):= t^d - c_1t^{d-1} - c_2t^{d-2}-\cdots-c_{d}
は、その d 個の根が漸化式を満たす数列を求め、理解するのにきわめて重要な役割を果たす。
線型再帰列は、その母函数が有理函数となるような数列として特徴付けられる。母函数の分母は(適当な変換をうける違いを除いて)特性多項式であり、分子は初期値から決まる。
もっとも単純なものは、an = an−d なる周期数列 a0, a1, ..., ad−1, a0, a1, ... の場合であり、この列の母函数は幾何数列の和
\begin{align}
&\frac{a_0 + a_1 x^1 + \cdots + a_{d-1}x^{d-1}{1-x^d} \\[9pt]
&= \left(a_0 + a_1 x^1 + \cdots + a_{d-1}x^{d-1}\right) \\
& \qquad + \left(a_0 + a_1 x^1 + \cdots + a_{d-1}x^{d-1}\right)x^d \\
& \qquad + \left(a_0 + a_1 x^1 + \cdots + a_{d-1}x^{d-1}\right)x^{2d} + \cdots
\end{align}
として表される。もっと一般に、漸化式
a_n = c_1a_{n-1} + c_2a_{n-2}+\cdots+c_da_{n-d}
a_0 + a_1x^1 + a_2 x^2 + \cdots
が与えられたとき、多項式
1- c_1x^1 - c_2 x^2 - \cdots - c_dx^d
を使って、母函数級数の ad 以降の係数を消去することができる。つまり、母函数に先の多項式を掛け合わせれば
b_n := a_n - c_1 a_{n-1} - c_2 a_{n-2} - \cdots - c_d a_{n-d}
が xn の係数となり、これは特に n ≥ d のとき(漸化式によって)0 となる。したがって、
(a_0 + a_1x^1 + a_2 x^2 + \cdots {} ) (1- c_1x^1 - c_2 x^2 - \cdots - c_dx^d) = (b_0 + b_1x^1 + b_2 x^2 + \cdots + b_{d-1} x^{d-1})
が成立し、両辺を割り算すれば
a_0 + a_1x^1 + a_2 x^2 + \cdots  =
\frac{b_0 + b_1x^1 + b_2 x^2 + \cdots + b_{d-1} x^{d-1}{1- c_1x^1 - c_2 x^2 - \cdots - c_dx^d}
という母函数の有理式表示を得る。
分母 xdp(1/x) は特性多項式を変換したもの(あるいは同じことだが、係数の順番を逆順にしたもの)である。これに何かを掛けたものを使うこともできるが、特性多項式から簡単に求められて、b0 = a0 となるように正規化してある。
実数列 (an)n=1∞ が与えられたとき、この数列の第一階差 (first difference) Δ(an) は
\Delta(a_n) := a_{n+1} - a_n
で与えられ、第二階差 (second difference) Δ2(an) が
\Delta^2(a_n) := \Delta(a_{n+1}) - \Delta(a_n)
\Delta^2(a_n) := a_{n+2} - 2a_{n+1} + a_n
で与えられる。もっと一般に、数列 (an) の第 k-階差 (kth difference) Δk(an) が
\Delta^k(a_n) := \Delta^{k-1}(a_{n+1}) - \Delta^{k-1}(a_n)
で帰納的に定義される。狭い意味での差分方程式とは数列 (an) およびその各階の階差数列との間に成り立つ等式のことをいう。広い意味では「差分方程式」を「漸化式」と同義に用いる(たとえば有理差分方程式および線型差分方程式を参照)。
線型漸化式は狭い意味での差分方程式であり、逆もいえる。それはこれらが単純かつ共通した形の再帰性をもつからであり、文献によっては両者を逆に呼んでいるものもある。たとえば差分方程式
3\Delta^2(a_n) + 2\Delta(a_n) + 7a_n = 0
は、漸化式
3a_{n+2} = 4a_{n+1} - 8a_n
と同値である。よって、多くの漸化式は差分方程式として読み替えて解くことができるし、差分方程式ならば常微分方程式の解法と類似の手法で解くことができる。しかし、アッカーマン数などは差分方程式に直すことが非常に困難であり、微分方程式の観点から得られるものは少ない。
このような微分方程式に対する微分方程式論の一意化については時間スケール微分積分学を参照せよ。
微分方程式に対をなすように積分方程式が考えられるのと同様、差分方程式の対となる和分方程式が考えられる。
一変数(一元)漸化式は(一次元整格子点 (grid) の上で定義される函数としての)数列について記述するものである。多変数(n-元)漸化式は同様に n-次元整格子点 (n-grid) 上で定まる概念であると理解することができる。n-次元整格子点上で定義される函数(n-重数列)についても偏差分方程式 (partial difference equations) を考えることができる。
一階の漸化式については特段の理論を要しない。漸化式
a_{n}=r a_{n-1}
は明らかに初期値 a0 = 1 に対して an = rn を解にもち、一般に a0 = k とすれば一般解 an = krn が得られる。この漸化式の特性多項式を 0 に等しいとおいて得られる特性方程式(固有方程式)は、単に t − r = 0 で与えられることに注意。
高階の漸化式の解は、しばしば an = rn がちょうど t = r が特性多項式の根となるような漸化式の解となるという事実を用いて、機械的に求めることができる。方法としては直接、あるいは母函数(形式冪級数)、行列などを用いる。
a_{n}=Aa_{n-1}+Ba_{n-2}
という形の漸化式を考えよう。この漸化式が an = rn と同じ形の解の一般形をもつのはどのようなときだろうか。実際に代入してみれば
r^{n}=Ar^{n-1}+Br^{n-2}
が任意の n(> 1) について成り立たなければならないことがわかる。両辺を rn−2 で割れば、意味はそのままに方程式 r2 − Ar − B = 0 に簡約することができる。これがこの漸化式の特性方程式である。これを r について解けば、二つの根 λ1, λ2 が得られる。これらの根は、特性方程式あるいは漸化式の特性根あるいは固有値として知られるものである。異なる解が得られるかは特性根の様子に依存するが、二つの特性根が相異なるならば、一般解
a_n = C\lambda_1^n+D\lambda_2^n
が得られる。一方、特性根が重根 (A2 + 4B = 0) のとき、
a_n = C\lambda^n+Dn\lambda^n
が一般解を与える。これらは今考えている漸化式の解を全て尽くしており、二つの定数 C, D は初期条件 a0, a1 の選び方に依存して一意に決まり、これにより解がひとつに特定される。
特性根が複素数となる場合は(もちろん一般解のパラメータ C, D も複素数値となるが)、三角函数を用いた形に書けば、複素数を使用しない形にすることができる。この場合は特性根を λk = α ± β(各 k = 1, 2 に ± の何れか一方をそれぞれ割り当てる)の形に書いてやれば、たとえば an = Cλ1n + Dλ2n の形の一般解が
a_n = 2 M^n(E\cos(n\theta) + F\sin(n\theta)) = 2GM^{n}\cos(n\theta - \delta)
の形に書きなおせることが示せる。ここで、各定数は
\begin{align}
& M := \sqrt{\alpha^2+\beta^2},\quad \cos\theta := \frac{\alpha}{M},\quad \sin\theta := \frac{\beta}{M}, \\
& C,D := E \mp F i,\\
& G := \sqrt{E^2+F^2},\quad \cos\delta := \frac{E}{G},\quad \sin\delta := \frac{F}{G}
\end{align}
で与えられるものである。E, F(あるいは同じことだが G, δ)は初期条件から決まる実定数である。
注意すべきは、特性根が相異なる実根の場合も、実重根の場合も、互いに共軛な複素根の場合も、すべての場合で方程式が安定である(つまり、変数 a が特定の値(特に 0)に収束する)ための必要十分条件は二つの特性根の絶対値が「ともに」1 より小さいこと、となることである。今考えている二階漸化式の場合、特性根に関するこの条件は |A| < 1 − B < 2 に同値であることが示せる。
上記の例は定数項の無い斉次の場合であった。定数項 K を加えて、非斉次の場合の漸化式
b_{n}=Ab_{n-1}+Bb_{n-2}+K \,
を考えよう。これは次のようにして斉次の場合に帰着することができる。不動点 b∗ は bn = bn−1 = bn−2 = b* と置くことによって、
b^{*} = \frac{K}{1-A-B}
と求められる。これにより、先ほどの非斉次漸化式は
[b_{n}-b^{*}]=A[b_{n-1}-b^{*}]+B[b_{n-2}-b^{*}]
なる形の斉次漸化式に書き直すことができる(これは上述のように解くことができる)。
二階の場合に特性根の言葉で述べた安定性条件は、一般の n-階でもやはり有効であることに注意。つまり漸化式の解が安定であるための必要十分条件は、漸化式の特性多項式の全ての根が 1 より小さい絶対値を持つことである。
線型漸化式 Tn = cd−1Tn−1 + cd−2Tn−2 + … + c0Tn−d が与えられたとき、その特性多項式のコンパニオン行列の転置
\begin{pmatrix}
0 & 1 & 0 & \cdots & 0\\
0 & 0 & 1 & \cdots & 0\\
\vdots & \vdots & \vdots & \ddots & \vdots\\
0 & 0 & 0 & \cdots & 1\\
-c_0 & -c_1 & -c_2 & \cdots & -c_{d-1}
\end{pmatrix}
を C とすると、明らかに
\begin{pmatrix}a_n\\ \vdots\\ a_{n+(d-1)}\end{pmatrix} = C^n \begin{pmatrix} a_0 \\ \vdots \\ a_{d-1} \end{pmatrix}
が成り立つ。固有値 λ1, ..., λd に対応する固有基底 v1, ..., vd を決めれば、線型再帰列の初期値を固有ベクトルの線型結合
\begin{pmatrix} a_0 \\ \vdots \\ a_{d-1} \end{pmatrix} = b_1v_1 + \cdots + b_dv_d
として表せるので、結局
\begin{pmatrix} a_n \\ \vdots \\ a_{n+(d-1)}\end{pmatrix} = C^n \begin{pmatrix} a_0 \\ \vdots \\ a_{d-1}\end{pmatrix} = C^n (b_1v_1 + \cdots + b_dv_d) = \lambda_1^nb_1v_1 + \cdots + \lambda_d^n b_dv_d
となることがわかる。行列を用いたこの記述は、本質的には既に述べた一般的方法となんらかわるものではないが、より簡潔である。また、行列を用いた記述は
\begin{cases} a_n = a_{n-1}-b_{n-1}\\ b_n=2a_{n-1}+b_{n-1}\end{cases}
のような連立漸化式に対してもなお有効である。
ある種の差分方程式、とくに定数係数線型差分方程式は、z-変換を用いて解くことができる。z-変換は積分変換の一種で代数的操作がしやすく、解がより容易に求まる。解が直接には、まったくというわけではないが不可能な場合でも、積分変換をうまく選べば容易に解けることもある。
階数 d の定数係数斉次線型漸化式が与えられたとき、p(t) をその特性多項式
t^d - c_1t^{d-1} - c_2t^{d-2}-\cdots-c_{d}
とし、λ を重複度 r の特性根とする(つまり (t − λ)r が p(t) を割り切る)。このとき、
r 個の数列 λn, nλn, n2λn, ..., nr−1λn は与えられた漸化式をおのおの満たす。これを p(t) の相異なる全ての根 λ に亘って考えたものは、与えられた漸化式の任意の解を生成する。
この定理の帰結として、定数係数斉次線型漸化式は次の手順に従って解くことができる。
漸化式の特性多項式 p(t) を求める。
p(t) の根とその重複度を求める。
an を未定係数 bi を持つ(上で述べたように重複度を考慮した)全ての根の冪の線型結合 \begin{align} a_n =
&(b_1\lambda_1^n + b_2n\lambda_1^n + \cdots + b_{r}n^{r-1}\lambda_1^n)\\
& \quad + \cdots +(b_{d-q+1}\lambda_{*}^n + b_{d-q+2}n\lambda_{*}^n + \cdots + b_{d}n^{q-1}\lambda_{*}^n)
\end{align}として書く(q は λ* の重複度である)。これがもとの漸化式の一般解を与えるものとなる。
前段の一般解で n = 0, 1, ..., d として a0, a1, ..., ad をもとの漸化式における(初期値として与えられている)既知の a0, a1, ..., ad に一致させる。ただしここで、もとの漸化式の an の値として連続した番号のものでなくとも、どこでもいいから d 個わかってさえいればいいということには注意(つまり、考えている漸化式が三階であれば、たとえば a0, a1 と a4 を使うことができる)。これにより、d 個の未知数を含む d 本の連立一次方程式が得られる。これを一般解における未定係数 b1 , b2, ..., bd に対して解いて、一般解に代入してもとの漸化式の特殊解を得、それらがもとの漸化式の初期条件を満たす(したがって任意の a0, a1, a2, ... についてもとの漸化式からえられる値に一致する)ことを確かめる。
興味深いのは、この方法が線型微分方程式の解法とよく似ていることである。定数係数線型微分方程式で用いられる解法では、λ を複素数として eλ を解を求めたい方程式に代入し、方程式を満足する複素数 λ を決定する(して λieλ の線型結合を考える)。
これは偶然の一致ではない。線型微分方程式の解のテイラー級数
\sum_{n=0}^{\infin} \frac{f^{(n)}(a)}{n!} (x-a)^{n}
を考えれば、この級数の係数は f(x) の n-階導函数の x = a における値であることがわかる。与えられた微分方程式は、この級数の係数の間に成り立つ線型漸化式を導く。
この同値性は線型微分方程式の冪級数解の係数に対する漸化式を直ちに解くために利用できる。方程式は適当な多項式を掛けて点 0 における初項が 0 でないようにしておく。対応規則は
y^{(k)} \to  f(n+k)
x^m*y^{(k)} \to n(n-1)(n-m+1)f(n+k-m)
で与えられる。
例: 方程式
(x^2 + 3x -4)y -(3x+1)y + 2y = 0
のテイラー級数解の係数の満たす漸化式は
n(n-1)f(n+1) + 3nf(n+2) -4f(n+3) -3nf(n+1) -f(n+2)+ 2f(n) = 0
で与えられる。整理すると、
-4f(n+3) +2nf(n+2) + n(n-4)f(n+1) +2f(n) = 0
となる。この例は非常に簡単に解くことができるふつうのクラスの微分方程式でも、冪級数解を用いた解法ではなんとも扱いづらいものとなってしまうことがあることを示すものとなっている。
例: 微分方程式
ay + by' +cy = 0
y = eax を解に持つ。この微分方程式をテイラー係数の満たす漸化式に書き換えれば
af(n+2) + bf(n+1) + cf(n) = 0
となる。eax の n-階導函数の点 x = 0 における値が an であることをみるのは易しい。
漸化式が非斉次の場合、特殊解は未定係数法で求めることができて、一般の解は対応する斉次漸化式の一般解と先ほど得た特殊解の和として得られる。非斉次漸化式のほかの解法としては、記号微分 (symbolic differentiation) の方法がある。たとえば、次のような漸化式
a_{n+1} = a_{n} + 1
を考える。これは非斉次の漸化式である。n → n + 1 と置き換えれば、漸化式
a_{n+2} = a_{n+1} + 1
を得る。もとの漸化式から辺々引いて整理すれば、
a_{n+2} = 2 a_{n+1} - a_{n}
が得られる。これは斉次の漸化式であるから、既に述べた方法によって解くことができる。一般に、線型漸化式が
a_{n+k} = \lambda_{k-1} a_{n+k-1} + \lambda_{k-2} a_{n+k-2} + \cdots + \lambda_1 a_{n+1} + \lambda_0 a_{n} + p(n)
という形(λ0, λ1, ..., λk−1 は定数の係数で、p(n) が非斉次成分)で与えられて、P(n) が r-次の多項式ならば、記号微分の方法を r 回適用することにより、この非斉次漸化式を斉次漸化式に帰着することができる。
多くの斉次線型差分方程式は一般化超幾何級数を使って解くことができる。その特殊な場合として、差分方程式から直交多項式系や特殊函数が解として現れてくる。たとえば、
J_{n+1}=\frac{2n}{z}J_n-J_{n-1}
J_n=J_n(z) \,,
によって与えられる。 一方、
(b-n)M_{n-1} +(2n-b-z)M_n - nM_{n+1}=0
M_n=M(n,b;z)
によって解ける。
w_{t+1} = \frac{aw_t+b}{cw_t+d}
というような形をしている。このような方程式は wt を、それ自身は線型に増加する別の変数 xt の非線型変換として書くことで解くことができる。したがって、xt に関する線型差分方程式を解くのに、標準的な方法が使える。
階数 d の線型漸化式
a_n = c_1a_{n-1} + c_2a_{n-2}+\dots+c_da_{n-d}
\lambda^{d} - c_1 \lambda^{d-1} - c_2 \lambda^{d-2} - \dots - c_d \lambda^{0} = 0
を持つ。この漸化式の再帰性が(反復適用によって一定の値に漸近的に収束するという意味で)安定であるための必要十分条件は、固有値(つまり特性方程式の根)の全てが(実数か複素数かに関わらず)1 よりも小さい絶対値を持つことである。
状態ベクトル x, 遷移行列 A をもつ一階の行列係数差分方程式
[x_t - x^*] = A[x_{t-1}-x^*]
で、x が定常状態ベクトル x∗ に漸近的に収斂するための必要十分条件は、遷移行列 A の全ての固有値が(それが実数か複素数かに関わらず)1 より小さい絶対値を持つことである。
x_n=f(x_{n-1})
を考える。この漸化式は(不動点 x∗ の十分近くにある点は不動点 x∗ に収斂するという意味で)局所安定であるための必要十分条件は、x∗ の近傍で f の傾きの絶対値が 1 よりも小さいこと、つまり
|f'(x^*)| < 1
が成り立つことである。非線型漸化式は複数の不動点を持つことができ、ある不動点は局所安定だが別の不動点は局所安定でないということも起こりうることに注意。f が連続なら隣接するふたつの不動点がともに局所安定となることはできない。
非線型漸化式は k > 1 なる k を周期とするサイクルをもつこともありうる。そのようなサイクルが(測度正の初期条件集合を吸引するという意味で)安定となる十分条件は、f の k 回合成
g(x) := f \circ f \circ \cdot \cdot \cdot \circ f(x)
| g' (x^*) | < 1
に従って局所安定となることである。ここで x∗ はサイクルの任意の点。
カオス的漸化式においては、変数 x がある有界領域に留まるが不動点にも吸引的サイクルにも収束しない。そのような方程式において任意の不動点やサイクルは不安定である。 ロジスティック写像、二進変換、テント写像なども参照。
y'(t) = f(t,y(t)),\quad y(t_0)=y_0
をオイラー法で解くとき、刻み幅を h とすると
y_0=y(t_0),\quad y_1=y(t_0+h),\quad y_2=y(t_0+2h),\quad \ldots
y_{n+1} = y_n + hf(t_n,y_n)
から計算する。一階線型方程式系は離散化の項に示されるような方法を用いて完全に解析的に離散化することができる。
最もよく知られた差分方程式のいくつかは、集団動態モデルの研究に起源を持つ。たとえば、フィボナッチ数はうさぎの個体数の増加モデルとして使われたことがある。
ロジスティック写像は人口増加モデルに直接使われたり、より詳しいモデルの雛形として使われたりする。この文脈でいくつかの差分方程式はしばしば、二者あるいはもっと多くの人口の相互作用モデルとして用いられる。たとえば宿主・寄生生物相互作用に対するニコルソン-ベイリーモデルは
\begin{cases}
N_{t+1} = \lambda N_t e^{-aP_t}\\
P_{t+1} = N_t(1-e^{-aP_t})
\end{cases}
で与えられる。Nt は宿主、Pt は寄生生物のそれぞれ時刻 t における個体数を表す。
積分差分方程式は空間的な生態学の重要な漸化式を形成する。このような、あるいはもっと他の差分方程式は一化性動態のモデリンクに特に適している。
デジタル信号処理では、漸化式はある時点の出力が新たな時点の入力となるシステムのフィードバックをモデル化することができる。したがって、無限衝撃応答 (IIR) デジタルフィルターなどを考えることができる。たとえば、遅延時間 T の「フィードフォーワード」IIR 櫛型フィルタは
y_t = (1 - \alpha) x_t + \alpha y_{t - T}
となる。ここで xt は時刻 t における入力で、yt は時刻 t における出力、α はどの程度の遅延信号を出力へフィードバックするかを制御するものである。ここからわかることとして
y_t = (1 - \alpha) x_t + \alpha ((1-\alpha) x_{t-T} + \alpha y_{t - 2T})
y_t = (1 - \alpha) x_t + (\alpha-\alpha^2) x_{t-T}  + \alpha^2 y_{t - 2T}
などが挙げられる。
漸化式、とくに線型漸化式は、理論経済学と実証経済学の双方にわたって広く用いられている。特にマクロ経済学では、エージェントの活動が遅延変数に依存する経済のさまざまな幅広い分野(金融部門、商品部門、労働者市場など)のモデルが展開されている。したがって、このモデルは、外生変数や遅延外生変数を使って(金利や実質GDPなどの)鍵となる変数の現在値に関して解かれる必要がある。時系列分析も参照されたい。