내가이 재발하고 있어요 "N + 1 = (3분의 13)이 N을 X X - (4/3)는 N-1을 X". x n의 주어진 값을 가진= 1 및 x = 1의 값을 가진 첫 번째 50 개의 값을 인쇄하는 파이썬 스크립트를 작성하려고합니다.재발 관계는 파이썬
import math
def printRecurrence():
x = [0]*51 #initialize list of x values
x[0] = 1
x[1] = 1/3
for i in range(1, 51):
x[i+1] = (13/3)*x[i] - (4/3)*x[i-1]
print(x[i])
과 내가받을 출력은 다음과 같습니다 : 이것은 내 코드는 현재 모습입니다
최초의 13 개 인쇄 된 값에 대해서만 올바른0.3333333333333333
0.11111111111111094
0.03703703703703626
0.
0.004115226337435884
0.0013717421124321456
0.00045724737062478524
0.00015241578946454185
5.0805260179967644e-05
1.6935074827137338e-05
5.644977344304949e-06
1.8814687224716613e-06
6.263946716372672e-07
2.0575194713260943e-07
5.63988753916179e-08
-2.994080281313502e-08
-2.049419793790756e-07
-8.481608402251475e-07
-3.402107668470205e-06
-1.361158544307069e-05
-5.444739336201271e-05
-0.00021778992397796082
-0.0008711598127551465
-0.0034846392899683535
-0.013938557172856001
-0.05575422869575153
-0.22301691478444863
-0.8920676591382753
-3.5682706365532617
-14.2730825462131
-57.092330184852415
-228.36932073940963
-913.4772829576384
-3653.909131830553
-14615.63652732221
-58462.546109288836
-233850.18443715532
-935400.7377486213
-3741602.950994485
-14966411.80397794
-59865647.21591176
-239462588.86364704
-957850355.4545882
-3831401421.8183527
-15325605687.27341
-61302422749.09364
-245209690996.37457
-980838763985.4983
-3923355055941.993
. 내가 제공 한 증거는 x n = 3 -n이며, 대부분 내 스크립트의 값과 일치하지 않습니다. 계산에 문제가 있습니까? 나는 그것을 볼 수 없었다.
부동 소수점 누적 오류 ... –
어떤 버전의 Python입니까? Python2.x에서 1/3은 0이고 13/3과 4/3은 각각 4와 1입니다. – Max
@Max는 파이썬 3이어야합니다. else가 없으므로 결과는 부동 소수점이 될 수 없습니다. –