简体   繁体   中英

solving recurrence relation with multiple T(n)s

T(n) = 1/2(T(n − 1) + T(n − 2)) + cn, with c > 0

I am having trouble understanding how to solve recurrences with multiple T(n)s. I did a lot of practices by solving recurrence with just one T(n) and following the definition I can do it well. But this is not a recurrence directly solvable with the Master theorem. Anyway I can start a good approach to this question?

solve the homogeneous recurrence:

T_H(n) = 1/2(T_H(n − 1) + T_H(n − 2))
r^2 - r/2 - 1/2 = 0
r = 1 or r = -1/2
T_H(n) = alpha * 1^n + beta * (-1/2)^n (alpha and beta to be determined by initial conditions)

solve the special solution

(1) we want to find a s(n) such that s(n) = 1/2(s(n-1)+s(n-2)) + cn

we know cn is a polynome (in n ) so special solution can be found as a polynome too.

Trying with s(n) = an leads to: an = 1/2(an-1 + an-2) + cn and all terms in an simplify themselves so try the next degree: s(n)=an^2 + bn

an^2 + bn = 1/2 (a(n-1)^2 + b(n-1) + a(n-2)^2 + b(n-2) ) + cn

developping everybody then identifying we get

a = c/3
b = 5c/9

A quick check if we don't trust our ability to make valid calculus: since s(n) must be valid for all n , let's put arbitrarily n=2, c=7 and check whether s(2) still verifies (1) idem

n = 2, c=7
s(n)-1/2(s(n-1)+s(n-2))-cn ?= 0

below octave shows that indeed s(2) = 0

octave:1> n=2
n =  2
octave:2> c=7
c =  7
octave:3> c/3*n^2 + 5*c/9*n - 1/2*(c/3*(n-1)^2 + 5*c/9*(n-1) +c/3*(n-2)^2 + 5*c/9*(n-2))-c*n
ans = 0

Complexity

T(n) = T_H(n) + sp(n) = alpha + beta (-1/2)^n + c/3n^2 + 5c/9n

so T(n) is in O(n^2)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM