您的位置:首页 > 其它

递归方程的求解

2016-04-21 13:01 323 查看
递归方程的求解
生成函数求解递归方程
生成函数及其性质

生成函数求递归方程

用特征方程求解递归方程

用递推法求解递归方程
用递推法求解常系数递归方程

用递推法求解变系数递归方程

函数换名

递归方程的求解

@[递归方程, 生成函数, 递推法]

生成函数求解递归方程

生成函数及其性质。

定义11:令a0a0,a1a1,a2a2,……是一个实数序列,构造如下的函数:

G(z)=a0+a1z+a2z2+⋯=∑k=0∞akzkG(z)=a0+a1z+a2z2+⋯=∑k=0∞akzk

则称G(z)G(z)称为a0a0,a1a1,a2a2,……的生成函数。

生成函数的性质:

- 加法:设G(z)=∑∞k=0akzkG(z)=∑k=0∞akzk是序列a0a0,a1a1,a2a2,……的生成函数,H(z)=∑∞k=0bkzkH(z)=∑k=0∞bkzk是序列b0b0,b1b1,b2b2,……的生成函数,则:

αG(z)+βH(z)=α∑k=0∞akzk+β∑k=0∞bkzk=∑k=0∞(αak+βbk)zkαG(z)+βH(z)=α∑k=0∞akzk+β∑k=0∞bkzk=∑k=0∞(αak+βbk)zk

是序列αa0+βb0αa0+βb0,αa1+βb1αa1+βb1,αa2+βb2αa2+βb2,……的生成函数。

移位:设G(z)=∑∞k=0akzkG(z)=∑k=0∞akzk是序列a0a0,a1a1,a2a2,……的生成函数,则:

zmG(z)=∑k=0∞ak−mzkzmG(z)=∑k=0∞ak−mzk

是序列a0a0,a1a1,a2a2,……的生成函数。

乘法:设G(z)=∑∞k=0akzkG(z)=∑k=0∞akzk是序列a0a0,a1a1,a2a2,……的生成函数,H(z)=∑∞k=0bkzkH(z)=∑k=0∞bkzk是序列b0b0,b1b1,b2b2,……的生成函数,则:

G(z)H(z)=(a0+a1z+a2z2+⋯)(b0+baz+b2z2+⋯)=a0b0+(a0b1+a1b0)z+(a0b2+a1b1+a2b0)z2+⋯=∑k=0∞ckzkG(z)H(z)=(a0+a1z+a2z2+⋯)(b0+baz+b2z2+⋯)=a0b0+(a0b1+a1b0)z+(a0b2+a1b1+a2b0)z2+⋯=∑k=0∞ckzk

是序列c0c0,c1c1,c2c2,……的生成函数,其中cn=∑∞k=0akbn−kcn=∑k=0∞akbn−k。

z变换:设G(z)=∑∞k=0akzkG(z)=∑k=0∞akzk是序列a0a0,a1a1,a2a2,……的生成函数,则:

G(cz)=a0+a1(cz)+a2(cz)2+a3(cz)3+⋯=a0+ca1z+c2a2z2+c3a3z3+⋯G(cz)=a0+a1(cz)+a2(cz)2+a3(cz)3+⋯=a0+ca1z+c2a2z2+c3a3z3+⋯

是序列a0a0,ca1ca1,ca2ca2,……的生成函数,特别地

11−cz=1+cz+c2z2+c3z3+⋯11−cz=1+cz+c2z2+c3z3+⋯

是序列11,cc,c2c2,c3c3,……的生成函数。

生成函数求递归方程

递归关系式如下:

