⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 henonentropy.m

📁 混沌系统需要的各种仿真程序,希望对大家(特别是初学者)有用.
💻 M
字号:
function henonentropy

%x doen't vary
% a[i] 表示待测的混沌序列
% p 表示每个exhausting history的第一个指针变量
% e 表示exhausting history的个数
% ps 保存每个exhausting history的第一个指针下标变量
% pmax 保存每个exhausting history中的最长的那个comment中的最后一个元素的指针
m=1024

x(1)=0.1;
y(1)=1.7;

for i=1:m-1
   x(i+1)=y(i)+1-1.4*x(i)*x(i);
   y(i+1)=0.3*x(i);
end

a=y
meany=mean(y)
for n=1:m             %以0为界量化为0,1序列y(n)
    if(y(n)>meany)
        a(n)=1;
    else a(n)=0;
    end;
end;     

leth=length(a)
 num=zeros(leth,1); %存放各个exhausting history中的comment的长度
 
 
 t=2;

n=length(a);        % n为矩阵a的长度
e=0;                % e为步长,先清零
p=1;                % p为指针
if a(2)==a(1)
    e=e+1;
    p=p+1;
    num(1)=1;        % 前两个数的比较,相同则是表示断点在1;
else
    e=e+1;
    p=p+2;
    num(1)=2;
end;                  %  前两个数的比较,不同则是表示断点在2;

while p<n
    ps=p;    % ps为指针
    el=0;    % 一次小循环内每次比较两数组值后所得exhausting history长度;穷尽步长
    emax=0;  % 寻找一个exhausting history中所有el的最大值;最长步长的字数
    pmax=0;  
    for i=1:ps-1
         j=i;
         while(a(j)==a(p)) % 作比较,逻辑比较
             j=j+1;        
             p=p+1;         
             el=el+1; 
             if p==n       % 逻辑比较
                 p=p-1;
                 break;
             end;
         end;
                          
         if p>=pmax
             pmax=p;
         end;
         el=0;    
         p=ps;
     end;
     
     num(t)=pmax+1-ps;
     t=t+1;
    p=pmax+1;
   e=e+1;
end;

if p==n
    e=e+1;
    num(t)=1
end;


s=0;                   % s为熵,并清零;
for i=1:t               % k为断点的个数;
    P(i)=num(i)/leth;      % num为元素个数,leth为数组长度;
    s=s-P(i)*log2(P(i));   % 熵的计算公式
    % bl(i)=s;             % bl作画图表用    
end

disp('********************');
disp(e);
disp(s);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -