Dynamics of the Rössler attractor

Trajectories in 3-D phase space

Clear[t,Tmax,x,y,z]
Tmax=20;xlimit=32;ylimit=35;zlimit=160;a=0.1;b=0.1;c=14;

icoord={{-20,-27,40},{-20,-25,50},{-20,-23,60},{-20,-21,70},{-20,-19,80},{-20,-17,90},{-20,-15,100},{-20,-13,110}};
icoord1={{1.1,1,1}};
Gp=Graphics3D[{PointSize[0.01],Black,Point[icoord]}];
integ[ic__]:=NDSolve[{
x'[t]==-(y[t]+z[t]),
y'[t]==x[t]+a y[t],
z'[t]==b+x[t] z[t]-c z[t],
x[0]==ic[[1]],y[0]==ic[[2]],z[0]==ic[[3]]},{x,y,z},{t,0,Tmax},MaxSteps->Infinity]
p=ParametricPlot3D[Evaluate[{x[t],y[t],z[t]}/.integ/@icoord],{t,0,Tmax},AxesLabel-> {x[t],y[t],z[t]},PlotRange->{{-xlimit,xlimit},{-ylimit,ylimit},{-3,zlimit}},BoxRatios->{1,1,1},PlotPoints->100,ImageSize->460,LabelStyle->18];
Show[p,Gp]

Stretching, folding and re-injection process

Clear[t,Tmax,x,y,z,a,b,c,tmax]
Tmax=50;
xlimit=22;ylimit=20;mylimit=-35;zlimit=60;
a=0.1;b=0.1;c=14;
Animate[
intsol1=NDSolve[{
x'[t]==-(y[t]+z[t]),y'[t]==x[t]+a y[t],z'[t]==b+x[t] z[t]-c z[t],x[0]==-20,y[0]==-19,z[0]==10},
{x,y,z},{t,0,tmax},MaxSteps->Infinity];
intsol2=NDSolve[{
x'[t]==-(y[t]+z[t]),y'[t]==x[t]+a y[t],z'[t]==b+x[t] z[t]-c z[t],x[0]==-20,y[0]==-21,z[0]==10},
{x,y,z},{t,0,tmax},MaxSteps->Infinity];
intsol3=NDSolve[{
x'[t]==-(y[t]+z[t]),y'[t]==x[t]+a y[t],z'[t]==b+x[t] z[t]-c z[t],x[0]==-20,y[0]==-23,z[0]==10},
{x,y,z},{t,0,tmax},MaxSteps->Infinity];
intsol4=NDSolve[{
x'[t]==-(y[t]+z[t]),y'[t]==x[t]+a y[t],z'[t]==b+x[t] z[t]-c z[t],x[0]==-20,y[0]==-25,z[0]==10},
{x,y,z},{t,0,tmax},MaxSteps->Infinity];
p1=ParametricPlot3D[Evaluate[{x[t],y[t],z[t]}/.intsol1],{t,0,tmax},AxesLabel-> {x[t],y[t],z[t]},PlotRange->{{-xlimit,xlimit},{mylimit,ylimit},{-3,zlimit}},PlotPoints->550,PlotStyle->{Black},ImageSize->530,BoxRatios->{1,1,1}];
p2=ParametricPlot3D[Evaluate[{x[t],y[t],z[t]}/.intsol2],{t,0,tmax},AxesLabel-> {x[t],y[t],z[t]},PlotRange->{{-xlimit,xlimit},{mylimit,ylimit},{-3,zlimit}},PlotPoints->550,PlotStyle->{Red},ImageSize->530,BoxRatios->{1,1,1}];
p3=ParametricPlot3D[Evaluate[{x[t],y[t],z[t]}/.intsol3],{t,0,tmax},AxesLabel-> {x[t],y[t],z[t]},PlotRange->{{-xlimit,xlimit},{mylimit,ylimit},{-3,zlimit}},PlotPoints->550,PlotStyle->{Blue},ImageSize->530,BoxRatios->{1,1,1}];
p4=ParametricPlot3D[Evaluate[{x[t],y[t],z[t]}/.intsol4],{t,0,tmax},AxesLabel-> {x[t],y[t],z[t]},PlotRange->{{-xlimit,xlimit},{mylimit,ylimit},{-3,zlimit}},PlotPoints->550,PlotStyle->{Green},ImageSize->530,BoxRatios->{1,1,1}];
Show[p1,p2,p3,p4,
Graphics3D[{PointSize[0.02],Black,Point[Dynamic[Evaluate[{x[tmax],y[tmax],z[tmax]}/.intsol1]]]}],
Graphics3D[{PointSize[0.02],Red,Point[Dynamic[Evaluate[{x[tmax],y[tmax],z[tmax]}/.intsol2]]]}],
Graphics3D[{PointSize[0.02],Blue,Point[Dynamic[Evaluate[{x[tmax],y[tmax],z[tmax]}/.intsol3]]]}],
Graphics3D[{PointSize[0.02],Green,Point[Dynamic[Evaluate[{x[tmax],y[tmax],z[tmax]}/.intsol4]]]}],LabelStyle->19],
{tmax,0+$MachineEpsilon,Tmax},AnimationRunning->False,AnimationRate->0.8,SaveDefinitions->True]

Creation of this notebook was supported by IT Academy program of Information Technology Foundation for Education (HITSA).