Ordinary Differential Equations
Level 4 — Application (novel/unseen problems, no hints) Time limit: 60 minutes Total marks: 60
Instructions: Answer all questions. Show all working. Use / notation for mathematics. Calculators are not required.
Question 1 — Nonlinear system, linearization & stability (14 marks)
Consider the autonomous system modelling two competing quantities:
(a) Find all four critical points of the system. (4)
(b) Compute the Jacobian matrix and classify the critical point at by type and stability. (6)
(c) Classify the critical point at and state whether it is stable, unstable, or a saddle. (4)
Question 2 — Non-homogeneous second-order ODE (12 marks)
Solve the initial value problem
(a) Find the complementary solution. (3)
(b) Using undetermined coefficients (note the resonance), find a particular solution. (5)
(c) Apply the initial conditions to obtain the full solution. (4)
Question 3 — Laplace transform with discontinuous forcing (14 marks)
A system is governed by where the forcing is a rectangular pulse
(a) Express using the Heaviside step function and take the Laplace transform of the whole equation. (4)
(b) Solve for and invert to find for . (5)
(c) Write for (i.e. include the shifted term). (5)
Question 4 — Exact equations & integrating factor (10 marks)
Consider the ODE
(a) Show the first equation is not exact, and comment briefly. (3)
(Hint intentionally omitted — investigate the exactness condition carefully.)
(b) For , find an integrating factor of the form . (4)
(c) Solve the resulting exact equation implicitly. (3)
Question 5 — Series / Cauchy–Euler (10 marks)
(a) Solve the Cauchy–Euler equation (5)
(b) For the equation , seek a power series solution about the ordinary point . Derive the recurrence relation for in terms of , and write the first three nonzero terms of the solution with . (5)
Answer keyMark scheme & solutions
Question 1 (14 marks)
(a) Critical points — set .
From : or . From : or .
- subtract:
Four points: . (4: 1 each)
(b) Jacobian. With , : (2)
At : (2)
Trace , det . Determinant negative saddle point (unstable). Eigenvalues (one positive, one negative). (2)
(c) At : Eigenvalues are the diagonal entries (upper triangular). Both negative real stable node (asymptotically stable). (4: 2 matrix, 2 classification)
Question 2 (12 marks)
(a) Characteristic: (repeated). (3)
(b) Forcing resonates with double root; try . , . Substitute: Set . So . (5)
(c) General: . . . . (4)
Question 3 (14 marks)
(a) (unit step turns off at ). . Transform of ODE (zero ICs): . (4)
(b) Partial fractions: . Inverse of the "" part: . For the shifted term is inactive: (5)
(c) The second term contributes . Full solution: For : (5)
Question 4 (10 marks)
(a) , . , . These are equal — so this equation is actually exact.
Award marks for correctly computing and concluding exactness (the student who claims it is not exact loses marks). Potential , general solution . (3)
(Note: the intended pedagogical twist — testing whether students verify rather than assume. Full marks for correct verification.)
(b) , . , . Not exact (). Try : condition . So , i.e. . (4)
(c) Multiply by : , . Check: , ✓ exact. . . (3)
Question 5 (10 marks)
(a) Try : , (repeated). (5: 2 indicial eq, 1 root, 2 form with log term)
(b) , , . (Since .) Coefficient of : (3)
With : , , odd terms zero. (2)
[
{"claim":"Q1 Jacobian at (1,1) has negative determinant (saddle)","code":"J=Matrix([[-1,-2],[-1,-1]]); result = (J.det()==-1) and (J.det()<0)"},
{"claim":"Q2 particular solution coefficient A=2","code":"t,A=symbols('t A'); yp=A*t**2*exp(t); expr=simplify(diff(yp,t,2)-2*diff(yp,t)+yp-4*exp(t)); sol=solve(Eq(expr,0),A); result = (sol[0]==2)"},
{"claim":"Q2 full solution satisfies ODE and ICs","code":"t=symbols('t'); y=(1-t+2*t**2)*exp(t); ode=simplify(diff(y,t,2)-2*diff(y,t)+y-4*exp(t)); result = (ode==0) and (y.subs(t,0)==1) and (diff(y,t).subs(t,0)==0)"},
{"claim":"Q4 integrating factor x makes equation exact","code":"x,y=symbols('x y'); M=x*(3*x*y+y**2); N=x*(x**2+x*y); result = simplify(diff(M,y)-diff(N,x))==0"},
{"claim":"Q5b recurrence gives a2=-1/2, a4=1/8","code":"a2=-Rational(1,1)/2; a4=-a2/4; result = (a2==Rational(-1,2)) and (a4==Rational(1,8))"}
]