#include #include struct Par { double s; double r2; double r;} a; void takens(int n, double v[], double dv[], double t) /* Takens equations */ { double x,y,z; x=v[0]; y=v[1]; z=v[2]; dv[0]= -y-z; dv[1]= x+.2*y; dv[2]= .2+z*(x-a.s); return; } void main() { FILE *ptr,*ptr2; int n_it,n_pre,i; double v[3],t,dt,t_pre; double x_old,y_old,z_old; ptr=fopen("rossler1.dat","wt"); ptr2=fopen("rossler_map.dat","wt"); v[0]=0.305; v[1]=0.20; v[1]= 0.2; a.s=5; dt=.01; t_pre=10; t=2000; i=0; while(t>0) { x_old=v[0];y_old=v[1];z_old=v[2]; rk4(takens,v,3,t,dt); if (t_pre<0) { fprintf(ptr,"%lg\t%lg %lg\n",v[0],v[1],v[2]); if((v[0]>0)&&(y_old<0&&v[1]>0)) fprintf(ptr2,"%lg\t%lg\n",v[0],v[2]); } t-=dt; t_pre-=dt; } fclose(ptr); exit(0); }