【组合数学:五】
线性齐次递推关系(下)
- 例子:递推关系
h n = 4 h n − 1 − 4 h n − 2 h_n=4h_{n-1}-4h_{n-2} hn=4hn−1−4hn−2
有特征方程
x 2 − 4 x + 4 = ( x − 2 ) 2 = 0 x^2-4x+4=(x-2)^2=0 x2−4x+4=(x−2)2=0
于是 2 2 2 是二重特征根。在这种情况下,变成
h n = c 1 2 n + c 2 2 n = c 2 n h_{n}=c_12^n+c_22^n=c2^n hn=c12n+c22n=c2n
其中 c = c 1 + c 2 c=c_1+c_2 c=c1+c2 是一个新常数。但这不总是可以做到的。假如初始值是 h 0 = 1 , h 1 = 3 h_0=1,h_1=3 h0=1,h1=3,那么容易得到 c c c 是无解的。
因此, h n = c 2 n h_n=c2^n hn=c2n 不是给定递推关系的通解。
某个特征根是重根,我们就需要寻找与这个根相关的其他解法。
下面证明 n 2 n n2^n n2n 也是一个解。
h n − 4 h n − 1 + 4 h n − 2 = n 2 n − 4 ( n − 1 ) 2 n − 1 + 4 ( n − 2 ) 2 n − 2 = 0 h_n-4h_{n-1}+4h_{n-2}=n2^n-4(n-1)2^{n-1}+4(n-2)2^{n-2}=0 hn−4hn−1+4hn−2=n2n−4(n−1)2n−1+4(n−2)2n−2=0
我们现在断言:
h n = c 1 2 n + c 2 n 2 n h_n=c_12^n+c_2n2^n hn=c12n+c2n2n
更一般的,如果 q q q (可能是复数) 是常系数线性齐次递推关系的特征方程的 s s s 重根,那么可以证明
h n = c 1 q n + c 2 n q n + c 3 n 2 q n + ⋯ + c s n s − 1 q n h_n=c_1q^n+c_2nq^n+c_3n^2q^n+\cdots+c_sn^{s-1}q^n hn=c1qn+c2nqn+c3n2qn+⋯+csns−1qn
对常数 c 1 , ⋯ , c s c_1,\cdots,c_s c1,⋯,cs 的每一种选择也是一个解 - 定理:设
q
1
,
⋯
,
q
t
q_1,\cdots,q_t
q1,⋯,qt 为常系数线性齐次递推关系
h n = a 1 h n − 1 + a 2 h n − 2 + ⋯ + a k h n − k , a k ≠ 0 ( n ≥ k ) h_n=a_1h_{n-1}+a_2h_{n-2}+\cdots+a_kh_{n-k},\quad a_k\ne 0\quad (n\ge k) hn=a1hn−1+a2hn−2+⋯+akhn−k,ak=0(n≥k)
的特征方程的互不相同的根。如果 q i q_i qi 是特征方程的 s i s_i si 重根,那么这个递推关系中对应于 q i q_i qi 的部分是:
H n ( i ) = ( c 1 + c 2 n + ⋯ + c s i n s i − 1 ) q i n H_{n}^{(i)}=(c_1+c_2n+\cdots+c_{s_i}n^{s_i-1})q_i^n Hn(i)=(c1+c2n+⋯+csinsi−1)qin
这个递推关系的通解是:
h n = H n ( 1 ) + H n ( 2 ) + ⋯ + H n ( t ) h_n=H_n^{(1)}+H_{n}^{(2)}+\cdots+H_n^{(t)} hn=Hn(1)+Hn(2)+⋯+Hn(t)
但在实际应用上,我们很难求得多项式的所有根而受到限制。
但是我们还是可以利用生成函数来求解(至少在理论上)任意 k k k 阶常系数线性齐次递推关系。
相应的生成函数是形如 p ( x ) / q ( x ) p(x)/q(x) p(x)/q(x) 的函数,其中 p ( x ) p(x) p(x) 是次数小于 k k k 的多项式,而 q ( x ) q(x) q(x) 是常数项等于 1 1 1 的 k k k 阶多项式。为了求数列项的生成函数,首先,我们用部分分式法把 p ( x ) / q ( x ) p(x)/q(x) p(x)/q(x) 表示成如下形式的代数分式的和
c ( 1 − r x ) t \frac{c}{(1-rx)^t} (1−rx)tc
其中 t t t 是正整数, r r r 是实数, c c c 是常数。于是我们可以求出该分式的幂级数,把项加起来,就得到生成函数的幂级数。 - 例子:设
h
0
,
h
1
,
⋯
,
h
n
,
⋯
h_0,h_1,\cdots,h_n,\cdots
h0,h1,⋯,hn,⋯ 是满足下面递推关系的数列:
h n + h n − 1 − 16 h n − 2 + 20 h n − 3 = 0 ( n ≥ 3 ) h_n+h_{n-1}-16h_{n-2}+20h_{n-3}=0\quad (n\ge 3) hn+hn−1−16hn−2+20hn−3=0(n≥3)
其中 h 0 = 0 , h 1 = 1 , h 2 = − 1 h_0=0,h_1=1,h_2=-1 h0=0,h1=1,h2=−1 。求 h n h_n hn 的通项公式。
设 g ( x ) = ∑ i = 0 ∞ h i x i g(x)=\sum_{i=0}^\infin h_ix^i g(x)=∑i=0∞hixi 是上述数列的生成函数。把下面四个方程
g ( x ) = h 0 + h 1 x + h 2 x 2 + ⋯ + h n x n + ⋯ x g ( x ) = h 0 x + h 1 x 2 + ⋯ + h n − 1 x n + ⋯ − 16 x 2 g ( x ) = − 16 h 0 x 2 − ⋯ − 16 h n − 2 x n − ⋯ 20 x 3 g ( x ) = 20 h 0 x 3 + ⋯ + 20 h n − 3 x n + ⋯ \begin{aligned} g(x)&=h_0+h_1x+h_2x^2+\cdots+h_nx^n+\cdots\\ xg(x)&=h_0x+h_1x^2+\cdots+h_{n-1}x^n+\cdots\\ -16x^2g(x)&=-16h_0x^2-\cdots-16h_{n-2}x^n-\cdots\\ 20x^3g(x)&=20h_0x^3+\cdots+20h_{n-3}x^n+\cdots \end{aligned} g(x)xg(x)−16x2g(x)20x3g(x)=h0+h1x+h2x2+⋯+hnxn+⋯=h0x+h1x2+⋯+hn−1xn+⋯=−16h0x2−⋯−16hn−2xn−⋯=20h0x3+⋯+20hn−3xn+⋯
加起来,我们得到
( 1 + x − 16 x 2 + 20 x 3 ) g ( x ) = h 0 + ( h 1 + h 0 ) x + ( h 2 + h 1 − 16 h 0 ) x 2 (1+x-16x^2+20x^3)g(x)=h_0+(h_1+h_0)x+(h_2+h_1-16h_0)x^2 (1+x−16x2+20x3)g(x)=h0+(h1+h0)x+(h2+h1−16h0)x2
带入 h 0 , h 1 , h 2 h_0,h_1,h_2 h0,h1,h2,我们得到
g ( x ) = x 1 + x − 16 x 2 + 20 x 3 g(x)=\frac{x}{1+x-16x^2+20x^3} g(x)=1+x−16x2+20x3x
我们看到分子 = ( 1 − 2 x ) 2 ( 1 + 5 x ) =(1-2x)^2(1+5x) =(1−2x)2(1+5x)。因此我们能得到:
g ( x ) = x 1 + x − 16 x 2 + 20 x 3 = c 1 1 − 2 x + c 2 ( 1 − 2 x ) 2 + c 3 1 + 5 x = − 2 / 49 1 − 2 x + 7 / 49 ( 1 − 2 x ) 2 + − 5 / 49 1 + 5 x g(x)=\frac{x}{1+x-16x^2+20x^3}=\frac{c_1}{1-2x}+\frac{c_2}{(1-2x)^2}+\frac{c_3}{1+5x}=\frac{-2/49}{1-2x}+\frac{7/49}{(1-2x)^2}+\frac{-5/49}{1+5x} g(x)=1+x−16x2+20x3x=1−2xc1+(1−2x)2c2+1+5xc3=1−2x−2/49+(1−2x)27/49+1+5x−5/49
然后,展开幂级数项,我们直接能得到:
g ( x ) = ∑ k = 0 ∞ ( − 2 49 2 k + 7 49 ( k + 1 ) 2 k − 5 49 ( − 5 ) k ) x k g(x)=\sum_{k=0}^\infin \Big( -\frac{2}{49}2^k + \frac{7}{49}(k+1)2^k -\frac{5}{49}(-5)^k \Big) x^k g(x)=k=0∑∞(−4922k+497(k+1)2k−495(−5)k)xk
所以我们就得到了:
h n = − 2 49 2 n + 7 49 ( n + 1 ) 2 n − 5 49 ( − 5 ) n h_n=-\frac{2}{49}2^n + \frac{7}{49}(n+1)2^n -\frac{5}{49}(-5)^n hn=−4922n+497(n+1)2n−495(−5)n
非齐次递推关系
- 通常情况下,非齐次递推关系更难求解,而且通常需要依赖于其非齐次部分。
- 例子:(汉诺塔问题)
设 h n h_n hn 是转移 n n n 个圆盘所需的移动次数。可以验证 h 0 = 0 , h 1 = 1 , h 2 = 3 h_0=0,h_1=1,h_2=3 h0=0,h1=1,h2=3
为了把 n n n 个圆盘转移到另一根柱子上,我们必须首先把一根珠子上顶部 n − 1 n-1 n−1 个盘子转移到穿有最大圆盘的那根珠子上。因此
h n = 2 h n − 1 + 1 ( n ≥ 1 ) h_n=2h_{n-1}+1\quad(n\ge 1) hn=2hn−1+1(n≥1)
通过反复递推带入,我们可以得到 h n = 2 n − 1 h_n=2^n-1 hn=2n−1 - 例子:(汉诺塔的生成函数解法)
首先我们有
h n = 2 h n − 1 + 1 ( n ≥ 1 ) , h 0 = 0 h_n=2h_{n-1}+1(n\ge 1),h_0=0 hn=2hn−1+1(n≥1),h0=0
设
g ( x ) = ∑ n = 0 ∞ h n x n g(x)=\sum_{n=0}^\infin h_nx^n g(x)=n=0∑∞hnxn
于是我们有:
g ( x ) = h 0 + h 1 x + h 2 x 2 + ⋯ + h n x n + ⋯ − 2 x g ( x ) = 2 h 0 x + ⋯ + 2 h n − 1 x n + ⋯ g(x)=h_0+h_1x+h_2x^2+\cdots+h_nx^n+\cdots\\ -2xg(x)=2h_0x+\cdots+2h_{n-1}x^n+\cdots g(x)=h0+h1x+h2x2+⋯+hnxn+⋯−2xg(x)=2h0x+⋯+2hn−1xn+⋯
把上面两个方程相加,得到
( 1 − 2 x ) g ( x ) = x + x 2 + ⋯ + x n + ⋯ = 1 1 − x (1-2x)g(x)=x+x^2+\cdots+x^n+\cdots=\frac{1}{1-x} (1−2x)g(x)=x+x2+⋯+xn+⋯=1−x1
因此
g ( x ) = x ( 1 − x ) ( 1 − 2 x ) = 1 1 − 2 x − 1 1 − x = ∑ n = 0 ∞ ( 2 n − 1 ) x n g(x)=\frac{x}{(1-x)(1-2x)}=\frac{1}{1-2x}-\frac{1}{1-x}=\sum_{n=0}^\infin (2^n-1)x^n g(x)=(1−x)(1−2x)x=1−2x1−1−x1=n=0∑∞(2n−1)xn
- 例子:求解:
h n = 3 h n − 1 − 4 n ( n ≥ 4 ) , h 0 = 2 h_n=3h_{n-1}-4n\quad(n\ge4),h_0=2 hn=3hn−1−4n(n≥4),h0=2
首先我们考虑相应的齐次递推关系 h n = 3 h n − 1 h_n=3h_{n-1} hn=3hn−1,它的通解是 h n = c 3 n ( n ≥ 1 ) h_n=c3^n\quad(n\ge 1) hn=c3n(n≥1)
下面我们要求原来的非齐次递推关系的一个特殊的解。对于适当的 r , s r,s r,s,我们尝试着寻找下面形式的一个解
h n = r n + s h_n=rn+s hn=rn+s
首先我们必须有
r n + s = 3 ( r ( n − 1 ) + s ) − 4 n r n + s = ( 3 r − 4 ) n + ( − 3 r + 3 s ) rn+s=3(r(n-1)+s)-4n\\ rn+s=(3r-4)n+(-3r+3s) rn+s=3(r(n−1)+s)−4nrn+s=(3r−4)n+(−3r+3s)
我们得到
r = 3 r − 4 s = − 3 r + 3 s r=3r-4\\ s=-3r+3s r=3r−4s=−3r+3s
因此得到 r = 2 , s = 3 r=2,s=3 r=2,s=3,且 h n = 2 n + 3 h_n=2n+3 hn=2n+3 满足。现在将齐次关系的通解与费其次关系的特殊解合成,得到
h n = c 3 n + 2 n + 3 h_n=c3^n+2n+3 hn=c3n+2n+3
根据初始条件 h 0 = 2 h_0=2 h0=2 得到 c = − 1 c=-1 c=−1,因此
h n = − 3 n + 2 n + 3 h_n=-3^n+2n+3 hn=−3n+2n+3
是原来问题的解。
- 上述解法是求解费其次微分方程方法的离散模式。总结如下:
求齐次关系的通解
求非齐次关系的一个特殊解
将通解和特殊解合成,确定通解中的常数值
- 如果
b
n
b_n
bn 是
n
n
n 的
k
k
k 次多项式,可以做如下尝试
h n = r h_n=r hn=r 如果 b n = d b_n=d bn=d
h n = r n + s h_n=rn+s hn=rn+s 如果 b n = d n + e b_n=dn+e bn=dn+e
h n = r n 2 + s n + t h_n=rn^2+sn+t hn=rn2+sn+t 如果 b n = d n 2 + e n + f b_n=dn^2+en+f bn=dn2+en+f
h n = p d n h_n=pd^n hn=pdn 如果 b n = d n b_n=d^n bn=dn
- 例子:求解
h n = 2 h n − 1 + 3 n ( n ≥ 1 ) , h 0 = 2 h_n=2h_{n-1}+3^n\quad(n\ge 1)\quad ,h_0=2 hn=2hn−1+3n(n≥1),h0=2
解一:因为齐次关系 h n = 2 h n − 1 h_n=2h_{n-1} hn=2hn−1,通解为 h n = c 2 n ( n ≥ 1 ) h_n=c2^n\quad(n\ge1) hn=c2n(n≥1)
为找其特殊解,我们做下面的尝试: h n = p 3 n h_n=p3^n hn=p3n
那么必须满足 p 3 n = 2 p 3 n − 1 + 3 n p3^n=2p3^{n-1}+3^n p3n=2p3n−1+3n
解得 p = 3 p=3 p=3
因此 h n = c 2 n + 3 n + 1 h_n=c2^n+3^{n+1} hn=c2n+3n+1
带入 h 0 = 2 h_0=2 h0=2,解得 c = − 1 c=-1 c=−1
于是得到 h n = − 2 n + 3 n + 1 ( n ≥ 0 ) h_n=-2^n+3^{n+1}\quad(n\ge0) hn=−2n+3n+1(n≥0)
解二:利用生成函数。设 g ( x ) = ∑ i = 0 ∞ h i x i g(x)=\sum_{i=0}^\infin h_ix^i g(x)=∑i=0∞hixi
利用原来的递推关系和 h 0 = 2 h_0=2 h0=2,我们得到
g ( x ) − 2 x g ( x ) = h 0 + ( h 1 − 2 h 0 ) x + ⋯ + ( h n − 2 h n − 1 ) x n + ⋯ = 2 + 3 x + 3 2 x 2 + ⋯ + 3 n x n + ⋯ = 2 − 1 + ( 1 + 3 x + 3 x 2 x 2 + ⋯ + 3 n x n + ⋯ ) = 1 + 1 1 − 3 x \begin{aligned} g(x)-2xg(x)&=h_0+(h_1-2h_0)x+\cdots+(h_n-2h_{n-1})x^n+\cdots\\ &=2+3x+3^2x^2+\cdots+3^nx^n+\cdots\\ &=2-1+(1+3x+3x^2x^2+\cdots+3^nx^n+\cdots)\\ &=1+\frac{1}{1-3x} \end{aligned} g(x)−2xg(x)=h0+(h1−2h0)x+⋯+(hn−2hn−1)xn+⋯=2+3x+32x2+⋯+3nxn+⋯=2−1+(1+3x+3x2x2+⋯+3nxn+⋯)=1+1−3x1
因此
g ( x ) = 1 1 − 2 x + 1 ( 1 − 3 x ) ( 1 − 2 x ) = 1 1 − 2 x + 3 1 − 3 x − 2 1 − 2 x = ∑ n = 0 ∞ ( 3 n + 1 − 2 n ) x n g(x)=\frac{1}{1-2x}+\frac{1}{(1-3x)(1-2x)}=\frac{1}{1-2x}+\frac{3}{1-3x}-\frac{2}{1-2x}=\sum_{n=0}^\infin (3^{n+1}-2^n)x^n g(x)=1−2x1+(1−3x)(1−2x)1=1−2x1+1−3x3−1−2x2=n=0∑∞(3n+1−2n)xn
求解卡特兰数的例子
- 令
h
n
h_n
hn 表示把凸
n
+
1
n+1
n+1 多边形区域分成三角形区域的方案数。则
h
n
h_n
hn 满足递推关系
h n = ∑ k = 1 n = 1 h k h n − k h_n=\sum_{k=1}^{n=1}h_kh_{n-k} hn=k=1∑n=1hkhn−k
我们现在希望求出它的通解。令 h 1 = 1 h_1=1 h1=1,设
g ( x ) = ∑ i = 1 ∞ h i x i ( g ( x ) ) 2 = h 1 2 x 2 + ⋯ + ( h 1 h n − 1 + h 2 h n − 2 + ⋯ + h n − 1 h 1 ) x n + ⋯ ( g ( x ) ) 2 = h 1 2 x 2 + h 3 x 3 + h 4 x 4 + ⋯ + h n x n + ⋯ = g ( x ) − h 1 x = g ( x ) − x \begin{aligned} g(x)&=\sum_{i=1}^\infin h_ix^i\\ (g(x))^2&=h_1^2x^2+\cdots+(h_1h_{n-1}+h_2h_{n-2}+\cdots+h_{n-1}h_1)x^n+\cdots\\ (g(x))^2&=h_1^2x^2+h_3x^3+h_4x^4+\cdots+h_nx^n+\cdots\\ &=g(x)-h_1x=g(x)-x \end{aligned} g(x)(g(x))2(g(x))2=i=1∑∞hixi=h12x2+⋯+(h1hn−1+h2hn−2+⋯+hn−1h1)xn+⋯=h12x2+h3x3+h4x4+⋯+hnxn+⋯=g(x)−h1x=g(x)−x
因此, g ( x ) g(x) g(x) 满足方程
( g ( x ) ) 2 − g ( x ) + x = 0 (g(x))^2-g(x)+x=0 (g(x))2−g(x)+x=0
根据二次公式, g ( x ) g(x) g(x) 有两个根 g 1 ( x ) , g 2 ( x ) g_1(x),g_2(x) g1(x),g2(x),其中
g 1 ( x ) = 1 + 1 − 4 x 2 , g 2 ( x ) = 1 − 1 − 4 x 2 g_1(x)=\frac{1+\sqrt{1-4x}}{2},g_2(x)=\frac{1-\sqrt{1-4x}}{2} g1(x)=21+1−4x,g2(x)=21−1−4x
由 g ( x ) g(x) g(x) 的定义可知 g ( 0 ) = 0 g(0)=0 g(0)=0,因为 g 1 ( 0 ) = 1 , g 2 ( 0 ) = 0 g_1(0)=1,g_2(0)=0 g1(0)=1,g2(0)=0,所以得到 g ( x ) = g 2 ( x ) g(x)=g_2(x) g(x)=g2(x)
根据牛顿二项式定理得到
( 1 + z ) 1 / 2 = 1 + ∑ n = 1 ∞ ( − 1 ) n − 1 n × 2 2 n − 1 C 2 n − 2 n − 1 z n ( ∣ z ∣ < 1 ) (1+z)^{1/2}=1+\sum_{n=1}^\infin \frac{(-1)^{n-1}}{n\times2^{2n-1}}C_{2n-2}^{n-1}z^n\quad(|z|<1) (1+z)1/2=1+n=1∑∞n×22n−1(−1)n−1C2n−2n−1zn(∣z∣<1)
用 − 4 x -4x −4x 替代 z z z ,则得到
( 1 − 4 x ) 1 / 2 = 1 + ∑ n = 1 ∞ ( − 1 ) n − 1 n × 2 2 n − 1 C 2 n − 2 n − 1 ( − 1 ) n 4 n x n = 1 + ∑ n = 1 ∞ ( − 1 ) 2 n − 1 2 n C 2 n − 2 n − 1 x n \begin{aligned} (1-4x)^{1/2}&=1+\sum_{n=1}^\infin \frac{(-1)^{n-1}}{n\times2^{2n-1}}C_{2n-2}^{n-1}(-1)^n4^nx^n\\ &=1+\sum_{n=1}^\infin (-1)^{2n-1}\frac{2}{n}C_{2n-2}^{n-1}x^n\\ \end{aligned} (1−4x)1/2=1+n=1∑∞n×22n−1(−1)n−1C2n−2n−1(−1)n4nxn=1+n=1∑∞(−1)2n−1n2C2n−2n−1xn
因此
g ( x ) = ∑ n = 1 ∞ 1 n C 2 n − 2 n − 1 x n g(x)=\sum_{n=1}^\infin \frac{1}{n}C_{2n-2}^{n-1}x^n g(x)=n=1∑∞n1C2n−2n−1xn
所以
h n = 1 n C 2 n − 2 n − 1 h_n= \frac{1}{n}C_{2n-2}^{n-1} hn=n1C2n−2n−1