1、混沌映射(序列)matlab算法“小全”:Logistic、Henon、帐篷、kent(含混沌二值图像生成函数)1.Logistic(罗切斯特)映射变换核:xn+1=axn(1xn)绘图程序:n=64;key=0.512;an=linspace(3.1,3.99,400);holdon;boxon;axis(min(an),max(an),-1,2);N=n2;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;plo
2、t(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=64,key=0.600。Switch nargin;case1;n=varargin1;key=0.600;case2;n=varargin1;key=varargin2;
3、otherwisekey=0.600;n=64;endN=n2;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);ich
4、ao_ans=d;2.Henon(埃农)映射+1=yn+1ax变换核:xynn2n+1=bxn绘图程序:a(0,1.4)0.2b0.314b=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.4for k=1:N;xm=x;ym=y;x=ym+1-a*xm.*xm;y=b*xm;endxn(1)=x;for n=2:N;xm=x;ym=y;x=ym+1-a*xm.*xm;y=b*xm;xn(n)=x;endplot(an*a,xn,k.,markersize,1);endxlim(0,a);实用
5、混沌加密函数:functionichao_ans=ichaos_henon(varargin)%埃农(Henon)映射%0.2key=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)绘图程序:%帐篷映射%0a1%a理想值0.991%0x1n=20;N=n2;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);endfor k=1
6、:N;x=a-(1+a)*abs(x);xp(k)=x;endplot(Aa*a,xp,k.,markersize,1);endxlim(0,a);实用混沌加密函数:functionichao_ans=ichaos_tent(varargin)%帐篷映射%0a1%a理想值0.991%x初值作为密钥%0x=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,0xn=1aaxn1a,ax1绘图程序:%肯特映射n=20;N=n2;xp=zero
7、s(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;elsex=(1-x)/(1-a);endendforcir3=1:N;ifx=a;x=x/a;elsex=(1-x)/(1-a);endxp(cir3)=x;endplot(Aa*a,xp,k.,markersize,1);endxlim(0,a);实用混沌加密函数:functionichao_ans=ichaos_kent(varargin)%0.1x1,将初值作为密钥key%a0.5,当大于0.4时比较理想%参数:%
8、(n,key),n为矩阵阶数,key为迭代初始值。%(n),n为矩阵阶数,key=0.8。%()或(n,key,.),n=64,key=0.8。switchnargin;case1;n=varargin1;key=0.8;case2;n=varargin1;key=varargin2;otherwisekey=0.8;n=64;endN=n2;xp=zeros(1,N);x=key;a=0.4;for cir1=1:N;if x=a;x=x/a;elsex=(1-x)/(1-a);endendfor cir3=1:N;if x=0.5;d(a1,a2)=1;else d(a1,a2)=0;end;end;end;%sum(sum(d)ichao_ans=d;figure;imshow(ichao_ans);