#include "modelIzhineuron.h" #include "math.h" #include "iostream.h" inline double MinVal(double a,double b) { double Min; if (a<=b) Min=a; else Min=b; return(Min); } void modelIzhineuron (double t, double *x, double *dx, double *parameter, double *extra) { double a, b, c, d, vpeak, Idc, k,vr,vt; double Cap; double U; Cap = parameter[0]; a = parameter[1]; b = parameter[2]; c = parameter[3]; d = parameter[4]; vpeak = parameter[5]; Idc = parameter[6]; k = parameter[7]; vr = parameter[8]; vt = parameter[9]; int type=int(parameter[10]); if (type==1) { if (x[0]>=vpeak) { x[0]=c; x[1]=x[1]+d; } } if (type==2) { if (x[0]>=vpeak-0.1*x[1]) { x[0]=-53+.04*x[1]; x[1]=MinVal(x[1]+20,670); } } if (type==3) { if (x[0]>=vpeak) x[0]=c; if (x[0]<-55) U=0; else U=0.025*(x[0]+55)*(x[0]+55)*(x[0]+55); } //cout<<x[0]<<endl; dx[0] = (k * (x[0] - vr) * (x[0] - vt) - x[1] + parameter[6] + extra[1])/Cap; if (type!=3) { dx[1] = a * (b * (x[0] - vr) - x[1]);} if (type==3) { dx[1]=0.2*(U-x[1]); } }