Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用R中的模式构造序列_R_Sequence - Fatal编程技术网

如何用R中的模式构造序列

如何用R中的模式构造序列,r,sequence,R,Sequence,我想构建一个长度为50的序列,类型如下: Xn+1=4*Xn*(1-Xn)。供您参考,这是r=4的逻辑图。对于参数r=4且初始状态为(0,1)的Logistic映射,吸引子也是区间(0,1),概率测度对应于参数a=0.5和b=0.5的β分布。(Logistic映射是一个二次多项式映射(等价地,递归关系),经常被引用为一个原型示例,说明非常简单的非线性动力学方程会产生多么复杂的混沌行为)。我如何在R中做到这一点?这不是一个真正的R问题,是吗?更基本的编程。无论如何,您可能需要一个累加器和一个值来处

我想构建一个长度为50的序列,类型如下:
Xn+1=4*Xn*(1-Xn)。供您参考,这是r=4的逻辑图。对于参数r=4且初始状态为(0,1)的Logistic映射,吸引子也是区间(0,1),概率测度对应于参数a=0.5和b=0.5的β分布。(Logistic映射是一个二次多项式映射(等价地,递归关系),经常被引用为一个原型示例,说明非常简单的非线性动力学方程会产生多么复杂的混沌行为)。我如何在R中做到这一点?

这不是一个真正的
R
问题,是吗?更基本的编程。无论如何,您可能需要一个累加器和一个值来处理

values <- 0.2              ## this accumulates as a vector, starting with 0.2
xn     <- values           ## xn gets the first value
for (it in 2:50) {         ## start the loop from the second iteration
  xn <- 4L*xn*(1L-xn)      ## perform the sequence function
  values <- c(values, xn)  ## add the new value to the vector
}
values
# [1] 0.2000000000 0.6400000000 0.9216000000 0.2890137600 0.8219392261 0.5854205387 0.9708133262 0.1133392473 0.4019738493 0.9615634951 0    .1478365599 0.5039236459
# [13] 0.9999384200 0.0002463048 0.0009849765 0.0039360251 0.0156821314 0.0617448085 0.2317295484 0.7121238592 0.8200138734 0.5903644834 0    .9673370405 0.1263843622
# [25] 0.4416454208 0.9863789723 0.0537419811 0.2034151221 0.6481496409 0.9122067356 0.3203424285 0.8708926280 0.4497546341 0.9899016128 0    .0399856390 0.1535471506
# [37] 0.5198816927 0.9984188732 0.0063145074 0.0250985376 0.0978744041 0.3531800204 0.9137755744 0.3151590962 0.8633353611 0.4719496615 0    .9968527140 0.0125495222
# [49] 0.0495681269 0.1884445109

值网上有一些现成的解决方案。我引用了一般的解决方案,在那里你可以找到更详细的描述

logistic.map <- function(r, x, N, M){
  ## r: bifurcation parameter
  ## x: initial value
  ## N: number of iteration
  ## M: number of iteration points to be returned
  z <- 1:N
  z[1] <- x
  for(i in c(1:(N-1))){
    z[i+1] <- r *z[i]  * (1 - z[i])
  }
  ## Return the last M iterations 
  z[c((N-M):N)]
}

你的问题对我来说很模糊。你能再解释一下吗?例如,如果X0=0.2,那么X1=4*0.2*0.8,那么对于X2,X3……向下投票是一种有趣的方法。选民是否愿意发表评论?
logistic.map(4,0.2,50,49)