psolyapunov.m
来自「用matlab编程实现计算粒子群算法中系统的Lyapunov函数与单个粒子的运行」· M 代码 · 共 26 行
M
26 行
clear
T=100; %Simulation time interval
w=0.8; %Inertia factor
K=2.5; %Maximum gain 3.5
instabilitycount=0;
threshold=10;
%for S=1:1000 % Number of Monte Carlo trials
alpha1=K*rand(1,T);
alpha2=K*rand(1,T);
alpha=0.5*alpha1+0.5*alpha2;
x(1)=1;v(1)=0; %initial parameter
F(1)=0.008*x(1)^2+0.4372*v(1)^2+0.064*x(1)*v(1);
for t=2:T
v(t)=w*v(t-1)-alpha(t)*x(t-1);
x(t)=x(t-1)+v(t);
F(t)=0.008*x(t)^2+0.4372*v(t)^2+0.064*x(t)*v(t);
end
if max(abs(x(:)))>=threshold
instabilitycount=instabilitycount+1;
end
%end
instabilitycount;
s=(1:T);
plot(s,x,'b-','MarkerSize',8),xlabel('iteration number'),ylabel('Particle trajectory');
plot(s,F,'b-','MarkerSize',8),xlabel('iteration number'),ylabel('Lyapunov function')
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?