{h(n)h(1)=2h(n−1)+1=1{h(n)=2h(n−1)+1h(1)=1

用h(n)h(n)作为系数,构造生成函数:

G(x)=h(1)x+h(2)x2+h(3)x3+⋯=∑k=1∞h(k)xkG(x)=h(1)x+h(2)x2+h(3)x3+⋯=∑k=1∞h(k)xk

为了求解h(n)h(n)的值需要对G(x)G(x)进行演算:

G(x)−2xG(x)=h(1)x+h(2)x2+h(3)x3+⋯−2h(1)x2−2h(2)x3−⋯=h(1)x+(h(2)−2h(1))x2+(h(3)−2h(2))x3+⋯=x+x2+x3+⋯=x1−xG(x)−2xG(x)=h(1)x+h(2)x2+h(3)x3+⋯−2h(1)x2−2h(2)x3−⋯=h(1)x+(h(2)−2h(1))x2+(h(3)−2h(2))x3+⋯=x+x2+x3+⋯=x1−x

所以

G(x)=x(1−x)(1−2x)=11−2x−11−x=(1+2x+22x2+23x3+⋯)−(1+x+x2+x3+⋯)=(2−1)x+(22−1)x2+(23−1)x3+⋯=∑k=1∞(2k−1)xkG(x)=x(1−x)(1−2x)=11−2x−11−x=(1+2x+22x2+23x3+⋯)−(1+x+x2+x3+⋯)=(2−1)x+(22−1)x2+(23−1)x3+⋯=∑k=1∞(2k−1)xk

故h(n)=2n−1h(n)=2n−1

用特征方程求解递归方程

递归方程的形式如下:

{f(n)f(i)=a1f(n−1)+a2f(n−2)+⋯+akf(n−k)=bi{f(n)=a1f(n−1)+a2f(n−2)+⋯+akf(n−k)f(i)=bi

这种递归方程称为kk阶常系数线性非齐次递归方程。其通解形式为:

f(n)=f(n)+f∗(n)f(n)=f(n)+f∗(n)

- 如果g(n)是n的m次多项式,即

g(n)=b0nm+b1nm−1+⋯+bm−1n+bmg(n)=b0nm+b1nm−1+⋯+bm−1n+bm其中bibi是常数,特解f∗(n)f∗(n)也是n的m次多项式:

f∗(n)=A0nm+A1nm−1+⋯+Am−1n+Amf∗(n)=A0nm+A1nm−1+⋯+Am−1n+Am,其中AiAi为待定系数。

- 如果g(n)g(n)具有以下指数形式:

g(n)=(b0nm+b1nm−1+⋯+bm−1n+bm)an(2.1)(2.1)g(n)=(b0nm+b1nm−1+⋯+bm−1n+bm)an

其中a,bia,bi为常数,如果aa不是特征方程的重根,特解f∗(n)f∗(n)为:

f∗(n)=(A0nm+A1nm−1+⋯+Am−1n+Am)anf∗(n)=(A0nm+A1nm−1+⋯+Am−1n+Am)an

,其中AiAi为待定系数。如果aa是特征方程的r重根,特解f∗(n)f∗(n)为:

f∗(n)=(A0nm+A1nm−1+⋯+Am−1n+Am)nranf∗(n)=(A0nm+A1nm−1+⋯+Am−1n+Am)nran

,其中AiAi为待定系数。

用递推法求解递归方程

用递推法求解常系数递归方程

{f(n)f(0)=bf(n−1)+g(n)=c{f(n)=bf(n−1)+g(n)f(0)=c其中b,cb,c是常数,g(n)g(n)是n的函数。

f(n)=b(bf(n−2)+g(n−1))+g(n)=⋯=cbn+∑i=1nbn−ig(i)f(n)=b(bf(n−2)+g(n−1))+g(n)=⋯=cbn+∑i=1nbn−ig(i)

用递推法求解变系数递归方程

{f(n)f(0)=g(n)f(n−1)+h(n)=c{f(n)=g(n)f(n−1)+h(n)f(0)=c其中g(n),h(n)g(n),h(n)是n的函数。

f(n)=g(n)(g(n)f(n−2)+h(n−1))+h(n)=⋯=g(n)g(n−1)⋯g(1)(f(0)+∑i=1nh(i)g(i)g(i−1)⋯g(1))f(n)=g(n)(g(n)f(n−2)+h(n−1))+h(n)=⋯=g(n)g(n−1)⋯g(1)(f(0)+∑i=1nh(i)g(i)g(i−1)⋯g(1))

函数换名

对于分治法,函数f(n)f(n)是以f(nm)f(nm)表示递归的,因此,可以考虑令:

g(k)=f(mk)=f(n)g(k)=f(mk)=f(n),然后就可以使用上述方法计算递归方程的解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: