递归方程求解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解递归方程
下面的求解方法,其正确性可阅读组合数学中的相关内容。
1、 递推法
例:Hanoi 塔问题递归算法的时间复杂性,由以下递归方程给出:
()2(1) 1 2(1)1T n T n n T =-+≥⎧⎨=⎩
递推求解如下:
232122122()2(1)1
2(2(2)1)1
2(2)21
2(3)221
......
2(1)2 (221)
22 (221)
21
n n n n n T n T n T n T n T n T ----=-+=-++=-++=-++++=+++++=+++++=-
所以,Hanoi 塔问题递归算法的时间复杂性为:()(2)n T n O =
例:分治法实例。设n 表示问题的尺寸,n/b 表示将问题分成a 个子问题后的每个子问题的尺寸,其中a,b 为常数。d(n)表示在分解或合成子问题而得到整个问题解决时的时间耗费。则整个问题的时间耗费由下面的递归方程给出: ()(/)() 2(1)1T n aT n b d n n T =+≥⎧⎨=⎩
递推求解如下:
22223233221
0()((/)(/))()
(/)(/)()
((/)(/))(/)()
(/)(/)(/)() ......
(/)(/)k k k
i i i T n a aT n b d n b d n a T n b ad n b d n a aT n b d n b ad n b d n a T n b a d n b ad n b d n a T n b a d n b -==++=++=+++=+++=+∑
设:k
n b =,则log b k n =,有: 1
0()(1)(/)k k
i i i T n a T a d n b -==+∑ 当()d n 为常数时,有:
log 10()() 1()(log ) 1 b a k k k i
i b O a O n a T n a c a O n a -=⎧=≠=+=⎨
=⎩∑ 当(),d n cn c =为常数时,有:
111000(/)(/)(/)k k k i i i i
i i i i a d n b a cn b cn a b ---=====∑∑∑
若:a b <,则:10(/)
()k i i cn a b O n -==∑
log ()()()b a T n n O n O n =+=
若:a b =,则:10(/)
log k i b i cn a b cnk cn n -===∑
log ()log (log )b a b b T n n cn n O n n =+=
若:a b >,则:1log log 0(/)1(/)()()()/1/1b b k k k
k n a i
k i a b a b cn a b cn c O a O a O n a b a b -=--=====--∑ log log log ()()()b b b a a a T n n O n O n =+=
综上所述:log () ()(log ) () b n O n a b T n O n n a b O n
a b ⎧<⎪==⎨⎪>⎩
2、公式解法
K 阶常系数齐次递推方程:12()(1)(2)...()0k T n a T n a T n a T n k -------= 0,,,1,...,k i a n k a i k ≠≥=是常数
则对应的特征方程为:1212...0k k k k x a x a x a ------=
特征方程有k 个根:12,,...,k q q q ,称为齐次方程的特征根。
若:k 个根中无重根,则齐次方程的通解为:1122()...n n n
k k T n c q c q c q =+++
其中的系数为待定系数,由方程的初始条件确定。
若:k 个根中有r 重根,12,,...,k q q q 中,11...i i i r q q q ++-===,则齐次方程的通解为:
1111111()...(...)...n n r n n n i i i i i r i i r i r k k T n c q c q c c n c n q c q c q ---++-++=+++++++++
例:求解递归方程
()(1)3(2)5(3)2(4)0 4(0)1,(1)0,(2)1,(3)2
T n T n T n T n T n n T T T T +-------=≥⎧⎨====⎩ 解:递归方程的特征方程为 432
3520x x x x +---=
其特征根为:-1,-1,-1,2
递归方程通解为:21234()()(1)2n n T n C C n C n C =++-+
由初始条件有: 1412341
234123412024413982
C C C C C C C C C C C C C C +=⎧⎪---+=⎪⎨+++=⎪⎪---+=⎩ 解得:1234712,,0,939
C C C C ==-== 因此递归方程的解为:712()(1)(1)2939
n n n T n n =---+⋅
K 阶常系数线性非齐次递推方程:12()(1)(2)...()()k T n a T n a T n a T n k f n -------= 0,()0,()()k a f n f n T n ≠≠与线性无关 方程通解为:()()*()T n T n T n =+ ,其中()T n 是对应的齐次方程的通解, *()T n 是一个特解。
当f(n)是n 的t 次多项式时,可设特解*()T n 也是n 的t 次多项式:
1121*()...t t t t T n Pn P n Pn P -+=++++,其中121,,...,t P
P P +是待定系数,将*()T n 代入原递推方程后即可求出。
例:求解递归方程的一个特解
2()5(1)6(2)3T n T n T n n +-+-=
解:设特解为2123*()T n P n
P n P =++,代入原递归方程有:222
1231231
235((1)(1))6((2)(2))P n P n P P n P n P P n P n P n +++-+-++-+-+= 化简有:2211212312(3412)(291712)3Pn P P n P P P n +-++-+=
比较两边的系数,有