これを試してみてください:
GoldenRatio=(1+sqrt(5))/2
# 1.618034
i=3
fib=c(1,1)
while(abs(fib[i-1]/fib[i-2]-GoldenRatio)>0.001){
fib[i] <- fib[i-1]+fib[i-2]
i=i+1
}
print(fib)
# [1] 1 1 2 3 5 8 13 21 34 55
length(fib)
# [1] 10
print(i)
# 11
print(fib[i-1]/fib[i-2])
# [1] 1.617647
print(abs(fib[i-1]/fib[i-2] - GoldenRatio))
# [1] 0.0003869299
をまた、我々は以下から見ることができるように、収束は非常に高速に得られる。
fib=c(1,1)
ratio <- c()
for (i in 3:20) {
ratio <- c(ratio, fib[i-1]/fib[i-2])
fib[i] <- fib[i-1]+fib[i-2]
i=i+1
}
plot(ratio, pch=19,col='red')
lines(ratio, pch=19,col='red')
abline(h=GoldenRatio, col='blue')
legend('topright', legend=c('f(i)/f(i+1)', 'GoldenRatio'), col=c('red', 'blue'), lwd=2)
あなたは絶対差 'abs(fib [i-1]/fib [i-2] -GoldenRatio)'を比較する必要があります。 –
Aah got it!ありがとう! – Cardinal