The area preserving Henon map

Definition

Clear["Global`*"]
b=-1;
a=0.8;  
g1[x_,y_]=1+y-a x^2
g2[x_,y_]=b x
Print["x1=",g1[x0,y0],"   y1=",g2[x0,y0]]
(* Jacobian *)
M[x_,y_]={{D[g1[x,y],x], D[g1[x,y],y]},{D[g2[x,y],x],D[g2[x,y],y]}};
MatrixForm[M[x,y]]
Det[M[x,y]]

Fixed points

fp=Solve[{x==g1[x,y],y==g2[x,y]},{x,y}]

Stability

(* fixed point 1 *)
x01=x/.fp[[1]]; y01=y/.fp[[1]];
M1=M[x01,y01]
L1=Eigenvalues[M1]

(* fixed point 2 *) 
x02=x/.fp[[2]]; y02=y/.fp[[2]]; 
M2=M[x02,y02]
L2=Eigenvalues[M2]

pt1=ListPlot[{{x01,y01}},PlotStyle->{PointSize[0.02],Red}];
pt2=ListPlot[{{x02,y02}},PlotStyle->{PointSize[0.02],Red}];

Orbits

x0=x02; y0=y02+0.001;  (* unstable *)
trajectory={{x0,y0}};
n=10;
For[i=1,i<n,i++, x1=g1[x0,y0]; y1=g2[x0,y0]; AppendTo[trajectory,{x1,y1}]; x0=x1;y0=y1;]
plottraj0=ListPlot[trajectory]

x0=x01; y0=y01+0.1;  (* satble *)
trajectory={{x0,y0}};
n=20;
For[i=1,i<n,i++, x1=g1[x0,y0]; y1=g2[x0,y0]; AppendTo[trajectory,{x1,y1}]; x0=x1;y0=y1;]
plottraj1=ListPlot[trajectory];
Short[trajectory,6]
Show[pt1,pt2, plottraj1,PlotRange->All, Frame->True]

x0=x01; y0=y01+0.2;
trajectory={{x0,y0}};
n=60;
For[i=1,i<n,i++, x1=g1[x0,y0]; y1=g2[x0,y0]; AppendTo[trajectory,{x1,y1}]; x0=x1;y0=y1;]
plottraj2=ListPlot[trajectory];
Short[trajectory,6]
Show[pt1,pt2, plottraj1,plottraj2, PlotRange->All, Frame->True]

x0=x01; y0=y01+0.7;
trajectory={{x0,y0}};
n=60;
For[i=1,i<n,i++, x1=g1[x0,y0]; y1=g2[x0,y0]; AppendTo[trajectory,{x1,y1}]; x0=x1;y0=y1;]
plottraj3=ListPlot[trajectory];
Short[trajectory,6]
Show[pt1,pt2, plottraj1,plottraj2,plottraj3, PlotRange->All, Frame->True]