28. Parametrized surfaces and surface area
§9.4 freed a curve from the constraint y=f(x) by introducing a single parameter t. This lesson does the same for surfaces — freeing them from z=f(x,y) by introducing two parameters, u and v. The payoff mirrors §9.5's arc length almost exactly: a formula for surface area built from a normal vector supplied, once again, by §9.2's cross product.
Parametrized surfaces
A parametrized surface is a vector-valued function of two variables:
\vec r(u,v)=\langle x(u,v),y(u,v),z(u,v)\rangle
As (u,v) ranges over some region D in the uv-plane, \vec r(u,v) traces out a surface in three-dimensional space. Every ordinary graph z=f(x,y) is a special case, parametrized trivially by \vec r(x,y)=\langle x,y,f(x,y)\rangle (using x,y themselves as the two parameters) — so nothing here replaces §10.0's graphs, it generalizes them to surfaces with no natural "height function" at all, like a sphere or a torus.
The sphere of radius R, parametrized using the angles from §11.4's spherical coordinates:
\vec r(\varphi,\theta)=\langle R\sin\varphi\cos\theta,\ R\sin\varphi\sin\theta,\ R\cos\varphi\rangle,\qquad\varphi\in[0,\pi],\ \theta\in[0,2\pi]
Tangent vectors and the normal
Holding v fixed and varying u traces a curve on the surface; its tangent vector is the partial derivative $\vec r_u=\frac{\partial\vec r}{\partial u}$ (exactly §9.4's derivative, now one of two partials instead of a single ordinary derivative). Symmetrically, \vec r_v is tangent to the curve traced by holding u fixed.
Both \vec r_u and \vec r_v are tangent to the surface at that point, so §9.2's cross product gives a vector perpendicular to the surface — a normal vector:
\vec r_u\times\vec r_v
This is exactly the same "two tangent directions, cross them for a normal" construction §9.3 used to find a plane through three points — here computed pointwise, at every location on a curved surface instead of once for a flat plane.
The surface area element and surface area
A tiny rectangle in the uv-plane, of area du\,dv, maps onto the surface as a small (nearly flat) parallelogram spanned by \vec r_u\,du and \vec r_v\,dv. By §9.2's parallelogram-area formula:
dS=|\vec r_u\times\vec r_v|\,du\,dv
\text{Surface Area}=\iint_D|\vec r_u\times\vec r_v|\,du\,dv
This is §6.1's arc-length construction, one dimension up — there, ds=|\vec r'(t)|\,dt came from the magnitude of a single tangent vector; here, dS comes from the magnitude of the cross product of two tangent vectors, because area (not length) is what a two-parameter surface sweeps out.
For an ordinary graph z=f(x,y), parametrized by $\vec r(x,y)=\langle x,y,f(x,y)\rangle$: \vec r_x=\langle1,0,f_x\rangle, \vec r_y=\langle0,1,f_y\rangle, and their cross product works out to \langle-f_x,-f_y,1\rangle, with magnitude \sqrt{1+f_x^2+f_y^2} — recovering exactly §5.3's surface-of-revolution integrand pattern, generalized from a curve revolved around an axis to any graph surface at all.
Doing it in Python
The surface area of a sphere of radius R, using the spherical parametrization — confirming the familiar 4\pi R^2:
import sympy as sp
phi, theta, R = sp.symbols('phi theta R', positive=True)
r = sp.Matrix([
R * sp.sin(phi) * sp.cos(theta),
R * sp.sin(phi) * sp.sin(theta),
R * sp.cos(phi)
])
r_phi = r.diff(phi)
r_theta = r.diff(theta)
cross = r_phi.cross(r_theta)
dS = sp.simplify(sp.sqrt(cross.dot(cross)))
print(f"|r_phi x r_theta| = {dS}")
area = sp.integrate(sp.integrate(dS, (phi, 0, sp.pi)), (theta, 0, 2*sp.pi))
print(f"sphere surface area = {sp.simplify(area)}")
The surface area of a graph z=f(x,y), using the formula \sqrt{1+f_x^2+f_y^2} derived directly from the general parametrization — computed for a paraboloid over the unit disk:
import sympy as sp
x, y = sp.symbols('x y')
f = x**2 + y**2
f_x, f_y = sp.diff(f, x), sp.diff(f, y)
dS = sp.sqrt(1 + f_x**2 + f_y**2)
print(f"dS = {dS}")
r_, th = sp.symbols('r_ th', positive=True)
dS_polar = dS.subs({x: r_*sp.cos(th), y: r_*sp.sin(th)})
area = sp.integrate(sp.integrate(dS_polar * r_, (r_, 0, 1)), (th, 0, 2*sp.pi))
print(f"surface area over the unit disk = {sp.simplify(area)}")
Confirming the general cross-product formula reduces to the graph-surface formula \sqrt{1+f_x^2+f_y^2} directly:
import sympy as sp
x, y = sp.symbols('x y')
f = x**2 - y**2 # any function of x,y
r = sp.Matrix([x, y, f])
r_x, r_y = r.diff(x), r.diff(y)
cross = r_x.cross(r_y)
magnitude = sp.simplify(sp.sqrt(cross.dot(cross)))
f_x, f_y = sp.diff(f, x), sp.diff(f, y)
expected = sp.sqrt(1 + f_x**2 + f_y**2)
print(f"|r_x x r_y| = {magnitude}")
print(f"sqrt(1+f_x^2+f_y^2) = {expected}")
print(f"match: {sp.simplify(magnitude - expected) == 0}")
Worked example
Find the surface area of a sphere of radius R using the parametrization $\vec r(\varphi,\theta)=\langle R\sin\varphi\cos\theta,\ R\sin\varphi\sin\theta,\ R\cos\varphi\rangle$.
\vec r_\varphi=\langle R\cos\varphi\cos\theta,\ R\cos\varphi\sin\theta,\ -R\sin\varphi\rangle
\vec r_\theta=\langle-R\sin\varphi\sin\theta,\ R\sin\varphi\cos\theta,\ 0\rangle
Computing the cross product (§9.2's determinant formula) and simplifying with the Pythagorean identity throughout produces, after some algebra:
\vec r_\varphi\times\vec r_\theta=\langle R^2\sin^2\varphi\cos\theta,\ R^2\sin^2\varphi\sin\theta,\ R^2\sin\varphi\cos\varphi\rangle
|\vec r_\varphi\times\vec r_\theta|=R^2\sin\varphi\sqrt{\sin^2\varphi(\cos^2\theta+\sin^2\theta)+\cos^2\varphi}=R^2\sin\varphi\sqrt{\sin^2\varphi+\cos^2\varphi}=R^2\sin\varphi
(using \varphi\in[0,\pi], so \sin\varphi\ge0 and no absolute value is needed).
A=\int_0^{2\pi}\int_0^\pi R^2\sin\varphi\,d\varphi\,d\theta=R^2\int_0^{2\pi}\Big[-\cos\varphi\Big]_0^\pi d\theta=R^2\int_0^{2\pi}2\,d\theta=\boxed{4\pi R^2}
Sanity check. This matches the standard solid-geometry formula for a sphere's surface area exactly — the same kind of independent confirmation §11.4's spherical-coordinates volume computation received. Notably, |\vec r_\varphi\times\vec r_\theta|=R^2\sin\varphi is precisely the same \sin\varphi factor that appeared in §11.4's volume element \rho^2\sin\varphi\,d\rho\,d\varphi\,d\theta (here with \rho fixed at R) — both formulas trace back to the identical geometric fact that a patch near the poles sweeps out less area (or volume) than a same-angular-size patch near the equator. ✓
Your turn
1. For the graph z=x+y (a plane), find \sqrt{1+f_x^2+f_y^2} and use it to find the surface area over the unit square [0,1]\times[0,1].
2. Find the tangent vectors \vec r_u,\vec r_v and the normal vector \vec r_u\times\vec r_v for the cylinder $\vec r(u,v)=\langle\cos u,\sin u,v\rangle$ at (u,v)=\left(\frac\pi2,0\right).
3. True or false: the surface area formula \iint_D|\vec r_u\times\vec r_v|\,du\,dv depends on which parametrization is used to describe a given surface.
Solutions
1. f_x=1, f_y=1, so \sqrt{1+1+1}=\sqrt3 — a constant (the plane is uniformly tilted, so this makes sense: a flat, evenly-slanted surface stretches area by the identical factor everywhere).
A=\iint_{[0,1]\times[0,1]}\sqrt3\,dA=\sqrt3\cdot1=\boxed{\sqrt3}
2. \vec r_u=\langle-\sin u,\cos u,0\rangle, \vec r_v=\langle0,0,1\rangle. At u=\frac\pi2: \vec r_u=\langle-1,0,0\rangle.
\vec r_u\times\vec r_v=\langle-1,0,0\rangle\times\langle0,0,1\rangle=\langle(0)(1)-(0)(0),\,(0)(0)-(-1)(1),\,(-1)(0)-(0)(0)\rangle=\boxed{\langle0,1,0\rangle}
— pointing purely in the y-direction, which makes sense: at u=\frac\pi2, the point on the cylinder is (\cos\frac\pi2,\sin\frac\pi2,0)=(0,1,0), directly "north" on the circular cross-section, where the outward normal to a cylinder centered on the z-axis should indeed point purely along y.
3. False. This mirrors §9.5's parametrization-independence of arc length exactly: surface area is a property of the surface itself (the set of points, and how it curves), not of any particular parametrization chosen to describe it. Two different parametrizations of the identical sphere — say, using (\varphi,\theta) versus some other angle convention — must produce the same total area, even though the intermediate integrand |\vec r_u\times\vec r_v| can look completely different along the way.
Check yourself in code
Compute the surface area of a sphere of radius R using the parametrization $\vec r(\varphi,\theta)=\langle R\sin\varphi\cos\theta,\ R\sin\varphi\sin\theta,\ R\cos\varphi\rangle$.
Print exactly this:
|r_phi x r_theta| = R**2*Abs(sin(phi))
sphere surface area = 4*pi*R**2
import sympy as sp
phi, theta, R = sp.symbols('phi theta R', positive=True)
r = sp.Matrix([
R * sp.sin(phi) * sp.cos(theta),
R * sp.sin(phi) * sp.sin(theta),
R * sp.cos(phi)
])
r_phi = r.diff(phi)
r_theta = r.diff(theta)
cross = r_phi.cross(r_theta)
dS = sp.simplify(sp.sqrt(cross.dot(cross)))
print("|r_phi x r_theta| = ...")
area = sp.integrate(sp.integrate(dS, (phi, 0, sp.pi)), (theta, 0, 2*sp.pi))
print("sphere surface area = ...")
import sympy as sp
phi, theta, R = sp.symbols('phi theta R', positive=True)
r = sp.Matrix([
R * sp.sin(phi) * sp.cos(theta),
R * sp.sin(phi) * sp.sin(theta),
R * sp.cos(phi)
])
r_phi = r.diff(phi)
r_theta = r.diff(theta)
cross = r_phi.cross(r_theta)
dS = sp.simplify(sp.sqrt(cross.dot(cross)))
print(f"|r_phi x r_theta| = {dS}")
area = sp.integrate(sp.integrate(dS, (phi, 0, sp.pi)), (theta, 0, 2*sp.pi))
print(f"sphere surface area = {sp.simplify(area)}")
A parametrized surface \vec r(u,v) frees a surface from needing a z=f(x,y) formula, exactly the way §9.4 freed curves from y=f(x), and its surface area, \iint_D|\vec r_u\times\vec r_v|\,du\,dv, comes from §9.2's cross product measuring how much a tiny uv-rectangle stretches into a surface patch — the direct two-parameter sibling of §9.5's single-parameter arc length. Ordinary graphs recover §5.3's \sqrt{1+f_x^2+f_y^2} formula as a special case, and — like arc length before it — surface area never depends on which parametrization was used to compute it.
Next: integrating a function over a parametrized surface, using this same dS — and its vector-field counterpart, flux, measuring how much a field flows through a surface.