2016-09-02 92 views
3

我試圖用sympy解決斐波那契數列的復發關係。我得到了一個與教科書不同的答案。不知道我錯了哪裏。使用sympy解決復發

我sympy代碼

from sympy import * 
f=Function('f') 
var('y') 
var('n',integer=True) 
f=y(n)-y(n-1)+(n-2) 
rsolve(f,y(n)) 

和輸出是

C0 +(-n + 1)*(N/2 - 1)

+1

的輸出是遞推方程'F'正確('= 0')你提供。你確定這是'f'的正確形式嗎?我相信斐波那契數列的遞推關係爲'f = y(n)-y(n-1)-y(n-2)'('= 0') – Stelios

+1

除了@Stelios提到的之外,rsolve還允許初始條件。通常給予兩個斐波納契。 –

+0

@Stelios如何給出初始條件? – user567879

回答

5

下面是一個完整的源代碼求解斐波那契遞推。請注意正確使用Functionsymbols

from sympy import * 
y = Function('y') 
n = symbols('n',integer=True) 
f = y(n)-y(n-1)-y(n-2) 
rsolve(f,y(n),{y(0):0, y(1):1}) 

sqrt(5)*(1/2 + sqrt(5)/2)**n/5 - sqrt(5)*(-sqrt(5)/2 + 1/2)**n/5

+0

文本給出了答案http://imgur.com/a/YUi1t另外y(0)是1爲fabanocci(我給了那樣)。 – user567879