wuyue-xiaogui
2008-05-16, 11:47
我定义了一个函数如下:
function [y_t,y_e]=produce_logistic(k,x0,m)
%k为μ,x0为初值,m为长度
y_t(1,1)=x0;
if x0>=0
y_e(1,1)=1;
else
y_e(1,1)=0;
end
for n=2:m
y_t(1,n)=1-k*y_t(1,n-1)^2;
if y_t(1,n)>=0
y_e(1,n)=1;
else
y_e(1,n)=0;
end
end
在命令窗口中输入:[a,b]=produce_logistic(2,0.5,900)
得到一个数组a.
在命令窗口中输入:
x0=0;
for k=1:100
x0=x0+0.01; one=0;zero=0;y_t(k,:)=0;y_e(k,:)=0;
[y_t(k,:),y_e(k,:)]=produce_logistic(2,x0,900);
for m=1:900
if y_e(k,m)==1
one=one+1;
else
zero=zero+1;
end
end
y(1,k)=abs(one-zero)/900;
end
x=0.01:0.01:1;
figure
plot(x,y)
xlabel('x0');ylabel('不平衡性');
请观察数据y_t的第50行,它本该和刚才的a一样的,可实际上却在第36列以后不同,我实在不明白为什么,请高手帮忙!!!
function [y_t,y_e]=produce_logistic(k,x0,m)
%k为μ,x0为初值,m为长度
y_t(1,1)=x0;
if x0>=0
y_e(1,1)=1;
else
y_e(1,1)=0;
end
for n=2:m
y_t(1,n)=1-k*y_t(1,n-1)^2;
if y_t(1,n)>=0
y_e(1,n)=1;
else
y_e(1,n)=0;
end
end
在命令窗口中输入:[a,b]=produce_logistic(2,0.5,900)
得到一个数组a.
在命令窗口中输入:
x0=0;
for k=1:100
x0=x0+0.01; one=0;zero=0;y_t(k,:)=0;y_e(k,:)=0;
[y_t(k,:),y_e(k,:)]=produce_logistic(2,x0,900);
for m=1:900
if y_e(k,m)==1
one=one+1;
else
zero=zero+1;
end
end
y(1,k)=abs(one-zero)/900;
end
x=0.01:0.01:1;
figure
plot(x,y)
xlabel('x0');ylabel('不平衡性');
请观察数据y_t的第50行,它本该和刚才的a一样的,可实际上却在第36列以后不同,我实在不明白为什么,请高手帮忙!!!