In[]:=
ClearAll["Global`*"]hbias={2.,2.,2.,2.,-2.,-2.,-2.,0.,-10.,-10.,-10.,10.,10.};JJ={{0.,0.,-1.,-1.,2.,0.,2.,0.,0.,0.,0.,0.,0.,0.},{0.,0.,-1.,-1.,0.,2.,0.,0.,0.,0.,0.,0.,0.,2.},{-1.,-1.,0.,0.,2.,2.,0.,0.,0.,0.,0.,0.,0.,0.},{-1.,-1.,0.,0.,0.,0.,2.,0.,0.,0.,0.,0.,0.,2.},{2.,0.,2.,0.,0.,0.,0.,-1.,-1.,0.,2.,1.,0.,0.},{0.,2.,2.,0.,0.,0.,-1.,2.,0.,-1.,0.,0.,1.,0.},{2.,0.,0.,2.,0.,-1.,0.,2.,0.,-1.,0.,0.,1.,0.},{0.,0.,0.,0.,-1.,2.,2.,0.,-1.,2.,2.,1.,-2.,0.},{0.,0.,0.,0.,-1.,0.,0.,-1.,0.,0.,2.,1.,0.,0.},{0.,0.,0.,0.,0.,-1.,-1.,2.,0.,0.,0.,0.,1.,0.},{0.,0.,0.,0.,2.,0.,0.,2.,2.,0.,0.,-2.,0.,0.},{0.,0.,0.,0.,1.,0.,0.,1.,1.,0.,-2.,0.,0.,0.},{0.,0.,0.,0.,0.,1.,1.,-2.,0.,1.,0.,0.,0.,0.},{0.,2.,0.,2.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}};n=12;T=1;b=hbias[[1;;n]];W=JJ[[1;;n,1;;n]];tsim={0,10};xinit=RandomReal[{0,1},n];minit=Table[-1,n];eqns=Flatten@Table['[t]-[t]*(1+Exp[-[t]*2*[t]/T]),[t]==b[[i]]+Sum[W[[i,j]]*[t],{j,n}],[0]xinit[[i]],[0]minit[[i]],With[{x=,m=},WhenEvent[{x[t]0,x[t]1},m[t]2*Round[x[t]]-1]],{i,n}];xvars=Table[,{i,n}];mvars=Table[,{i,n}];sol=First@NDSolve[eqns,Flatten@{xvars,mvars},{t,tsim[[1]],tsim[[2]]},DiscreteVariablesmvars]
x
i
m
i
m
i
z
i
z
i
m
j
x
i
m
i
x
i
m
i
x
i
m
i
Out[]=
First[{}]