递归方程的求解
2016-04-21 13:01
323 查看
递归方程的求解
生成函数求解递归方程
生成函数及其性质
生成函数求递归方程
用特征方程求解递归方程
用递推法求解递归方程
用递推法求解常系数递归方程
用递推法求解变系数递归方程
函数换名
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)=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)=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))
g(k)=f(mk)=f(n)g(k)=f(mk)=f(n),然后就可以使用上述方法计算递归方程的解。
生成函数求解递归方程
生成函数及其性质
生成函数求递归方程
用特征方程求解递归方程
用递推法求解递归方程
用递推法求解常系数递归方程
用递推法求解变系数递归方程
函数换名
递归方程的求解
@[递归方程, 生成函数, 递推法]生成函数求解递归方程
生成函数及其性质。
定义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),然后就可以使用上述方法计算递归方程的解。
相关文章推荐
- 递归方程的求解
- 全班成绩变态算法
- 第四次作业
- 【COCOS2DX-ANDROID-游戏开发之二十】停止手打所有cpp文件到android.mk
- 树与二叉树的常见操作
- java 检测代理IP是否准确
- leetcode----Merge Sorted Array
- if else语句太多,有什么好的方法解决?
- 员工信息
- jenkins在windows下的安装
- Apache CloudStack API
- javaScript学习思维导向图
- 如何用脚本快速修改IP地址(Netsh)
- netsh命令之ip设置
- c# 扩展方法奇思妙用变态篇二:封装 if/else、swith/case 及 while
- S9303如何设置终端屏幕显示的命令行数
- list 中的结构体排序
- 输出对齐
- Ubuntu server ssh
- #6态势感知