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:
- 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.
- 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$
- 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:
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"
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$
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):
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.


Please bear with me as I try to develop a conceptual (pictoral) understanding in my head.
Does it matter whether or not they're arbitrary? In my previous case I had picked arbitrary (but orthogonal) ones and wanted to know.
- The two tangent vectors used for the new basis X and Y are just df/dx and df/dy, right?
– confusedstudent Aug 27 '20 at 05:43