1

I have a surface described by an equation of the form: $f(x,y,z) = c_1 x^4 + c_2 x^3y + c_3x^2y^2 +c_4xy^3+c_5y^4 + c_6x^3 +... c_{14}x + c_{15} -z$

I need principal curvatures at any point. Based on my understanding that the shape operator $s = \nabla \textbf{N}$, I did the following:

I first calculated the equation of the normals to the surface by calculating the gradient of the right hand side, and then normalized it by the magnitude.

I then differentiated the resulting 3 x 1 vector with respect to x, y, and z to give a 3 x 3 matrix (should be the shape operator), all using MATLAB, and then calculated the eigenvectors and eigenvalues of the matrix.

However, when I plugged in the x,y,z coordinates on the surface, rather than getting the expected principal curvature directions (meridional and circumferential), I'm getting strange directions.

One example is attached - literally just lines pointing horizontally. There's a top view and a side-on view that looks somewhat mountain-shaped; both show the incorrectly oriented eigenvectors. The other principal curvature direction is literally just pointing upwards (like (0,0,1)), not shown here.

What am I doing wrong here?

Thank you

Side view Top view

1 Answers1

1

You have to differentiate $\textbf N$ with respect to tangent vectors to the surface, which the vectors in the $x$, $y$, and $z$ directions aren't if the surface is $f(x, y, z) = 0$.

Robert Lewis
  • 71,180
  • Thank you for your response! How do I do this? Would you be able to give me an example? Aren't there infinite tangent vectors at a point on the surface? – confusedstudent Aug 25 '20 at 03:35
  • 1
    Yes there are infinite tangent vectors, but you only need two since the surface $f(x, y, z) = 0$ is two-dimensional. – Robert Lewis Aug 25 '20 at 03:38
  • 1
    You can find two such vectors $V$ by solving $\nabla f \cdot V = 0$, since vectors normal to $\nabla f$ are tangent to the surface. – Robert Lewis Aug 25 '20 at 03:40
  • 1
    Do these remarks help? – Robert Lewis Aug 25 '20 at 03:41
  • The two vectors don't have to be orthogonal? Thanks again for your response – confusedstudent Aug 25 '20 at 03:41
  • 1
    No but it is better if they are since then the shape operator will be symmetric. But if you get one vector $V_1$ such that $\nabla f \cdot V_1 = 0$, then you can set $V_2 = \nabla f \times V_1$, and normalize $V_1$, $V_2$ once you've got them. Seen? Do these comments help? – Robert Lewis Aug 25 '20 at 03:48
  • 1
    I see!!! That was really really helpful, thank you so much! – confusedstudent Aug 25 '20 at 03:48
  • 1
    Thank you for the vote and "acceptance"! *Cheers!* – Robert Lewis Aug 25 '20 at 03:51
  • 1
    Sorry quick follow up question. The normal vector has 3 components: some X component that is a function of x and y, a Y component that's a function of x and y, and a Z component that's just -1. If I take two tangents, each of which has an x,y,and z component, and I have to take the dot product with the gradient of the normal-- but each of the normal vector's components in turn can be differentiated wrt x,y,and z, giving me a 33 matrix. (Or 22, if I ignore the z components since they'll give me 0). How do I take the dot product of the tangent vectors with a 3*3 matrix? – confusedstudent Aug 25 '20 at 04:40
  • Try to express everything in terms of a basis of tangent vectors to the surface. There are only two vectors in any such basis. When you differentiate the *unit normal*, you get a vector tangent to the surface which may be expressed in terms of the surface tangent basis. In this basis, you only have a $2 \times 2$ matrix. – Robert Lewis Aug 25 '20 at 04:46
  • 1
    I see.. that makes sense. Thank you! – confusedstudent Aug 25 '20 at 05:13