clear all
close all
clc
Npop=3;
dt=0.0001;
f_eulero=1/dt;
tend=57;
t=(0:dt:tend);
N=length(t);
rng(11)
C(:,1) = 40.*ones(1,Npop);
C(:,2) = 40.*ones(1,Npop);
C(:,3) = 40.*ones(1,Npop);
C(:,4) = 50.*ones(1,Npop);
C(:,5) = 20.*ones(1,Npop);
C(:,6) = 40.*ones(1,Npop);
C(:,7) = 60.*ones(1,Npop);
C(:,8) = 20.*ones(1,Npop);
Wp=zeros(Npop);
Wp(1,2)=0;
Wp(2,1)=40;
Wp(1,3)=0;
Wp(2,3)=0;
Wf=zeros(Npop);
e0 = 2.5;
r = 0.56;
D=0.0166*ones(1,Npop);
a=[75 30 300 ];
G=[5.17 4.45 57.1];
for trial = 1: 10
disp(trial)
sigma = sqrt(9/dt);
np = randn(Npop,N)*sigma;
nf = randn(Npop,N)*sigma;
yp=zeros(Npop,N);
xp=zeros(Npop,N);
vp=zeros(Npop,1);
zp=zeros(Npop,N);
ye=zeros(Npop,N);
xe=zeros(Npop,N);
ve=zeros(Npop,1);
ze=zeros(Npop,N);
ys=zeros(Npop,N);
xs=zeros(Npop,N);
vs=zeros(Npop,1);
zs=zeros(Npop,N);
yf=zeros(Npop,N);
xf=zeros(Npop,N);
zf=zeros(Npop,N);
vf=zeros(Npop,1);
xl=zeros(Npop,N);
yl=zeros(Npop,N);
step_red = 100;
fs = f_eulero/step_red;
eeg=zeros(Npop,(N-1-10000)/step_red);
m = zeros(Npop,1);
kmax=round(max(D)/dt);
for k=1:N-1
up=np(:,k)+m;
uf=nf(:,k);
if(k>kmax)
for i=1:Npop
up(i)=up(i)+Wp(i,:)*zp(:,round(k-D(i)/dt));
uf(i)=uf(i)+Wf(i,:)*zp(:,round(k-D(i)/dt));
end
end
vp(:)=C(:,2).*ye(:,k)-C(:,4).*ys(:,k)-C(:,7).*yf(:,k);
ve(:)=C(:,1).*yp(:,k);
vs(:)=C(:,3).*yp(:,k);
vf(:)=C(:,6).*yp(:,k)-C(:,5).*ys(:,k)-C(:,8).*yf(:,k)+yl(:,k);
zp(:,k)=2*e0./(1+exp(-r*(vp(:))))-e0;
ze(:,k)=2*e0./(1+exp(-r*(ve(:))))-e0;
zs(:,k)=2*e0./(1+exp(-r*(vs(:))))-e0;
zf(:,k)=2*e0./(1+exp(-r*(vf(:))))-e0;
xp(:,k+1)=xp(:,k)+(G(1)*a(1)*zp(:,k)-2*a(1)*xp(:,k)-a(1)*a(1)*yp(:,k))*dt;
yp(:,k+1)=yp(:,k)+xp(:,k)*dt;
xe(:,k+1)=xe(:,k)+(G(1)*a(1)*(ze(:,k)+up(:)./C(:,2))-2*a(1)*xe(:,k)-a(1)*a(1)*ye(:,k))*dt;
ye(:,k+1)=ye(:,k)+xe(:,k)*dt;
xs(:,k+1)=xs(:,k)+(G(2)*a(2)*zs(:,k)-2*a(2)*xs(:,k)-a(2)*a(2)*ys(:,k))*dt;
ys(:,k+1)=ys(:,k)+xs(:,k)*dt;
xl(:,k+1)=xl(:,k)+(G(1)*a(1)*uf(:)-2*a(1)*xl(:,k)-a(1)*a(1)*yl(:,k))*dt;
yl(:,k+1)=yl(:,k)+xl(:,k)*dt;
xf(:,k+1)=xf(:,k)+(G(3)*a(3)*zf(:,k)-2*a(3)*xf(:,k)-a(3)*a(3)*yf(:,k))*dt;
yf(:,k+1)=yf(:,k)+xf(:,k)*dt;
end
start = 10000;
eeg=diag(C(:,2))*ye(:,start:step_red:end)-diag(C(:,4))*ys(:,start:step_red:end)-diag(C(:,7))*yf(:,start:step_red:end);
switch trial
case 1
eeg1 = eeg;
case 2
eeg2 = eeg;
case 3
eeg3 = eeg;
case 4
eeg4 = eeg;
case 5
eeg5 = eeg;
case 6
eeg6 = eeg;
case 7
eeg7 = eeg;
case 8
eeg8 = eeg;
case 9
eeg9 = eeg;
case 10
eeg10 = eeg;
end
end
tt=t(start:step_red:end);
save sim_data_Fig5_0a eeg1 eeg2 eeg3 eeg4 eeg5 eeg6 eeg7 eeg8 eeg9 eeg10 tt Wf Wp