视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
混沌映射MATLAB仿真
2025-09-30 23:17:41 责编:小OO
文档
混沌映射(序列)matlab算法“小全”:Logistic、Henon、帐篷、kent(含混沌二值图像生成函数)

1.Logistic(罗切斯特)映射

变换核:

xn+1=axn(1−xn)

绘图程序:

n=;

key=0.512;

an=linspace(3.1,3.99,400);

holdon;boxon;axis([min(an),max(an),-1,2]);

N=n^2;

xn=zeros(1,N);

for a=an;

x=key;

for k=1:20;

x=a*x*(1-x);%产生公式

end;

for k=1:N;

x=a*x*(1-x);

xn(k)=x;

b(k,1)=x;%一维矩阵记录迭代结果

end;

plot(a*ones(1,N),xn,'k.','markersize',1);

end;

%figure;

%imhist(b)

实用混沌加密函数:

functionichao_ans=ichaos_logistic(varargin)

%logistic序列生成算法

%函数名:

%logistic混沌序列生成函数

%参数:

%(n,key),n为矩阵阶数,key为迭代初始值。

%(n),n为矩阵阶数,key=0.600。

%()或(n,key,...),n=,key=0.600。

Switch nargin;

case1;

n=varargin{1};

key=0.600;

case2;

n=varargin{1};

key=varargin{2};

otherwise

key=0.600;

n=;

end

N=n^2;

xn=zeros(1,N);

a=4;

x=key;

for k=1:20;

x=a*x*(1-x);%产生公式

end;

for k=1:N;

x=a*x*(1-x);

xn(k)=x;%一维矩阵记录迭代结果

end;

c=reshape(xn,n,n);%一维矩阵转换二维矩阵

d=zeros(n,n);

%二维混沌矩阵调制

For a1=1:n;

For a2=1:n;

ifc(a1,a2)>=0.5;

d(a1,a2)=1;

else d(a1,a2)=0;

end;

end;

end;

%figure;title('logistic映射');

%imshow(d);

ichao_ans=d;

2.Henon(埃农)映射

+1=yn+1−ax变换核:

{

xynn2

n+1=bxn

绘图程序:

a∈(0,1.4)

0.2b=0.3;

N=400;

an=ones(1,N);

xn=zeros(1,N);

hold on;boxon;

x=0;

y=0;

for a=0:0.001:1.4

for k=1:N;

xm=x;

ym=y;

x=ym+1-a*xm.*xm;

y=b*xm;

end

xn(1)=x;

for n=2:N;

xm=x;

ym=y;

x=ym+1-a*xm.*xm;

y=b*xm;

xn(n)=x;

end

plot(an*a,xn,'k.','markersize',1);

end

xlim([0,a]);

实用混沌加密函数:

functionichao_ans=ichaos_henon(varargin)

%埃农(Henon)映射

%0.2%参数:

%(n,key),n为矩阵阶数,key为迭代初始值。

%(n),n为矩阵阶数,key=0.314。

%()或(n,key,...),n=,key=0.314。

switchnargin;

case1;

n=varargin{1};

key=0.314;

case2;

n=varargin{1};

key=varargin{2};

otherwise

key=0.314;

n=;

end

n=;

N=n^2;

an=ones(1,N);

xn=zeros(1,N);

x=0;

y=0;

a=1.4;

forcir1=1:N;

xm=x;

ym=y;

x=ym+1-a*xm.*xm;

y=key*xm;

end

xn(1)=x;

for cir2=2:N;

xm=x;

ym=y;

x=ym+1-a*xm.*xm;

y=key*xm;

xn(cir2)=x;

end

c=reshape(xn,n,n);%一维矩阵转换二维矩阵

d=zeros(n,n);

%二维混沌矩阵调制

For a1=1:n;

For a2=1:n;

ifc(a1,a2)>=0;

d(a1,a2)=1;

else d(a1,a2)=0;

end;

end;

end;

ichao_ans=d;

第2 / 4页

3.帐篷映射

变换核:

xn+1=a−(1+a)|xn|

a∈(0,1)

绘图程序:

%帐篷映射

%0%a理想值0.99—1

%0n=20;

N=n^2;

xp=zeros(1,N);

Aa=ones(1,N);

Hold on;box on;

x=0.01;%初值

for a=0:0.001:1;

forn=1:N;

x=a-(1+a)*abs(x);

end

for k=1:N;

x=a-(1+a)*abs(x);

xp(k)=x;

end

plot(Aa*a,xp,'k.','markersize',1);

end

xlim([0,a]);

实用混沌加密函数:

functionichao_ans=ichaos_tent(varargin)

%帐篷映射

%0%a理想值0.99—1

%x初值作为密钥

%0%(n,key),n为矩阵阶数,key为迭代初始值。

%(n),n为矩阵阶数,key=0.99。

%()或(n,key,...),n=,key=0.99。

switchnargin;

case1;

n=varargin{1};

key=0.99;

case2;

n=varargin{1};

key=varargin{2};

otherwise

key=0.99;

n=;

end

N=n^2;

xp=zeros(1,N);

x=key;

a=0.998;

for cir1=1:N;

x=a-(1+a)*abs(x);

end

for cir2=1:N;

x=a-(1+a)*abs(x);

xp(cir2)=x;

end

c=reshape(xp,n,n);%一维矩阵转换二维矩阵

d=zeros(n,n);%二维混沌矩阵调制

for a1=1:n;

fora2=1:n;

if c(a1,a2)>=0;

d(a1,a2)=1;

else d(a1,a2)=0;

end;

end;

end;

%sum(sum(d))ichao_ans=d;

%imshow(ichao_ans);

第3 / 4页

4.kent(肯特)映射

xx,01a≤a−xn

1−a

,a绘图程序:

%肯特映射

n=20;

N=n^2;

xp=zeros(1,N);

Aa=ones(1,N);

x=0.36;

hold on;box on;

fora=0.01:0.001:0.5;

for cir1=1:N;

ifx<=a;

x=x/a;

else

x=(1-x)/(1-a);

end

end

forcir3=1:N;

ifx<=a;

x=x/a;

else

x=(1-x)/(1-a);

end

xp(cir3)=x;

end

plot(Aa*a,xp,'k.','markersize',1);

end

xlim([0,a]);

实用混沌加密函数:

functionichao_ans=ichaos_kent(varargin)

%0.1%a<0.5,当大于0.4时比较理想

%参数:

%(n,key),n为矩阵阶数,key为迭代初始值。

%(n),n为矩阵阶数,key=0.8。

%()或(n,key,...),n=,key=0.8。

switchnargin;

case1;

n=varargin{1};

key=0.8;

case2;

n=varargin{1};

key=varargin{2};

otherwise

key=0.8;

n=;

end

N=n^2;

xp=zeros(1,N);

x=key;

a=0.4;

for cir1=1:N;

if x<=a;

x=x/a;

else

x=(1-x)/(1-a);

end

end

for cir3=1:N;

if x<=a;

x=x/a;

else

x=(1-x)/(1-a);

end

xp(cir3)=x;

end

c=reshape(xp,n,n);%一维矩阵转换二维矩阵

%figure;

%imhist(c);

d=zeros(n,n);

%二维混沌矩阵调制

For a1=1:n;

For a2=1:n;

If c(a1,a2)>=0.5;

d(a1,a2)=1;

else d(a1,a2)=0;

end;

end;

end;

%sum(sum(d))

ichao_ans=d;

figure;

imshow(ichao_ans);下载本文

显示全文
专题