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 + -
显示快捷键?