Here is the Rossler system, one of the simplest examples of 3 dimensional deterministic chaos (under certain conditions according to "params"). Thanks to Doug and Joe for various assists. Comments and critiques most welcome ! restart; interface(displayprecision=10): ross_x:=diff(x(t),t)=-y(t)-z(t): ross_y:=diff(y(t),t)=x(t)+a*y(t): ross_z:=diff(z(t),t)=b+x(t)*z(t)-c*z(t): rossler_sys:=ross_x,ross_y,ross_z; #Find fixed points: sol:=solve({rhs(ross_x)=0,rhs(ross_y)=0,rhs(ross_z)=0},{x(t),y(t),z(t)}): fp_sol:=solve({rhs(ross_x)=0,rhs(ross_y)=0,rhs(ross_z)=0},{x(t),y(t),z(t)}): # judicious choice of the following determines chaotic behaviour or not. params:={a=0.32,b=0.3,c=4.5}: fp_sol:=allvalues(eval(fp_sol,params)): fp1:=fp_sol[1];fp2:=fp_sol[2]; #Jacobian: J := frontend(Student:-VectorCalculus:-Jacobian, [map(rhs,[rossler_sys]), [x,y,z](t)], [{`*`,`+`,list},{}]); ev1:=LinearAlgebra[Eigenvalues](eval(J,fp1 union params)); ev2:=LinearAlgebra[Eigenvalues](eval(J,fp2 union params)); # now take a look at the orbits assign(params); DEtools[DEplot3d]({rossler_sys},{x(t),y(t),z(t)},t=50..200,[[x(0)=1,y(0)=1,z(0)=1]],scene=[x(t),y(t),z(t)],stepsize=0.05,thickness=1,linecolor=blue,orientation=[40,120]); # To do: # check eigenvectors # plot poincare return map # plot bifurcation diagram (vary b) # plot 2D or 1D orbits with differing IVPs # look at overall qualitative behaviour