逻辑图绘制不正确(Matlab)
我试图迭代并绘制由方程给出的非线性函数:逻辑图绘制不正确(Matlab),matlab,math,nonlinear-functions,Matlab,Math,Nonlinear Functions,我试图迭代并绘制由方程给出的非线性函数:x[n+1]=4*x[n]*(1-x[n])。我在这里找到了该函数的一个实现 我遵循的是相同的东西,只是点数N,在我的实现中,初始条件不同。我不知道为什么我在输出中没有得到任何值;大多数都是零值。当初始条件为x[1]=0.5时,我得到了图中给出的奇怪曲线图。但是当初始条件为0.3时,我得到了正确的逻辑图。理论上,初始条件可以是0到1之间的任何数字。那么,当初始条件为0.5时,为什么代码不起作用 有什么问题 N=20000; % number of data
x[n+1]=4*x[n]*(1-x[n])
。我在这里找到了该函数的一个实现
我遵循的是相同的东西,只是点数N
,在我的实现中,初始条件不同。我不知道为什么我在输出中没有得到任何值;大多数都是零值。当初始条件为x[1]=0.5
时,我得到了图中给出的奇怪曲线图。但是当初始条件为0.3时,我得到了正确的逻辑图。理论上,初始条件可以是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}')
这里是情节
您得到的结果是正确的。让我用下面的蛛网图解释一下(来源:) 抛物线是曲线
y=4*x*(1-x)
,蓝色线性曲线是y=x
。点x[n]
的确定方式如下:
(x0,y(x0))
(通常绘制带有(x0,0)
的线)x[n+1]
x[n]=x[n-1]
(稳定点)或x[n]=x[n-m]
(周期性)(0.5,1)
(1,1)
(1,0)
(这是x[1]
)(0,0)
(0,0)
(这是x[2]
)(0,0)
(0,0)
(这是x[3]
)因此,您恰好到达了稳定点。感谢您提供了带插图的答案。如果我理解的话,我认为第3点中有一个拼写错误,它应该垂直向下到(1,0),得到x[1],而不是(0,1)?此外,在步骤4)之后,即坐标(0,0),下一个点x[2]如何是垂直坐标(0,0)尚不清楚。你能澄清一下吗?@RiaGeorge这确实是一个打字错误,谢谢你的注意。在第4)步之后,你应该保持垂直,直到你碰到抛物线为止。然而,你已经在抛物线上了,所以不再需要垂直了,你可以呆在原地。