我正在尝试实现如下混沌方程,该方程生成如下图所示的随机值:
我按照下面的公式在Matlab中编写了这段代码:
x=zeros();
x(1) = 0.2456;
u = 0.3324;
y(1) = u + sqrt(1-(x(1))^2);
th = 2.143;
kk(1)= (x(1)/y(1)) * (u^2);
k(1) = -1 * ((tan(th)+kk(1))/(1-(kk(1)*tan(th))));
j=1;
for i=2:11
x(i) = (-1*((2*(k(i-1)*y(i-1)+x(i-1)*(u^2-k(i-1)^2))))/((u^2)+k(i-1)^2));
y(i) = k(i-1)*(x(i)-x(i-1))+y(i-1);
k(i) = ((2*kk(i-j)-k(i-1)+(k(i-1)*(kk(i-j)^2)))/(1+2*k(i-1)*kk(i-j)-((kk(i-j))^2)));
if (i<j)
kk(i-j) = (-1 * (x(i-1)/y(i-1))) * u^2;
else
kk(i-j) = (-1 * (x(i-j)/y(i-j))) * u^2;
end
j=j+1;
end
问题是x和y值应在(-1,1)范围内,k值应在(1000,-1000)之间,但是从代码生成的值是不同的,并且超出了这些值。我尝试了一些时间,但是找不到问题。
谢谢