So far we’ve given fairly abstract descriptions of the geometric objects we’ve been working with. For instance, we said that the differential \(df\) of an immersion \(f: M \rightarrow \mathbb{R}^3\) tells us how to stretch out tangent vectors as we go from the domain \(M \subset \mathbb{R}^2\) into the image \(f(M) \subset \mathbb{R}^3\). Alluding to the picture above, we can be a bit more precise and define \(df(X)\) in terms of limits:

\[ df_p(X) = \lim_{h \rightarrow 0} \frac{f(p+hX)-f(p)}{h}. \]

Still, this formula remains a bit abstract — we may want something more concrete to work with in practice. When we start working with discrete surfaces we’ll see that \(df(X)\) often has an incredibly concrete meaning — for instance, it might correspond to an edge in our mesh. But in the smooth setting a more typical representation of \(df\) is the *Jacobian matrix*

\[

\mathsf{J} = \left[

\begin{array}{cc}

\partial f^1/\partial x^1 & f^1/\partial x^2 \\

\partial f^2/\partial x^1 & f^2/\partial x^2 \\

\partial f^3/\partial x^1 & f^3/\partial x^2 \\

\end{array}

\right].

\]

Here we pick coordinates on \(\mathbb{R}^2\) and \(\mathbb{R}^3\), and imagine that

\[ f(x^1,x^2) = (f_1(x^1,x^2),f_2(x^1,x^2),f_3(x^1,x^2)) \]

for some triple of scalar functions \(f_1,f_2,f_3: M \rightarrow \mathbb{R}\). So if you wanted to evaluate \(df(X)\), you could simply apply \(J\) to some vector \(X = [X^1\ \ X^2]^T\).

__Coordinate Representations Considered Harmful__

You can already see one drawback of the approach taken above: expressions get a lot longer and more complicated to write out. But there are other good reasons to avoid explicit matrix representations. The most profound reason is that matrices can be used to represent many different types of objects, and these objects can behave in very different ways. For instance, can you guess what the following matrix represents?

\[ \left[ \begin{array}{cc} 0 & 1 \\ 1 & 0 \end{array} \right] \]

Give up? It’s quite clear, actually: it’s the adjacency matrix for the complete graph on two vertices. No, wait a minute — it must be the Pauli matrix \(\sigma_x\), representing spin angular momentum along the \(x\)-axis. Or is it the matrix representation for an element of the dihedral group \(D_4\)? You get the idea: when working with matrices, it’s easy to forget where they come from — which makes it very easy to forget which rules they should obey! (Don’t you already have enough things to keep track of?) The real philosophical point here is that *matrices are not objects: they are merely representations of objects! * Or to paraphrase Plato: matrices are merely shadows on the wall of the cave, which give us nothing more than a murky impression of the real objects we wish to illuminate.

A more concrete example that often shows up in geometry is the distinction between linear operators and bilinear forms. As a reminder, a *linear operator *is a map from one vector space to another, e.g.,

\[ f: \mathbb{R}^2 \rightarrow \mathbb{R}^2; u \mapsto f(u), \]

whereas a *bilinear form *is a map from a pair of vectors to a scalar, e.g.,

\[g: \mathbb{R}^2 \times \mathbb{R}^2 \rightarrow \mathbb{R}; (u,v) \mapsto g(u,v).\]

Sticking with these two examples let’s imagine that we’re working in a coordinate system \((x^1,x^2)\), where \(f\) and \(g\) are represented by matrices \(\mathsf{A}, \mathsf{B} \in \mathbb{R}^{2 \times 2}\) and their arguments are represented by vectors \(\mathsf{u},\mathsf{v} \in \mathbb{R}^2\). In other words, we have

\[ f(u) = \mathsf{A u} \]

and

\[ g(u,v) = \mathsf{u^T B v}. \]

Now suppose we need to work in a different coordinate system \((\tilde{x}^1,\tilde{x}^2)\), related to the first one by a change of basis \(\mathsf{P} \in \mathbb{R}^{2 \times 2}\). For instance, the vectors \(u\) and \(v\) get transformed via

\[ \tilde{\mathsf{u}} = \mathsf{Pu}, \]

\[ \tilde{\mathsf{v}} = \mathsf{Pv}. \]

How do we represent the maps \(f\) and \(g\) in this new coordinate system? We can’t simply evaluate \(\mathsf{A}\tilde{\mathsf{u}}\), for instance, since \(\mathsf{A}\) and \(\tilde{\mathsf{u}}\) are expressed in different bases. What we need to do is evaluate

\[ f(u) = \mathsf{Au} = \mathsf{A}\mathsf{P}^{-1}\tilde{\mathsf{u}} \]

and similarly

\[ g(u,v) = \mathsf{u}^T\mathsf{Bv} = (\mathsf{P}^{-1} \mathsf{\tilde{u}})^T \mathsf{B} (\mathsf{P}^{-1}\mathsf{\tilde{v}}) = \tilde{\mathsf{u}}^T (\mathsf{P}^{-\mathsf{T}} \mathsf{B} \mathsf{P}^{-1}) \tilde{\mathsf{v}}. \]

In other words, linear operators transform like

\[ \mathsf{A} \mapsto \mathsf{AP}^{-1}, \]

whereas bilinear forms transform like

