This is a follow-up to my previous question., trying to calculate principal curvatures on a fourth order polynomial surface.

This is what I did exactly:

  1. After calculating the unit normal vectors at any point on the surface, I had a 3 x 1 matrix for the normal vector where each component is a function of x,y,and z.
  2. I then calculated the gradient of the unit normal vector, which is a 3 x 3 matrix. The first column, for instance, is: derivative of first component of unit normal vector wrt x, derivative of second component of unit normal vector wrt x, derivative of third component of unit normal vector wrt x. The second and third columns were derivatives of all components wrt y and z respectively. Hence the 3 x 3 matrix. Let's call this matrix $u$
  3. From the kind replies I received on my previous question, I understood that the next step was to express this "gradient" in terms of a new basis on the surface, and had to find two orthogonal tangent vectors on the surface to do so.

I tried to do this. I used the following procedure:

  1. Found two orthogonal unit tangent vectors on the surface. Together with the original normal vector (I needed a square matrix in order to take an inverse), I wrote these together in columns as a 3 x 3 matrix. [normal vector, tangent 1, tangent 2] = matrix "A"

  2. I took $A^{-1}u$ (change of basis), where u is the 3 x 3 matrix I calculated by taking the gradient of the normal vector in terms of x, y, and z, and then I found the eigenvalues and eigenvectors of $u$ in the new basis. The eigenvector matrix, let's call $v$

  3. I then multiplied $Av$ to change the eigenvectors back to the original basis.

The eigenvalues are reasonable - one is zero, one is small, and one is larger, but the eigenvectors are completely wrong. I expected to get the meridional and circumferential directions as two of the three eigenvectors. Instead, I get this abomination below (two out of three eigenvectors plotted):

top view

side view

What am I doing wrong? I thought I just had to convert the vector (well, matrix) representing the gradient of the normal to the new basis, get the eigenvectors in that new basis, and then convert them back to the original basis.


One key point that doesn't seem to be taken into account is that the normal vector $N$ is not defined on all of $\mathbb{R}^3$; but only on the surface. You can of course extend $N$ to a function of all of $\mathbb{R}^3$, but introduces superfluous information. Instead, it's more straightforward to interpret the grandient of $N$ as a 3x2 matrix; here's one way of ammending your process. Let $g(x,y)=\sqrt{1+f^2_x(x,y)+f^2_y(x,y)}$ (with the shorthand $f_x:=\frac{\partial f}{\partial_x}$). Using the parameterization $(x,y)\mapsto(x,y,f(x,y))$, we can define three vectors on each point of the surface $$ N(x,y)=\frac{1}{g(x,y)} \begin{bmatrix} -f_x(x,y) \\ -f_x(x,y) \\ 1 \end{bmatrix} \ \ \ \ \ \ \ X(x,y)= \begin{bmatrix} 1 \\ 0 \\ f_x(x,y) \end{bmatrix} \ \ \ \ \ \ \ Y(x,y)= \begin{bmatrix} 0 \\ 1 \\ f_y(x,y) \end{bmatrix} $$ Where $N$ is the unit normal and $X,Y$ are tangent to the surface. This chocie of $X,Y$ is not arbitrary; they are the standard basis vectors associated with the parameterization. Let $\nabla N$ be the 3x2 derivitave matrix of $N$. The first column of $\nabla N$ is exaclty $\nabla_X N$, and the second column is $\nabla_Y N$ (both are well defined since $X,Y$ are tangent to the surface).

To obtain the shape operator $s$ (specifically, its representation in the $X,Y$ basis), we need to interpret $-\nabla N$ as a map from $\operatorname{span}(X,Y)$ to $\operatorname{span}(X,Y)$ (which we can do since the image of $\nabla N$ is contained in that subspace). To do this, we can compose $-\nabla N$ with any 2x3 matrix $A$ such that $AX=\begin{bmatrix}1\\0\end{bmatrix}$ and $AY=\begin{bmatrix}0\\1\end{bmatrix}$. One particularly simple choice is $$ A=\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \end{bmatrix} $$ One can then explicitly compute the form of $s$ in this basis $$ s=-A\nabla N=\frac{1}{g} \begin{bmatrix} f_{xx} & f_{xy} \\ f_{xy} & f_{yy} \end{bmatrix} -\frac{1}{g^3} \begin{bmatrix} f_xf_x & f_xf_y \\ f_xf_y & f_yf_y \end{bmatrix} \begin{bmatrix} f_{xx} & f_{xy} \\ f_{xy} & f_{yy} \end{bmatrix} $$

  • $\begingroup$ Thank you for taking the time to respond to my question! Please bear with me as I try to develop a conceptual (pictoral) understanding in my head. 1) So first, you defined a new basis at any point using the normal vector and two tangent vectors to the surface. Does it matter whether or not they're arbitrary? In my previous case I had picked arbitrary (but orthogonal) ones and wanted to know. 2) The two tangent vectors used for the new basis X and Y are just df/dx and df/dy, right? $\endgroup$ Aug 27 '20 at 5:43
  • $\begingroup$ AH I think I understand! When we differentiate the normal vector wrt x and y, that corresponds to small movements in the directions of the tangent vectors along x and y, and we see how much the normal changes, right? So in order to get this information of "how much does the normal change when I move along x and y tangents" into a 2D form on the surface, you are looking for some "A" matrix that, when it operates on the X and Y tangent vectors, turns them into the basis vectors for a new basis! Is my understanding correct? $\endgroup$ Aug 27 '20 at 18:15
  • $\begingroup$ I don't understand why my previous method didn't work though. In your example, isn't A just the inverse of X and Y? Isn't that the same as my case, where I define the new basis to be made of the two (arbitrary) tangent vectors and then perform a change of basis using the inverse * the gradient of the normal? What did I do wrong? $\endgroup$ Aug 27 '20 at 18:22
  • $\begingroup$ It's not clear what you mean by "gradient of $N$" here; the point is that we cannot view $N$ as a map $\mathbb{R}^3\to\mathbb{R}^3$, since it is only defined on the surface. Likewise, we cannot take derivatives like $\frac{\partial}{\partial x}N(x,y,z)$ even if $(x,y,z)$ is a point on the surface, since a small change in $x$ will generally leave the surface. Instead, we can choose a parameterization of the surface, write $N$ as a function of the parameters, and differentiate that map. We can then interpret that dierivative as a map $TS\to\mathbb{R}^3$. $\endgroup$
    – Kajelad
    Aug 27 '20 at 20:10
  • 1
    $\begingroup$ The parameters are $x$ and $y$ (these are not the same as the coordinates on $|mathbb{R}^3$). For differentiating with respect to a vector, we can define$$\nabla_v N(p)=\frac{d}{dt}N(\gamma(t))|_{t=0}$$ where $\gamma:(-\epsilon,\epsilon)\to S$ is any path in $S$ satisfying $\gamma(0)=p$ and $\frac{d}{dt}\gamma(0)=v$. In the parameters $x,y$, one has that $\nabla_X N=\frac{d}{dx}N(x,y)$. $\endgroup$
    – Kajelad
    Aug 27 '20 at 21:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.