绘制logistic映射图

一,产生logistic序列
clear all;clc;
x=zeros(1000,1); %zeros功能是返回一个10001的double类零矩阵。
a=0.5;
x(1)=0.32; %设定初始值
for i=2:1000-1
x(i)=a
x(i-1)*(1-x(i-1)); %一维logistic迭代映射混沌现象公式:x(i+1)=ax(i)(1-x(i))
end
figure(1);
plot(x);

二,产生logistic序列的程序函数
function y = logistic( a , x )
y = a * x .* ( 1 - x );
end

三,一维logistic迭代映射基本程序代码
function [u,v,z] = iterate( a , y0 , n )
z = zeros(n+1,1);
z(1)=y0;
for i= 2:n
z(i) = logistic(a,z(i-1));
end
u=zeros(2n,1);u(1)=y0;
v=zeros(2
n,1);v(1)=0;
for i=2:2n
u(i)=z(ceil(i/2)); %返回不小于x的最小整数值(然后转化为double类型)
end
v=[0;u(3:2
n)];
u=u(1:2*n-1);
function [z] = iterate( a , y0 , n )
z = zeros(n+1,1);
z(1)=y0;
for i=2:n
z(i)=logistic(a,z(i-1));
end

四,产生logistic映射分叉图的程序代码:
clear all
clc
u=0:0.0025:2;
L=length(u);
R=randn(L,1); %randn是一种产生标准正态分布的随机数或矩阵的函数,属于MATLAB函数。返回一个L*1的随机项的矩阵。如果n不是个数量,将返回错误信息。
for i=1:L
x(i,1)=R(i); %0.2 初始化
end
x=abs(x)/max(abs(x)); %abs()是求绝对值,对于复数而言,是求模。归一化过程,简化计算方式,有量纲的表达式转化为无量纲的表达式,成为纯量

N=500;
for i=1:L
for j=2:N
x(i,j)=1-u(i)*x(i,j-1)*x(i,j-1);
end
end
hold on %保持屏幕不动,原图与新图共存
for i=1:L
for j=round(N/1.5):N %round四舍五入取整。
plot(u(i),x(i,j),‘b-’);%b-蓝色的曲线
end
end
hold off %解屏

axis([0 2 -1 1.2])%axis([xmin xmax ymin ymax]) 用来标注输出的图线的最大值最小值。
xlabel(‘r’,‘fontsize’,20,‘fontname’,‘times newroman’,‘FontAngle’,‘italic’);
ylabel(‘x_n’,‘fontsize’,20,‘fontname’,‘times newroman’,‘FontAngle’,‘italic’);% ‘FontAngle’,'italic’设置斜字体

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值