Duffing equation

This simulation explores the Duffing equation, which reads (in dimensionless variables) as follows:
x'' + 2 γ x' - x (1-x2) = f cos ωt
where each ' denotes a time derivative.



Activities

  1. Set γ = 0 and f = 0 and solve the system for different initial conditions to see non-linear periodic oscillations.
  2. Can you find any equilibrium point? Is it stable?
  3. Select Energy to see the potential energy V(x) = 1/4 x2(2-x2) in red and the mechanical energy E = 1/2 x'2 + V(x) in blue. Discuss the differences among orbits with E > 0, E = 0 and E < 0.
  4. Set γ = 0.05 and f = 0. What happens now with the mechanical energy for different initial conditions?
  5. What about the stability of equilibrium points?
  6. Set γ = 0.1 and f = 0.23. What would happen with equilibrium points?
  7. After a while (say t = 100), click on the graphics displays to erase them. How is the remaining (nearly asymptotic) motion?
  8. What changes if you choose other initial conditions?
  9. Set γ = 0.075 and f = 0.25. By choosing different initial conditions you should be able to find three asymptotically stable limit cycles.
  10. Set γ = 0.1 and f = 0.3. What kind or orbit do you get now. Does it become periodic?
  11. Select Poincaré to display the point (x,x') only each time the external force repeats itself, i.e., when the phase ωt equals (up to a multiple of 2π) a predefined value φ. After a while (and erasing the first few points) a figure will become apparent: the strange attractor (to speed up the calculation set tol = 1E-3 and ∆t = 0.2).
  12. You can run the simulation Duffing_Poincare for a much faster drawing of the Poincaré section, which allows exploring the Cantor set structure of the attractor, as well as one of the mechanisms of chaos: the so-called baker transformation.
  13. An even faster Poincaré section is provided in the example Duffing1 of Dynamics Solver. The sensitive dependence on initial conditions is shown in Duffing5 or in the simulation Duffing_chaos.



This is an English translation of the Basque original for a course on mechanics, oscillations and waves.
It requires Java 1.5 or newer and was created by Juan M. Aguirregabiria with Easy Java Simulations (Ejs) by Francisco Esquembre. I thank Wolfgang Christian and Francisco Esquembre for their help.