Logistic贴图不正确(Matlab)

时间:2018-03-25 08:57:31

标签: matlab math nonlinear-functions

我正在尝试迭代并绘制由等式x[n+1] = 4*x[n]*(1-x[n])给出的Logistic map非线性函数。我在https://www.mathworks.com/matlabcentral/answers/122101-plotting-f-x-as-a-function-of-x-logistic-map

找到了函数的实现

我只跟踪了N点的数量,并且我的实现中起始初始条件不同。我不知道为什么我在输出中没有得到任何值;大多是零价值。当初始条件为x[1] = 0.5时,我得到图中给出的奇怪图。但是当初始条件为0.3时,我得到了正确的Logistic映射。从理论上讲,初始条件可以是介于0和1之间的任何数字。那么,为什么在初始条件为0.5时代码不起作用?

有什么问题?

N=20000; % number of data points
x = zeros(1,N);
x(1) = 0.5; % initial condition (can be anything from 0 to 1)


for n = 1:N
    x(n+1) = 4*x(n)*(1-x(n));
end
 plot(x(1:N),x(2:N+1),'rs-')
 xlabel('x_n')
 ylabel('x_{n+1}')

这是情节

plot

1 个答案:

答案 0 :(得分:2)

您获得的结果是正确的。让我用下面的蜘蛛网图解释它(来源:http://sites.saintmarys.edu/%7Esbroad/example-logistic-cobweb.html

cobweb

抛物线是曲线y = 4*x*(1-x),蓝色线性曲线是y=x。确定点x[n]的方式如下:

  1. (x0,y(x0))点开始(通常会绘制(x0,0)的行)
  2. 水平直到你达到线性曲线
  3. 垂直直到你击中抛物线。这是您的x[n+1]
  4. 重复步骤2-3,直到无穷大或x[n]=x[n-1](稳定点)或x[n]=x[n-m](周期性)
  5. 注意稳定点是抛物线和线性曲线相交的地方。

    将此方法应用于您的参数会给出:

    1. (0.5,1)
    2. 开始
    3. 横向于(1,1)
    4. 垂直于(1,0)(这是x[1]
    5. 横向于(0,0)
    6. 垂直于(0,0)(这是x[2]
    7. 横向于(0,0)
    8. 垂直于(0,0)(这是x[3]
    9. 停止
    10. 所以你恰好结束了稳定点。