www.gusucode.com > 混沌时间序列工具箱 > 混沌时间序列工具箱/ChaosToolbox1p0_trial/EmbeddingDimension_FNN/Main_FNN.m

    % 假近邻算法求嵌入维 (False Nearest Neighbors, FNN)
% 使用平台 - Matlab6.5 / Matlab7.0
% 作者:陆振波,海军工程大学
% 欢迎同行来信交流与合作,更多文章与程序下载请访问我的个人主页
% 电子邮件:luzhenbo@sina.com
% 个人主页:luzhenbo.88uu.com.cn
% 
% 参考文献: M.B.Kennel, R.Brown, H.D.I.Abarbanel. Determining embedding dimension for phase-space reconstruction using a geometrical construction[J]. Phys. Rev. A 1992,45:3403.

clc
clear
close all

%---------------------------------------------------
% 产生 Lorenz 时间序列

sigma = 16;             % Lorenz 方程参数 a = 16 | 10
b = 4;                  %                 b = 4 | 8/3
r = 45.92;              %                 c = 45.92 | 28     

y = [-1;0;1];           % 起始点 (3x1 的列向量)
h = 0.01;               % 积分时间步长

k1 = 10000;             % 前面的迭代点数
k2 = 5000;              % 后面的迭代点数

z = LorenzData(y,h,k1+k2,sigma,r,b);
x = z(k1+1:end,1);      % 时间序列(列向量)

%-----------------------------------------------------------------
% 函数调用

tau = 14;           % 时延
d_max = 8;          % 最大嵌入维
R_tol = 15;         % 判剧1门限
A_tol = 2;          % 判剧2门限

[Percent] = FNN(x,tau,d_max,R_tol,A_tol);

%-----------------------------------------------------------------
% 结果作图

plot(1:d_max,Percent,'-o');
axis([1,d_max,0,100]);
xlabel('Dimension(d)');
ylabel('False NN Percentage');