Skip to content

The Driven Oscillator via its Green's Function

The problem

Solve \(\ddot{u} + \omega_0^2u = f(t)\) for an arbitrary forcing \(f\), starting from rest. Do it by building the Green's function — the response to a single unit kick — and then check the machinery against a case you can solve by hand.

Step 1: build \(G\)

We want \(G(t,t')\) satisfying

\[\frac{d^2G}{dt^2} + \omega_0^2G = \delta(t-t')\]

with causal boundary conditions: \(G = 0\) for \(t < t'\).

For \(t \neq t'\) the right-hand side vanishes, so \(G\) solves the homogeneous equation: \(G = A\sin\omega_0(t-t') + B\cos\omega_0(t-t')\) for \(t > t'\), and \(G = 0\) before.

Two matching conditions fix \(A\) and \(B\):

  • Continuity at \(t = t'\). The mass cannot teleport, so \(G(t'^+ ) = G(t'^-) = 0\), giving \(B = 0\).
  • Derivative jump. Integrate the defining equation across an infinitesimal interval: $\(\int_{t'-\epsilon}^{t'+\epsilon}\left(\ddot G + \omega_0^2G\right)dt = 1\)$ The \(\omega_0^2G\) term contributes nothing (it is bounded, and the interval shrinks), so \(\left[\dot G\right] = 1\). With \(\dot G(t'^+) = A\omega_0\) and \(\dot G(t'^-) = 0\): $\(A = \frac{1}{\omega_0}\)$
\[\boxed{\;G(t,t') = \frac{\sin\omega_0(t-t')}{\omega_0}\,\Theta(t-t')\;}\]

Physically: the impulse delivers one unit of momentum, so the velocity jumps by 1 while the position does not. The oscillator then rings freely at \(\omega_0\).

Step 2: convolve

\[u(t) = \int_{-\infty}^{\infty}G(t,t')f(t')\,dt' = \int_0^t \frac{\sin\omega_0(t-t')}{\omega_0}f(t')\,dt'\]

The \(\Theta\) has done its job: the upper limit is \(t\), so only the past contributes. Causality is not an extra assumption bolted on — it is built into which solution of \(\mathcal{L}G = \delta\) we chose.

Note the form: \(G\) depends only on \(t - t'\), so this is a convolution, \(u = G * f\). That is a consequence of the operator being time-translation invariant, and it is why the transform methods of Chapter 3 and 4 apply.

Step 3: check it against something elementary

Take a step force switched on at \(t = 0\): \(f(t) = F_0\) for \(t > 0\).

\[u(t) = \frac{F_0}{\omega_0}\int_0^t\sin\omega_0(t-t')\,dt' = \frac{F_0}{\omega_0^2}\Big[\cos\omega_0(t-t')\Big]_0^{t} = \frac{F_0}{\omega_0^2}\left(1 - \cos\omega_0 t\right)\]

Solve the ODE directly instead: the particular solution is the constant \(u_p = F_0/\omega_0^2\), the complementary function is \(A\cos\omega_0t + B\sin\omega_0t\), and \(u(0) = \dot u(0) = 0\) forces \(A = -F_0/\omega_0^2\), \(B = 0\). Same answer.

Numerically, with \(\omega_0 = 2\), \(F_0 = 1\), the convolution integral and the closed form agree to one part in \(10^{10}\) at every time tested — the residual is quadrature error, nothing more.

The result is worth reading: the mass does not settle at the new equilibrium \(F_0/\omega_0^2\), it oscillates about it with amplitude equal to the displacement itself, reaching twice the static deflection. Suddenly applied loads are twice as severe as gradually applied ones, which is a real and important fact in engineering.

Step 4: what the method buys you

For the step force, the Green's function route was slower than solving the ODE. The payoff appears when \(f\) is not elementary:

  • An arbitrary measured forcing — a recorded earthquake accelerogram, say. The convolution integral is a numerical quadrature; there is no "particular solution" to guess.
  • A train of pulses. Linearity means you add the responses; no new work.
  • A different forcing, same system. \(G\) is computed once and reused forever. It characterises the system, not the problem.

That last point is why engineers speak of the impulse response of a filter, and why its Fourier transform — the transfer function — is the standard way to specify a linear system.

Where it breaks, instructively

Try \(f(t) = F_0\cos\omega_0 t\): forcing exactly at resonance. The convolution gives

\[u(t) = \frac{F_0t\sin\omega_0t}{2\omega_0}\]

which grows linearly without bound. In the eigenfunction picture this is the divergence of \(\sum\phi_n\phi_n^*/\lambda_n\) when an eigenvalue hits zero: the operator \(\mathcal{L} - \omega_0^2\) is not invertible on a forcing that lies along its null direction. The mathematics and the physics agree that there is no steady state, and any real system is saved only by damping or by breaking.

Common mistakes

  • Matching only the value at \(t=t'\). You need the derivative jump too, or \(A\) is undetermined.
  • Forgetting \(\Theta(t-t')\). Without it you integrate over the future and get the advanced Green's function — a valid solution of the same equation, describing anti-causal physics.
  • Assuming \(G\) depends only on \(t-t'\). True here because the operator is time-translation-invariant; false for a system with time-varying coefficients.
  • Expecting the method to be quicker on easy problems. It is not. It is quicker on all the others, and reusable.

Green's functions · Dirac delta · Convolution · ODEs · Laplace transform — the transform route to the same \(G\) · Green's ODE (eq.)