#include #include struct Par { double s; double s2; double r2; double r;} a; void takens(int n, double v[], double dv[], double t) /* Takens equations */ { double x,y,z,w,rhox, rhoy, rhoz, rhow; x=v[0]; y=v[1]; z=v[2]; w=v[3]; dv[0]= (1.0/1.0)*(-x+1/(1+exp(-1*(a.r+10*x-10*y)))) ; dv[1]= 1*(-y+1/(1+exp(-1*(a.s+10.*x+2*y)))); dv[2]= (1.0/1.0)*(-z+1/(1+exp(-1*(a.r2+10*z-10*w)))); dv[3]= 1*(-w+1/(1+exp(-1*(a.s2+10.*z+2*w)))); return; } void main() { FILE *ptr; int n_it,n_pre,i; double v[4],t,dt,t_pre; ptr=fopen("results1.dat","wt"); a.s=-6.0; a.r=-0.2; v[0]=0.51; v[1]=0.5; v[2]=0.551; v[3]=0.5; dt=0.01; t_pre=1000; t_pre=0; t=180; i=0; while(t>0) { a.r2=a.r+5*(0.01*v[0]-0.02*v[1]); a.s2=a.s+5*(0.01*v[0]-0.03*v[1]); rk4(takens,v,4,t,dt); if(t<80) fprintf(ptr,"%lg\t%lg\t%lg\t%lg\n",v[0],v[1],v[2]+1,v[3]); t-=dt; t_pre-=dt; } fclose(ptr); exit(0); }