Partial Differential Equations
Level 3 — Production (from-scratch derivations, code-from-memory, explain-out-loud) Time limit: 45 minutes Total marks: 60
Instructions: Show all working. Derivations must proceed from stated first principles. Where code is requested, write it from memory; minor syntax slips are tolerated if the algorithm is correct.
Question 1 — Classification and canonical setup (8 marks)
For the PDE
(a) State the discriminant test for a second-order linear PDE and classify this equation. (3 marks)
(b) For the equation (with ), determine the region(s) where it is hyperbolic, parabolic, or elliptic, and explain what the classification physically implies about how information propagates. (5 marks)
Question 2 — Full Fourier series from scratch (12 marks)
Let on , extended -periodically.
(a) Derive the coefficient formulas for a full Fourier series on , showing explicitly the orthogonality integrals you use. (4 marks)
(b) Compute the Fourier series of . (5 marks)
(c) State the Dirichlet conditions and give the value the series converges to at . (3 marks)
Question 3 — Heat equation by separation of variables (12 marks)
Consider on with and .
(a) Carry out separation of variables from scratch: set , obtain the two ODEs, and explain why the separation constant must be negative. (6 marks)
(b) Solve the eigenvalue problem, write the general series solution, and give the formula for the coefficients. (4 marks)
(c) For , , , write the exact solution . (2 marks)
Question 4 — D'Alembert's solution (10 marks)
For the wave equation on with , :
(a) Introduce the characteristic coordinates , and derive D'Alembert's formula from scratch. (6 marks)
(b) Solve for , , and describe physically what the solution represents. (4 marks)
Question 5 — Fourier transform & convolution (10 marks)
(a) Using the definition , prove the differentiation property (state the decay assumption you need). (4 marks)
(b) State the convolution theorem and explain in words why the solution of the infinite-domain heat equation , can be written as a convolution of with a Gaussian kernel. (6 marks)
Question 6 — Finite differences, code from memory (8 marks)
(a) Derive the explicit (FTCS) finite-difference scheme for using forward difference in time and central difference in space, giving the update formula and the stability parameter . (4 marks)
(b) Write from memory a short Python/NumPy loop that advances one time step of this scheme for an interior grid with Dirichlet ends. State the CFL stability condition. (4 marks)
Answer keyMark scheme & solutions
Question 1 (8 marks)
(a) Discriminant . If hyperbolic, parabolic, elliptic. (1) Here : . (1) → hyperbolic (lower-order term does not affect classification). (1)
(b) , , . . (2) For , everywhere ⇒ hyperbolic throughout the open first quadrant. (1) (Parabolic only on axes where or .) (1) Physically: hyperbolic equations have real characteristics, so signals/information propagate along them at finite speed (wave-like); initial disturbances travel without instant smoothing. (1)
Question 2 (12 marks)
(a) Assume . Use orthogonality on : (2) Multiply by the relevant basis function and integrate: (2)
(b) is odd ⇒ , . (1) (1) Integration by parts: (2) So . (1)
(c) Dirichlet conditions: periodic, with a finite number of maxima/minima and finite number of finite discontinuities per period, and absolutely integrable over a period. (2) At (a jump discontinuity of the periodic extension), the series converges to the midpoint . (1)
Question 3 (12 marks)
(a) Let . Then , divide by : (2) Gives and . (2) If the spatial solutions (exponential/linear) cannot satisfy nontrivially; only (written as the constant) yields sinusoidal solutions matching the BCs and a decaying . (2)
(b) , . (1) . (1) (2)
(c) matches , , , so , others : (2)
Question 4 (10 marks)
(a) With , : chain rule gives and . (2) Substituting into ⇒ ⇒ . (1) Integrate: . (1) Apply ICs: , . Integrating the second: . Solve: (2)
(b) : (2) Physically: the initial Gaussian bump splits into two half-amplitude copies travelling right and left at speed without change of shape. (2)
Question 5 (10 marks)
(a) . Integrate by parts: (2) Assuming as (so the boundary term vanishes): . (2)
(b) Convolution theorem: (and inversely, product of transforms ↔ convolution). (2) Transforming the heat equation in : ⇒ . (2) This is a product of transforms, so by the convolution theorem where is the inverse transform of — a Gaussian heat kernel . Hence the temperature is the initial data smoothed (convolved) by a spreading Gaussian. (2)
Question 6 (8 marks)
(a) Forward time: . Central space: . (2) Equate: , with . (2)
(b) From memory:
u_new = u.copy()
u_new[1:-1] = u[1:-1] + r*(u[2:] - 2*u[1:-1] + u[:-2])
u_new[0] = uL; u_new[-1] = uR # Dirichlet ends
u = u_new(3) Stability (CFL): . (1)
[
{"claim":"b_n for f(x)=x on (-pi,pi) equals 2(-1)^(n+1)/n",
"code":"n=symbols('n',positive=True,integer=True); x=symbols('x'); b=Rational(1,pi)*integrate(x*sin(n*x),(x,-pi,pi)); b=simplify(b); expected=2*(-1)**(n+1)/n; result=simplify(b-expected)==0"},
{"claim":"Fourier series at x=pi converges to 0 (midpoint of jump)",
"code":"val=(pi+(-pi))/2; result=(val==0)"},
{"claim":"Heat solution with f=sin(3x),L=pi,alpha=1 is exp(-9t)sin(3x): satisfies u_t=u_xx",
"code":"x,t=symbols('x t'); u=exp(-9*t)*sin(3*x); result=simplify(diff(u,t)-diff(u,x,2))==0"},
{"claim":"D'Alembert (psi=0,phi=exp(-x^2)) solves wave eqn u_tt=c^2 u_xx",
"code":"x,t,c=symbols('x t c'); u=(exp(-(x-c*t)**2)+exp(-(x+c*t)**2))/2; result=simplify(diff(u,t,2)-c**2*diff(u,x,2))==0"}
]