The function ParametrizedSurface3d is particularly useful for teaching on differentiable surfaces, but if I am not wrong there is a problem with the computation of principal directions. They are the eigenspaces for the shape operator. The issue is that the shape operator is presented as a matrix with a left action on vectors, while the eigenvalues are computed as if it was a right action. The following code shows the problem (it is a helicoid with a parametrization such that the first fundamental form is not diagonal):
var('u,v',domain='real') V=vector([u*cos(u+v),u*sin(u+v),u+v]) S=ParametrizedSurface3D(V,(u,v)) dN=S.shape_operator() U=[(i,j[0]) for i,j,k in S.principal_directions()]# A list with eigenvalues and eigenvectors. #Check if they are eigenvalues for the left action [(dN*j-i*j).simplify_full() for i,j in U] Output: [((2*u^2 - (2*u^2 + 1)*sqrt(u^2 + 1) + 1)/(u^4 + u^2), (2*u^2 + 1)/(u^2 + 1)^(3/2)), (-(2*u^2 + (2*u^2 + 1)*sqrt(u^2 + 1) + 1)/(u^4 + u^2), (2*u^2 + 1)/(u^2 + 1)^(3/2))] False #Check if they are eigenvalues for the left action [(j*dN-i*j).simplify_full() for i,j in U] Output: [(0, 0), (0, 0)] True Best, Enrique Artal. -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at https://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.