如何解决将结果用于R中的下一个迭代步骤
我是迭代计算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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。