?? gp_cd.asv
字號:
%function [ln_r,ln_C]=G_P(data,N,tau,m)
% the function is used to calculate correlation dimention with G-P algorithm
% data:the time series
% N: the length of the time series
% tau: the time delay
% m:the embedded dimention m
% GP算法求關聯維
clc
clear
close all
%---------------------------------------------------
% 產生 Lorenz 時間序列
%sigma = 10; % Lorenz方程參數
%r = 28;
%b = 8/3;
%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); % 時間序列(列向量)
%x = normalize_1(x); % 歸一化
%data=x'; % 注意:此處應為一個行向量
data1 = load ('E:\混沌\仿真\data\tongbu.txt');
y = data1(: ,1);
x = data1(: ,2);
%------------------------------------------------------
disp('---------- GP算法求關聯維 ----------');
tau = 14; % 時延
m = 3; % 嵌入維
logdelt = 0.2;
ln_r = [-7:logdelt:0];
delt = exp(ln_r);
for k=1:length(ln_r)
r=delt(k);
C(k)=correlation_interal(m,data,r,tau);% 輸出變量為關聯積分
k
if (C(k)<0.0001)
C(k)=0.0001;
end
ln_C(k)=log(C(k));%lnC(r)
end
C
subplot(211)
plot(ln_r,ln_C,'+:');grid;
xlabel('ln r'); ylabel('ln C(r)');
hold on;
subplot(212)
Y = diff(ln_C)./logdelt;
plot(Y,'+:'); grid;
xlabel('n'); ylabel('slope');
hold on;
%------------------------------------------------------
% 擬合線性區域
ln_Cr=ln_C;
ln_r=ln_r;
LinearZone = [10:35];
F = polyfit(ln_r(LinearZone),ln_Cr(LinearZone),1);
CorrelationDimension = F(1)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -