matlab 不如 fortran,matlab和fortran语言计算结果差别很大 - 程序语言 - 小木虫 - 学术 科研 互动社区...

matlab程序如下

function Lambda_1 = Wolf_lyap_timeseries(data,N,m,tau,DT,LMX,LMN,EVOLV)

global LE;

global ITS;

% 该函数根据Alan Wolf 1985年发表的文章中附录B给出的fortran代码进行翻译

% Determining lyapunov exponents from a time series,Physica 16D,1985

% data:所求实验系统的时间序列

% N:data数据的长度

% m:相空间重构时的嵌入维数

% tau:相空间重构时的时间延迟(s)

% DT:数据的采样间隔(s)

% EVOLV:替换步之间的演化时间(s)

% LE:时间序列的最大Lyapunov指数(bits/s)

Y = reconstitution(data,N,m,tau);

IND = 1;

SUM = 0.0;

ITS = 0;

N = N - m * tau - EVOLV;

% 寻找初始点的最近点,并计算最短距离DI

DI = 1e+38;

for i = 11 : N

D = 0.0;

for j = 1 : m

D = D + (Y(j,IND)-Y(j,i))*(Y(j,IND)-Y(j,i));

end

D = sqrt(D);

if D > DI || D < LMN

continue;

else

DI = D;

IND2 = i;

continue;

end

end

% 确定演化后的坐标点

Lock = 1;

while ( Lock )

for j = 1 : m

PT1(j) = Y(j,IND+EVOLV);

PT2(j) = Y(j,IND2+EVOLV);

end

% 计算演化后的距离DF

DF = 0.0;

for j = 1 : m

DF = DF + (PT1(j)-PT2(j))*(PT1(j)-PT2(j));

end

DF = sqrt(DF);

ITS = ITS + 1;

SUM = SUM + log(DF/DI)/(EVOLV*DT*log(2));

LE(ITS) = SUM/ITS;

% 寻找替换点

INDOLD = IND2;

Lock1 = 1;

ZMULT = 1.0;

ANGLMX = 0.3;

while ( Lock1 )

THMIN = 3.14;

for i = 1 : N

iii = abs(i-(IND+EVOLV));

if iii > 10

DNEW = 0.0;

for j = 1 : m

DNEW = DNEW + (PT1(j)-Y(j,i))*(PT1(j)-Y(j,i));

end

DNEW = sqrt(DNEW);

if DNEW < ZMULT*LMX && DNEW > LMN

DOT = 0.0;

for j = 1 : m

DOT = DOT + (PT1(j)-Y(j,i)*(PT1(j)-PT2(j)));

end

CTH = abs(DOT/DNEW*DF);

if CTH > 1

CTH = 1;

end

TH = acos(CTH);

if TH < THMIN

THMIN = TH;

DII = DNEW;

IND2 = i;

end

end

end

end

if THMIN > ANGLMX

ZMULT = ZMULT + 1;

if ZMULT > 5

ZMULT = 1.0;

ANGLMX = ANGLMX*2;

if ANGLMX > 3.14

IND2 = INDOLD + EVOLV;

DII = DF;

Lock1 = 0;

end

end

else

Lock1 = 0;

end

end

IND = IND + EVOLV;

if IND >= N

Lambda_1 = LE(end);

Lock = 0;

else

DI = DII;

end

end,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值