尼枚罗指数matlab,matlab编写Lyapunov指数计算程序汇总.doc
时间: 2023-10-16 21:11:00 浏览: 97
(matlab编写的Lyapunov指数计算程序
抱歉,我不太明白您的问题。您是否需要关于尼曼罗指数和Lyapunov指数计算的MATLAB程序?如果是的话,可以参考以下代码:
计算尼曼罗指数的MATLAB代码:
```matlab
function [n] = nemenyi(x,alpha)
% 计算尼曼罗指数
% 参数x:样本数据
% 参数alpha:显著性水平
% 返回值n:尼曼罗指数
[n,k] = size(x);
r = tiedrank(x);
rbar = mean(r,1);
s2 = 1/12/(n-1)*(sum((r-repmat((n+1)/2,n,1)).^2)-n*(k^2-1)/4);
T2 = n*k*(k+1)/12*sum((rbar-(n+1)/2).^2)/s2;
crit_val = finv(1-alpha,k-1,(k-1)*(n-1));
n = (k-1)*T2/crit_val;
end
```
计算Lyapunov指数的MATLAB代码:
```matlab
function [lambda] = lyapunov(x,dt)
% 计算Lyapunov指数
% 参数x:样本数据
% 参数dt:时间步长
% 返回值lambda:Lyapunov指数
[n,k] = size(x);
m = 5; % 近邻个数
epsilon = 0.2; % 扰动幅度
% 计算每个点的近邻
P = zeros(n,m);
for i = 1:n
dist = sqrt(sum((x-repmat(x(i,:),n,1)).^2,2));
[~,idx] = sort(dist);
P(i,:) = idx(2:m+1);
end
% 计算每个点的Lyapunov指数
lambda = zeros(n,1);
for i = 1:n
d = zeros(m,1);
for j = 1:m
xj = x(P(i,j),:);
dx = xj-x(i,:);
d(j) = norm(dx)/epsilon;
end
lambda(i) = 1/m*sum(log(d))/dt;
end
end
```
希望能对您有所帮助。
阅读全文