问题描述
我是迭代计算R的新手。我想进行串行计算sucn,因为我在下一个中使用上一个结果。下面的代码显示了一种尝试计算序列差分方程的代码:
quadmap <- function(start,rho,niter) {
#variables
x_1<- start
r<-rho
n<-niter
print(c('x_1','r','n'))
print(c(x_1,r,n))
for (i in 1:n){
x_k_1<-x_1
xk <- r*x_k_1*(1-x_k_1)
x_k_1<- xk
print(xk)
}
}
我想在计算中使用新的xk作为新的'x_k_1',直到n循环为止。
我没有得到想要的输出
解决方法
第二次尝试给了我想要的结果:
height
,
如果您对递归版本感兴趣,请参考以下示例
quadmap <- function(start,rho,niter) {
if (niter == 1) return(start)
x <- quadmap(start,niter-1)
c(x,rho*tail(x,1)*(1-tail(x,1)))
}
示例
> quadmap(0.5,1,5)
[1] 0.5000000 0.2500000 0.1875000 0.1523438 0.1291351
> quadmap(0.8,3,5)
[1] 0.8000000 0.4800000 0.7488000 0.5642957 0.7375982