混沌映射(序列)matlab算法“小全”:Logistic、Henon、帐篷、kent(含混沌二值图像生成函数)
- 格式:pdf
- 大小:121.73 KB
- 文档页数:4
4种混沌映射的特点
混沌映射是一种重要的非线性动力学系统,具有复杂的动力学特性,已经被广泛应用于许多领域。
本文介绍了四种常见的混沌映射及其特点。
1. Logistic映射
Logistic映射是一种广泛应用于混沌理论研究中的典型非线性动力学系统。
它的特点是简单易行,具有双稳态和混沌行为,是研究混沌现象的经典示例。
2. Henon映射
Henon映射是一种双参数混沌映射,它的特点是具有分形结构、非周期性、高度敏感依赖于初值和参数,并且在参数空间中形成了复杂的混沌吸引子。
3. Lorenz映射
Lorenz映射是一种具有吸引子的三维非线性动力学系统,它的特点是具有强的混沌行为和灵敏的初始条件依赖性,常被用于模拟大气和海洋中的流体运动。
4. Ikeda映射
Ikeda映射是一种典型的非线性动力学系统,它的特点是具有高度敏感的初值和参数、分形结构和复杂的混沌吸引子,常被用于研究光学系统中的非线性动力学现象。
以上是四种典型的混沌映射及其特点。
混沌映射在科学研究、信息加密、密码学、图像处理等领域有着广泛的应用价值,未来将会有
更多的研究和应用。
些混沌系统进行研究及Matlab仿真是非常必要的,可以为进一步研究混沌系统及控制和利用混沌提供简便的程序方法。
1 Logistic映射Logistic映射,在19世纪中叶由荷兰生物学数学家Verhulst提出,表达式为:xn+1=μxn(1-xn) (xn∈[0,1],μ∈[0,4],n=0,1,…) (1)对于每个确定的m,可以得到相应的一系列x0,x1,…,xn。
通过对μ取值的讨论,我们不难看出:当0<μ≤1时,系统项目号:广西区教育厅立项项目(06年度),学校学科软环境项目“混沌系统的神经网络控制研究(Z20664)”典型混沌系统的Matlab仿真实现王改云 马姝靓 桂林电子科技大学计算机与控制学院 541004引言自20世纪60年代,洛伦兹发现混沌现象以来,混沌理论研究一直受到普遍的关注。
随着混沌研究的不断发展,人们开始把目光聚焦在控制混沌和利用混沌的研究上。
控制和利用混沌的研究都是基于一些典型的混沌系统来进行的。
因此,对这动力学形态非常简单,只有一个周期点x0=0;当1<μ<3时,系统动力学形态也比较简单,有两个周期点0,;当3≤μ≤4时,系统动力学形态十分复杂,系统由倍周期通向混沌。
下面用Matlab对Logistic映射进行仿真。
设系统初值为0.6,迭代200次,分别选取μ=0.5、2、3.2、3.6、4,用matlab编程仿真,画出对应不同μ时的xn。
Matlab仿真程序如下:clear all;close all;图1.1 Logistic映射mu=0.5;x=0.6*ones(1,200);for n=1:200 x(n+1)=mu*x(n)*(1-x(n));endplot(x(1,:),'k','markersize',10);xlabel('n');ylabel('x(n)');title('logistic(\mu=0.5)');得到的仿真结果:(图1.1)进一步研究m的不断变化对系统的影响。
Logistic映射论文:Logistic映射与Henon映射的算法实现及其序列分析摘要:混沌是一种复杂的非线性、非平衡的动力学过程。
该文实现了分别用logistic映射与henon映射实现了对txt 文本文件进行加密解密。
通过对混沌映射产生的序列进行matlab仿真实验分析,证明了混沌映射具有对初值极端敏感、便历性、非周期性和类随机性等特点。
混沌序列非常适合用于作为密码算法中的密钥流产生器,用以构成性能良好的密码系统。
关键词:logistic映射;henon映射;matlab仿真algorithm implementation and sequence analysis of logistic map and henon mapwu wei-gao(city college of dongguan university of technology, dongguan 523106, china)abstract: by chaos is a complex non-linear and non-equilibrium dynamics process. this paper realizes the implementation of encryption and decryption on tet text file through using logistic map and henon map respectively. it is proved that chaotic map has the characteristics of extreme sensitivity on initialvalue, convenience, and class aperiodic random and so on through carrying out matlab simulation sequence analysis on sequences generated by chaotic map. chaotic sequence is very suitable for being used as key stream generator in cryptographic algorithm, which constitutes a password system with good performance.key words: henon map; rc4 algorithm; client/server model随着计算机技术和网络通信技术的不断发展和迅速普及,通信保密问题日益突出。
混沌映射(序列)matlab 算法“小全”:Logistic 、Henon 、帐篷、kent (含混沌二值图像生成函数)1.Logistic (罗切斯特)映射变换核:)1(1n n n x ax x −=+绘图程序:n=64;key=0.512;an=linspace(3.1,3.99,400);hold on;box on;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)实用混沌加密函数:function ichao_ans=ichaos_logistic(varargin)%logistic 序列生成算法%函数名:%logistic 混沌序列生成函数%参数:%(n ,key ),n 为矩阵阶数,key 为迭代初始值。
%(n ),n 为矩阵阶数,key=0.600。
%()或(n ,key ,...),n=64,key=0.600。
switch nargin;case 1;n=varargin{1};key=0.600;case 2;n=varargin{1};key=varargin{2};otherwisekey=0.600;n=64;endN=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;if c(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 (埃农)映射变换核:21n 11x {n n nn ax y bx y −+==++绘图程序:b=0.3;N=400;an=ones(1,N);xn=zeros(1,N);hold on;box on;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]);实用混沌加密函数:function ichao_ans=ichaos_henon(varargin)%埃农(Henon )映射%0.2<key<0.314;理想范围(0.25—0.314)。
Logistic满映射混沌序列性能分析作者:严三国陈永彬来源:《现代电子技术》2010年第03期摘要:通过建立Logistic满映射混沌模型,产生Logistic满映射混沌模拟序列,再进行二值量化后,利用Matlab 7.0对其性能进行仿真分析。
主要分析其初值敏感性、相关性、平衡性、遍历性、相空间及倍周期分岔特性。
分析结果表明,Logistic满映射混沌序列具有良好的自相关性、互相关性、平衡性,而且其序列数量众多,其性能优于传统的伪随机序列。
该序列可广泛用于数字加密、扩频通信等领域中。
关键词:混沌序列;相关性;平衡性;相空间;Matlab仿真中图分类号:TN914 文献标识码:A文章编号:1004-373X(2010)03-194-03Performance Analysis of Full Mapping Chaotic Sequence about LogisticYAN Sanguo,CHEN Yongbin(Chengdu Electromechanical College,Chengdu,610031,China)Abstract:To produce Logistic full mapping chaos analog sequence,a Logistic full mapping chaos model is built,and then it is guantified two level digital sequence. The performance analysis of this chaotic sequence is carried out by use of Matlab 7.0 simulation. Senstivity of initialvalue,correlation,balance,ergodic,phase dimensional and double-periods forks characteristic are mainly analyzed. The analysis results show that the performance of this chaotic sequence is better than that of traditional pseudo random sequences for more well correlative performance and balance performance,and their number is large. It can be widely used in digital encryption and spread spectrum communcation.Keywords:chaotic sequence;correlation;balance;phase dimensional;Matlab simulation混沌现象是在非线性动态系统中出现的确定性、类似随机的过程,这种过程非周期、不收敛但有界,并且对初始值具有及其敏感的依赖性[1]。
混沌信号的产生及其在Matlab中的实现一、混沌信号的概念与特点混沌是一种在确定性系统中表现出的随机、不可预测的行为。
混沌系统具有以下几个显著特征:1. 灵敏依赖于初值:在混沌系统中,微小的初值变化会导致系统行为的巨大变化,这就是所谓的“蝴蝶效应”。
2. 随机性和周期性:混沌系统表现出随机性和周期性的叠加,使得系统的行为呈现出复杂的、看似无序的特征。
3. 分形结构:混沌系统的轨迹具有分形结构,表现出自相似性和自组织性。
二、混沌信号的产生原理混沌信号的产生通常基于非线性动力系统模型,其中最经典的混沌系统包括 Logistic 映射、Henon 映射等。
混沌信号的产生一般遵循以下步骤:1. 选择合适的混沌系统模型,比如 Logistic 映射:$x_{n+1} =rx_n(1-x_n)$。
2. 选择初值和模型参数,并设定迭代次数。
3. 进行迭代计算,得到混沌信号的时域序列。
三、Matlab 中的混沌信号生成Matlab 是一种强大的科学计算软件,提供了丰富的工具箱和函数,使得混沌信号的产生和分析变得非常简单。
在Matlab 中,可以通过以下几种方法产生混沌信号:1. 直接求解微分方程:利用ode45函数求解混沌系统的微分方程,得到混沌时域序列。
2. 迭代计算:利用for循环结构进行模型的迭代计算,得到混沌信号的时域序列。
3. 利用现成的工具箱:Matlab 提供了一些专门用于产生混沌信号的工具箱,比如 ChaosBox。
四、示例代码以下是一个利用 Logistic 映射产生混沌信号的示例代码:```matlabLogistic 映射参数r = 3.9;时域序列长度N = 1000;初值x0 = 0.1;初始化时域序列x = zeros(1, N);x(1) = x0;迭代计算for i = 1:N-1x(i+1) = r * x(i) * (1 - x(i));end绘制混沌信号时域图plot(x);xlabel('时域');ylabel('信号幅值');title('Logistic 映射产生的混沌信号');```五、混沌信号的应用混沌信号作为一种具有随机性和周期性的信号,具有广泛的应用价值,包括但不限于:1. 加密通信:混沌信号可用于加密通信系统中的信息传输,利用混沌的随机特性可以提高数据的安全性。
混沌优化算法是一种通过利用混沌动态系统的特性来寻找最优解的优化算法。
在MATLAB中,可以使用以下步骤来实现混沌优化算法:1. 定义优化问题的目标函数。
2. 确定变量的边界和初始值。
3. 构建混沌动态系统模型。
可以选择Logistic映射或者其他混沌映射来构建模型。
4. 迭代更新混沌动态系统的状态,直到找到最优解。
以下是一个简单的MATLAB代码示例,用于实现混沌优化算法来求解一个简单的二次函数的最小值:```matlab定义目标函数fun = @(x) x(1)^2 + 3*x(2)^2 - 4*x(1)*x(2) - 5*x(1) - 11*x(2) + 20;确定变量的边界和初始值lb = [-5, -5]; ub = [5, 5];x0 = [0, 0];构建混沌动态系统模型k = 40; 迭代次数mu = 4; 控制参数lambda = log(mu)/k; 李雅普诺夫指数f = @(z) z.^2 - mu.*z + lambda; 混沌映射函数迭代更新混沌动态系统的状态,直到找到最优解x = x0;for i = 1:kz = f(x); 映射到新的状态x = x + z; 更新状态if x(1) < lb(1) || x(1) > ub(1) || x(2) < lb(2) || x(2) > ub(2)break; 越界则停止迭代endend输出最优解disp(['最优解为:[', num2str(x), ']']);disp(['最小值为:', num2str(fun(x))]);```这个例子中,我们使用Logistic映射来构建混沌动态系统模型,并使用控制参数mu=4和迭代次数k=40。
初始值设为x0=[0,0],变量的边界设为lb=[-5, -5]和ub=[5, 5]。
通过迭代更新混沌动态系统的状态,直到找到最优解,并输出最优解和最小值。
混沌序列相关序列混沌序列及相关序列在近年来得到了广泛关注,其在多个领域具有广泛的应用前景。
混沌序列具有高度的随机性、不可预测性和遍历性,因此,在通信、金融和人工智能等领域具有重要应用价值。
一、混沌序列与相关序列的概述混沌序列是一种特殊类型的序列,其具有随机性、不可预测性和遍历性。
相关序列则是一种与混沌序列密切相关的序列,其主要特点是具有较高的相关性和稳定性。
这两者都是在非线性系统中产生的,其中混沌序列是通过Logistic映射、蝴蝶映射等方法生成的。
二、混沌序列的生成方法1.Logistic映射:Logistic映射是一种经典的生成混沌序列的方法,其公式为:x_{n+1} = p * (1 - x_n)^2,其中p为控制参数,x_n为当前状态,通过调整p的值,可以生成不同特性的混沌序列。
2.蝴蝶映射:蝴蝶映射是一种基于Logistic映射的改进方法,其公式为:x_{n+1} = (1 + x_n * y_n)^(1/2) - y_n,其中x_n和y_n分别为当前状态,通过调整参数,可以生成具有更高随机性和不可预测性的混沌序列。
3.随机数生成器:随机数生成器是基于线性同余生成原理的一种方法,其可以生成具有均匀分布的随机数序列。
通过对随机数序列进行非线性变换,可以得到具有混沌特性的序列。
三、相关序列的应用领域1.加密通信:混沌序列和相关序列具有较高的随机性和不可预测性,因此,可以用于加密通信领域,提高通信安全性。
2.金融投资:混沌序列和相关序列在金融投资领域的应用主要体现在预测股票价格、优化投资组合等方面。
3.人工智能:混沌序列和相关序列可以用于优化神经网络参数,提高人工智能系统的性能。
四、混沌序列在实际应用中的优势与局限性1.优势:混沌序列具有较高的随机性、不可预测性和遍历性,使得其在通信、金融和人工智能等领域具有广泛的应用前景。
2.局限性:混沌序列的生成方法较多,但大多数方法依赖于参数调整,因此,在实际应用中,参数的选择和优化成为关键问题。
混沌映射(序列)matlab 算法“小全”:Logistic 、Henon 、帐篷、kent (含混沌二值图像生成函数)1.Logistic (罗切斯特)映射变换核:)1(1n n n x ax x −=+绘图程序:n=64;key=0.512;an=linspace(3.1,3.99,400);hold on;box on;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)实用混沌加密函数:function ichao_ans=ichaos_logistic(varargin)%logistic 序列生成算法%函数名:%logistic 混沌序列生成函数%参数:%(n ,key ),n 为矩阵阶数,key 为迭代初始值。
%(n ),n 为矩阵阶数,key=0.600。
%()或(n ,key ,...),n=64,key=0.600。
switch nargin;case 1;n=varargin{1};key=0.600;case 2;n=varargin{1};key=varargin{2};otherwisekey=0.600;n=64;endN=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;if c(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 (埃农)映射变换核:21n 11x {n n nn ax y bx y −+==++绘图程序:b=0.3;N=400;an=ones(1,N);xn=zeros(1,N);hold on;box on;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]);实用混沌加密函数:function ichao_ans=ichaos_henon(varargin)%埃农(Henon )映射%0.2<key<0.314;理想范围(0.25—0.314)。
重量较大。
%参数:%(n ,key ),n 为矩阵阶数,key 为迭代初始值。
%(n ),n 为矩阵阶数,key=0.314。
%()或(n ,key ,...),n=64,key=0.314。
switch nargin;case 1;n=varargin{1};key=0.314;case 2;n=varargin{1};key=varargin{2};otherwisekey=0.314;n=64;endn=64;N=n^2;an=ones(1,N);xn=zeros(1,N);x=0;y=0;a=1.4;for cir1=1:N;xm=x;ym=y;x=ym+1-a*xm.*xm;y=key*xm;endxn(1)=x;for cir2=2:N;xm=x;ym=y;x=ym+1-a*xm.*xm;y=key*xm;xn(cir2)=x;endc=reshape(xn,n,n);%一维矩阵转换二维矩阵d=zeros(n,n);%二维混沌矩阵调制for a1=1:n;for a2=1:n;if c(a1,a2)>=0;d(a1,a2)=1;else d(a1,a2)=0;end;end;end;ichao_ans=d;314.02.0)4.1,0(a ≤<∈b3.帐篷映射变换核:||)1(1n n x a a x +−=+绘图程序:%帐篷映射%0<a<1%a 理想值0.99—1%0<x<1n=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;for n=1:N;x=a-(1+a)*abs(x);endfor k=1:N;x=a-(1+a)*abs(x);xp(k)=x;endplot(Aa*a,xp,'k.','markersize',1);endxlim([0,a]);实用混沌加密函数:function ichao_ans=ichaos_tent(varargin)%帐篷映射%0<a<1%a 理想值0.99—1%x 初值作为密钥%0<x<1%参数:%(n ,key ),n 为矩阵阶数,key 为迭代初始值。
%(n ),n 为矩阵阶数,key=0.99。
%()或(n ,key ,...),n=64,key=0.99。
switch nargin;case 1;n=varargin{1};key=0.99;case 2;n=varargin{1};key=varargin{2};otherwisekey=0.99;n=64;endN=n^2;xp=zeros(1,N);x=key;a=0.998;for cir1=1:N;x=a-(1+a)*abs(x);endfor cir2=1:N;x=a-(1+a)*abs(x);xp(cir2)=x;endc=reshape(xp,n,n);%一维矩阵转换二维矩阵d=zeros(n,n);%二维混沌矩阵调制for a1=1:n;for a2=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);)1,0(∈a4.kent (肯特)映射a x a x x a ax n nx ≤<≤<−−=0,1,11{绘图程序:%肯特映射n=20;N=n^2;xp=zeros(1,N);Aa=ones(1,N);x=0.36;hold on;box on;for a=0.01:0.001:0.5;for cir1=1:N;if x<=a;x=x/a;elsex=(1-x)/(1-a);end endfor cir3=1:N;if x<=a;x=x/a;elsex=(1-x)/(1-a);endxp(cir3)=x;endplot(Aa*a,xp,'k.','markersize',1);endxlim([0,a]);实用混沌加密函数:function ichao_ans=ichaos_kent(varargin)%0.1<x<1,将初值作为密钥key %a<0.5,当大于0.4时比较理想%参数:%(n ,key ),n 为矩阵阶数,key 为迭代初始值。
%(n ),n 为矩阵阶数,key=0.8。
%()或(n ,key ,...),n=64,key=0.8。
switch nargin;case 1;n=varargin{1};key=0.8;case 2;n=varargin{1};key=varargin{2};otherwisekey=0.8;n=64;endN=n^2;xp=zeros(1,N);x=key;a=0.4;for cir1=1:N;if x<=a;x=x/a;elsex=(1-x)/(1-a);end endfor cir3=1:N;if x<=a;x=x/a;elsex=(1-x)/(1-a);endxp(cir3)=x;endc=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);。