混沌算法测试

 

function [Kc,Kcreg,KcCorr] =ZeroOneTest(dataSet,cont)

%函数功能:完成0-1测试

%输入参数说明

%dataSet:待测试序列

%cont:规定常数值,范围0-pi自选

%------------------------

%输出参数说明

%Kc:利用Mc计算

%Kcreg:利用修正D得到

%------------------------

%测试样例

%dataset = logisticmap(0.3,3.97,4999);

%cont = 2;

% [Kc,Kcreg,KcCorr] =
ZeroOneTest(dataSet,cont);

%参考文献:The 0-1 Test
for Chaos: A Review

%计算开始

Ndata = size(dataSet,1);

p(1)=dataSet(1)*cos(cont);

s(1)=dataSet(1)*sin(cont);

for n = 1:Ndata

       
p(n+1)=p(n)+dataSet(n)*cos(n*cont);

       
s(n+1)=s(n)+dataSet(n)*sin(n*cont);

end

% %画出p和s的轨迹图

% figure

% plot(p,s);

% xlabel('p_c');ylabel('q_c');

% %画图结束;

%计算均方位移

Numn = Ndata/10;%建议不超过数据集大小的十分十一

meanpower = mean(dataSet,1)^2;

for n = 1:Numn

sumMean = 0;

for j = 1:Ndata-Numn%此处公式中N的大小取剩余的值

   
sumMean = sumMean + (p(j+n)-p(j))^2 + (s(j+n)-s(j))^2;

end

Mc(n) = 1/Ndata*sumMean;

Vosc(n) =
meanpower*((1-cos(n*cont))/(1-cos(cont)));

end

D = Mc -Vosc;

x = 1:Numn;

KcCorr = corr(x',D');

% %画图:画出Mc和D的变化

% figure

% n = 1:Numn;

% plot(n,Mc);

% hold on

% plot(n,D);

% xlabel('n');ylabel('Mc,D');

% %结束画图

Dreg = D(Numn) + 1.1*min(abs(D)); 

Kc = log(Mc(Numn))/log(Numn);

Kcreg = log(Dreg)/log(Numn);

end

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优化大师傅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值