\[ \mathsf{B} \mapsto \mathsf{P}^{-\mathsf{T}} \mathsf{B} \mathsf{P}^{-1}. \]

So what we discover is that *not all matrices transform the same way!* But if we’re constantly scrawling out little grids of numbers, it’s very easy to lose track of which transformations should be applied to which objects.

__Standard Matrices in the Geometry of Surfaces__

Admonitions about coordinates aside, it’s useful to be aware of standard matrix representations for geometric objects because they provide an essential link to classical results. We’ve already seen a matrix representation for one object: the differential \(df\) can be encoded as the Jacobian matrix \(\mathsf{J}\) containing first-order derivatives of the immersion \(f\). What about the other objects we’ve encountered in our study of surfaces? Well, the induced metric \(g\) should be pretty easy to figure out since it’s just a function of the differential — remember that

\[ g(u,v) = df(u) \cdot df(v). \]

Equivalently, if we use a matrix \(\mathrm{I} \in \mathbb{R}^{2 \times 2}\) to represent \(g\), then we have

\[ \mathsf{u^T \mathrm{I} v = (Ju)^T (Jv)} \]

which means that

\[ \mathrm{I} = \mathsf{J^T J}. \]

We use the letter “\(\mathrm{I}\)” to denote the matrix of the induced metric, which was historically referred to as the *first fundamental form * — fewer authors use this terminology today. In older books on differential geometry you may also see people talking about “\(\mathsf{E}\)”, “\(\mathsf{F}\)”, and “\(\mathsf{G}\)”, which refer to particular entries of \(\mathrm{I}\):

\[ \mathrm{I} = \left[ \begin{array}{cc} \mathsf{E} & \mathsf{F} \\ \mathsf{F} & \mathsf{G} \end{array} \right]. \]

(Is it clear why “\(\mathsf{F}\)” appears twice?) One might conjecture that these fifth, sixth, and seventh letters of the alphabet have fallen out of fashion precisely because they are so coordinate-dependent and hence carry little geometric meaning on their own. Nonetheless, it is useful to be able to recognize these critters, because they do show up out there in the wild.

Earlier on, we also looked at the *shape operator,* defined as the unique map \(S: TM \rightarrow TM\) satisfying

\[ dN(X) = df(SX), \]

and the *second fundamental form,* defined as

\[ I\!I(u,v) = g(Su,v). \]

(Remember that \(S\) turned out to be self-adjoint with respect to \(g\), and likewise \(I\!I\) turned out to be symmetric with respect to its arguments \(u\) and \(v\).) If we let \(\mathsf{S}, \mathrm{I\!I} \in \mathbb{R}^{2 \times 2}\) be the matrix representations of \(S\) and \(I\!I\), respectively, then we have

\[ \mathsf{u^T} \mathrm{I\!I} {v} = \mathsf{u^T}\mathrm{I}\mathsf{Sv} \]

for all vectors \(\mathsf{u,v} \in \mathbb{R}^2\), or equivalently,

\[ \mathrm{I\!I} = \mathrm{I}\mathsf{S}. \]

Components of \(\mathrm{I\!I}\) are classically associated with *lowercase *letters from the Roman alphabet, namely

\[ \mathrm{I\!I} = \left[ \begin{array}{cc} \mathsf{e} & \mathsf{f} \\ \mathsf{f} & g \end{array} \right], \]

which in coordinates \((x,y)\) are given explicitly by

\[

\begin{array}{rcl}

\mathsf{e} &=& N \cdot f_{xx}, \\

\mathsf{f} &=& N \cdot f_{xy}, \\

\mathsf{g} &=& N \cdot f_{yy}, \\

\end{array}

\]

where \(N\) is the unit surface normal and \(f_{xy}\) denotes the second partial derivative along directions \(x\) and \(y\).

At this point we might want to stop and ask: how does a matrix like \(\mathsf{IS}\) transform with respect to a change of basis? The first term, \(\mathrm{I}\), is a bilinear form, but the second term \(\mathsf{S}\) is a linear map! As emphasized above, we can’t determine the answer by just staring at the matrices themselves — we need to remember what they represent. In this case, we know that \(\mathsf{IS}\) corresponds to the second fundamental form, so it should transform like any other bilinear form: \(\mathsf{IS} \mapsto \mathsf{P}^{-\mathsf{T}} IS \mathsf{P}^{-1}\).

Finally, we can verify that classical geometric expressions using matrices correspond to the expressions we derived earlier using the differential. For instance, the classical expression for normal curvature is

\[ \kappa_n(u) = \frac{I\!I(u,u)}{I(u,u)}, \]

which we can rewrite as

\[ \frac{\mathsf{u}^\mathsf{T} \mathrm{I\!I} \mathsf{u}}{\mathsf{u}^\mathsf{T} \mathrm{I} \mathsf{u}} = \frac{\mathsf{u}^\mathsf{T} \mathsf{IS} \mathsf{u}}{\mathsf{u}^\mathsf{T} \mathrm{I} \mathsf{u}} = \frac{(\mathsf{Ju})^\mathsf{T} (\mathsf{J Su})}{(\mathsf{Ju})^\mathsf{T}(\mathsf{Ju})} = \frac{df(u) \cdot dN(u)}{|df(u)|^2}. \]

Up to a choice of sign, this expression is the same one we obtained earlier by considering a curve embedded in the surface.