Note

This notebook can be downloaded here: 06_ODE_Duffing_Oscillator.ipynb

Tutorial 3: the Duffing oscillator

The duffing oscillator is a non-linear oscillator that can be described by the following equation:

\[\ddot x + \delta \dot x + \alpha x + \beta x^3 = \ddot x_d(t)\]

The non-linearity comes from the \(\beta x^3\) term.

Part 1: Energies

Determine the equation of the potential energy in the oscillator. Plot it and interprete it for various values of \(\alpha\) and \(\beta\) and comment it.

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
import pandas as pd
%matplotlib nbagg

Part 2: Coding

Code the oscillator and test it in configurations that you see as interresting considering what you found above. Do you see major differences with the linear oscillator ?

class DuffingOscillator:
    """
    Duffing oscillator.
    """
    pass

Part 3: Steady state energy levels

Find a way to measure the energy stored in the oscillator when steady state is reached. Calculate it as function of drive amplitude and frequency.

Part 4 : Plot the phase space