findreplace.m
来自「基于Wolf方法计算Lyapunov指数」· M 代码 · 共 30 行
M
30 行
function P=findreplace(Y,P1,P2,MaxL)
% 寻找替代点
P=P2;
YL=length(Y);
HYL=fix(YL/2);
k=1;
% 优先选择距离较小的,与被替代的点处于以基点为原点的坐标下相同象限中
for i=1:YL
if (sum(abs(Y(P1,:)-Y(i,:))) < MaxL ...
&& sign(Y(P2,1)-Y(P1,1))==sign(Y(i,1)-Y(P1,1))...
&& sign(Y(P2,2)-Y(P1,2))==sign(Y(i,2)-Y(P1,2))...
&& sign(Y(P2,3)-Y(P1,3))==sign(Y(i,3)-Y(P1,3)))
temp(k)=i;
k=k+1;
end
end
% 如没有满足上述条件的点不进行替代,否则取尽可能保持方向不变的点
% 此处采用取外积模最小的点
if k>1
P=temp(1);
PCross=norm(cross(Y(P1,:),Y(P,:)));
for i=2:k-1
PCross1=norm(cross(Y(P1,:),Y(temp(i),:)));
if PCross1 < PCross
P=temp(i);
PCross=PCross1;
end
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?