繁体   English   中英

如何在R中固定后勤图的直线图?

[英]How to fix a straight line plot of a logistic map in R?

逻辑图(图是一种功能,其在任何时间步上的值都将在下一个时间步上的值)是一种模型,其模型源于动物种群大小的预测。 它之所以闻名,部分原因是其参数化的特殊情况显示出令人惊讶的混沌行为。 逻辑映射方程为

x i + 1 = rx i (1-x i

其中X I∈[0,1]是最大可能大小在时间i当前群体大小的值比,X I 1是在下一代的比率,r是所述驱动速度,代表动物繁殖和死亡。 当r <3.5时,总体最终将达到稳定的大小,或者将在一组固定值之间振荡。 但是,如果r> 3.5,则系统不稳定并表现出混沌行为!

这是以下问题陈述的背景或上下文:

生成一组点S = {r,x},其中对于每个r∈[1.0,4.1],以0.001025为增量,对于i = 0,...,16,将有一系列x i值。 因此,对于每个r值,将有17 x i个值。 使用x 0 = 0.01。 根据您的实现,您可能会发现rbind函数很有用。 该代码可能需要花费几秒钟的时间才能运行,因为它将在S中生成很多点。R代码不超过10行。

诚然,这是一个实验室作业。 但是,我不是班上的学生。 我正在学习R,并且正在尝试完成在线任务并自己提出解决方案。 我尝试创建要绘制的点集,并基于对几个点的手动验证,该点集看起来很准确。

for(j in c(0:3024)) {
    rm(x)
    x <- 1:17
    x[1] <- 0.01
    r <- 1 + (j * 0.001025)
    for(i in c(1:(17-1))) {
        x[i+1] <- r *x[i]  * (1 - x[i])
    }
    if (j==0) {
        binded <- cbind(r,x)
    } else {
        binded <- rbind(binded, cbind(r,x))
    }
}

当我调用plot(binded, pch='.') RStudio将结果显示为一条直线。 因此,我不确定是否正确使用了绘图,或者不确定是否正确生成了所有点。 如果我将j的最大值减小到小于2000,您将看到一个图。 仅当j值迭代到3024时,才绘制一条直线。

我相信您的代码是正确的,当时间超过4时,发生的情况是迭代非常不稳定,并且将变为-infinity。 y值的这种大变化正在压缩比例并使图看起来像一条平线。

切掉矩阵的尾部会产生一个非常有趣的图:

plot(binded[-which(binded[,2]<0),], pch=".")

在此处输入图片说明

如果确实要绘制整个矩阵,请考虑手动将y轴限制设置为[0,1]。 这样,情节就不会延长到-1e24

作为额外的好处,这是另一个绘图库中的一个版本,其点用i上色。

情节

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM