Complex Numbers
Time limit: 90 minutes
Total marks: 60
Instructions: Answer all three questions. Full derivations and justifications required. Where code is requested, use clear pseudocode or Python (NumPy allowed). Use for mathematics.
Question 1 — Euler, De Moivre, and a trigonometric identity (20 marks)
(a) Starting from the Taylor series of , , and , prove Euler's formula . State clearly the convergence assumption you rely on. (5)
(b) State De Moivre's theorem and prove it for all positive integers by induction. (4)
(c) Using De Moivre's theorem and the binomial expansion, derive an expression for purely in terms of . (5)
(d) A physicist models a driven oscillator with the complex amplitude Express and in terms of . Then, for , , (SI units), compute and numerically (radians). (6)
Question 2 — Roots of unity, geometry, and computation (22 marks)
(a) Let . Prove that the distinct th roots of unity sum to zero for , and give a geometric interpretation of this fact in the Argand plane. (5)
(b) Prove that the product of all distinct th roots of unity equals . (4)
(c) Find all solutions of in exponential form with and . Give exact modulus and arguments. (7)
(d) Write a short function nth_roots(c, n) (Python/NumPy or clear pseudocode) that returns the complex th roots of a complex number c. Explain how you obtain the modulus and argument, and how you increment the argument to get successive roots. (6)
Question 3 — Polynomials with complex roots (18 marks)
(a) The polynomial has one real root . Find the remaining two roots exactly, and verify they are complex conjugates. (6)
(b) State and briefly justify the Conjugate Root Theorem: why must non-real roots of a real-coefficient polynomial occur in conjugate pairs? (4)
(c) Using the roots from (a), verify Vieta's relations: sum of roots, sum of pairwise products, and product of roots. (4)
(d) Determine a monic real quartic polynomial having roots and (and their required conjugates). Expand fully. (4)
Answer keyMark scheme & solutions
Question 1
(a) (5 marks) Series: . Substitute (valid since the exponential series converges absolutely for all complex arguments — convergence assumption, 1 mark): Powers of cycle (1 mark). Split into even and odd (1 mark): Recognition of the two series as (2 marks).
(b) (4 marks) Statement: (1). Base trivial (1). Inductive step: assume true for ; then ; expand and use angle-addition to get (2).
(c) (5 marks) . Expand binomially; take real part (1). Let : Real part (2). Substitute (1): (final, 1)
(d) (6 marks) Denominator . So (3 marks) Numbers: , . . rad. (3 marks)
Question 2
(a) (5 marks) Roots are with . Geometric series sum (3). Geometric interpretation: the roots are equally spaced unit vectors (vertices of a regular -gon centred at origin); by symmetry their vector sum is the centroid (2).
(b) (4 marks) Product . (4) (Alternatively: roots are roots of ; product via constant term.)
(c) (7 marks) : modulus (2). Argument: real , imag , second quadrant; , so argument (1). Thus . Fourth roots: modulus (1). Arguments , (2): Roots: (1, reduced to ).
(d) (6 marks)
import numpy as np
def nth_roots(c, n):
r = abs(c)**(1/n) # modulus of each root
phi = np.angle(c) # principal argument of c
return [r*np.exp(1j*(phi+2*np.pi*k)/n) for k in range(n)]Explanation (3 marks): take ; base argument ; increment by each time (equal spacing) to obtain all roots. Correct loop over (3 marks).
Question 3
(a) (6 marks) Divide by : (2). Solve : (3). These are conjugates (1).
(b) (4 marks) If has real coefficients then (conjugation commutes with real-coefficient sums/products, 2). If then , so is also a root (2). Hence non-real roots pair up.
(c) (4 marks) Roots . Sum ✓ (1). Pairwise sum ✓ (2). Product ✓ (1).
(d) (4 marks) Required roots: . (2). Expand: (2)
[
{"claim":"cos5θ expansion coefficients", "code":"import sympy as sp; th=sp.symbols('theta'); c=sp.cos(th); expr=sp.expand_trig(sp.cos(5*th)); target=16*c**5-20*c**3+5*c; result=sp.simplify(expr-target)==0"},
{"claim":"|Z|=1/sqrt10 and arg=-atan(1/3)", "code":"D=(2**2-1**2)+sp.I*1*1; Z=1/D; result=(sp.simplify(sp.Abs(Z)-1/sp.sqrt(10))==0) and (sp.simplify(sp.arg(Z)+sp.atan(sp.Rational(1,3)))==0)"},
{"claim":"fourth roots of -8+8sqrt3 i have modulus 2 and args pi/6,2pi/3,-5pi/6,-pi/3", "code":"c=-8+8*sp.sqrt(3)*sp.I; roots=sp.solve(sp.Symbol('z')**4-c, sp.Symbol('z')); mods={sp.nsimplify(sp.Abs(r)) for r in roots}; result=mods=={sp.Integer(2)}"},
{"claim":"P factors and roots 1,2+3i,2-3i; quartic expansion", "code":"z=sp.symbols('z'); P=z**3-5*z**2+17*z-13; r=sp.solve(P,z); q=sp.expand((z**2-4*z+5)*(z**2-6*z+13)); result=(set(r)=={1,2+3*sp.I,2-3*sp.I}) and (q==z**4-10*z**3+42*z**2-82*z+65)"}
]