Code for Duffing orbits
In[37]:=
<<Local`NullclinePlot` grayRegions = NullclinePlot[{v, 0.5 x - 0.5 x^3 - 0.015 v}, {x, -1.5, 1.5}, {v, -0.75, 0.75}, Nullclines -> True, ShowEquilibria -> True, EquilibriumPointColor -> Green, NullclineShading -> True, NullclineContourPlotPoints -> 60]; solution[{x0_, v0_}] := {x[t], v[t]} /. First[NDSolve[{ x'[t] == v[t], v'[t] == 0.5 x[t] - 0.5 x[t]^3 - 0.015 v[t], x[0] == x0, v[0] == v0}, {x[t], v[t]}, {t, 0, 50}]] orbits = ParametricPlot[ Evaluate[{solution[{1, 0.54}], solution[{1, 0.56}]}], {t, 0, 50}, DisplayFunction -> Identity, PlotStyle -> {{Red}, {Yellow}}, PlotPoints -> 50]; Show[grayRegions, orbits, DisplayFunction -> $DisplayFunction, PlotRange -> {{-1.5, 1.5}, {-0.75, 0.75}}, FrameTicks->{Range[-1, 1, .5], Range[-.5, .5, .25]}, Epilog -> {Text[x, {1.5, -.78}, {1,1}], Text[x', {-1.5, 0.74}, {1,1}]}];
If your output will be a sequence of graphs, select a display option.
Display as:
individual images
a movie
both of the above
In[38]:=
(* via VisualDSolve package <<Local`VisualDSolve` SecondOrderPlot[x'' == 0.5 x - 0.5 x^3 - 0.015 x', x, {t, 0, 50}, {x, -1.5, 1.5}, {x', -0.75, 0.75}, InitialValues -> {{1, 0.54}, {1, 0.56}}, NullclineShading -> True, Nullclines -> True, ShowEquilibria -> True, EquilibriumPointColor -> Green, OrbitStyle -> {{Red}, {Yellow}}, FastPlotting -> True, AxesLabel -> {x, x'}]; *)
If your output will be a sequence of graphs, select a display option.
Display as:
individual images
a movie
both of the above
Up to
Appendix: Code generating the examples