Computations on the StrakeThe initial procedures and packages to execute via return:Many of the formulas for curvature require the use of the dot product, cross product and Euclidean norm. Procedures are written for each of these.dp := proc(X,Y) X*Y+X*Y+X*Y; end: xp := proc(X,Y) local a,b,c; a := X*Y-X*Y; b := X*Y-X*Y; c := X*Y-X*Y; [a,b,c]; end: nrm := proc(X) sqrt(dp(X,X)); end: The following procedure gives the unit normal to an input surface X, where X is in paramaterized form and in square brackets.UN := proc(X) local Xu,Xv,Z,s; Xu := [diff(X,u),diff(X,u),diff(X,u)]; Xv := [diff(X,v),diff(X,v),diff(X,v)]; Z := xp(Xu,Xv); s := nrm(Z); simplify([Z/s,Z/s,Z/s],sqrt,symbolic); end: The next procedure creates the metric E=x_u dot x_u, F=x_u dot x_v and G=x_v dot x_v. This metric will be used later in the formulas.EFG := proc(X) local Xu,Xv,E,F,G; Xu := [diff(X,u),diff(X,u),diff(X,u)]; Xv := [diff(X,v),diff(X,v),diff(X,v)]; E := dp(Xu,Xu); F := dp(Xu,Xv); G := dp(Xv,Xv); Matrix([[simplify(E),simplify(F)],[simplify(F),simplify(G)]]); end: The formula for Gauss Curvature requires certain partial derivatives being dotted with the unit normal vector.lmn := proc(X) local Xu,Xv,Xuu,Xuv,Xvv,U,l,m,n; Xu := [diff(X,u),diff(X,u),diff(X,u)]; Xv := [diff(X,v),diff(X,v),diff(X,v)]; Xuu := [diff(Xu,u),diff(Xu,u),diff(Xu,u)]; Xuv := [diff(Xu,v),diff(Xu,v),diff(Xu,v)]; Xvv := [diff(Xv,v),diff(Xv,v),diff(Xv,v)]; U := UN(X); l := dp(U,Xuu); m := dp(U,Xuv); n := dp(U,Xvv); Matrix([[simplify(l),simplify(m)],[simplify(m),simplify(n)]]); end: The following computes the Gauss Curvature, K.GK := proc(X) local E,F,G,l,m,n,S,T; S := EFG(X); T := lmn(X); E := S[1,1]; F := S[2,1]; G := S[2,2]; l := T[1,1]; m := T[2,1]; n := T[2,2]; simplify((l*n-m^2)/(E*G-F^2)); end: Mean Curvature, H, is given now.MK := proc(X) local E,F,G,l,m,n,S,T; S := EFG(X); T := lmn(X); E := S[1,1]; F := S[2,1]; G := S[2,2]; l := T[1,1]; m := T[2,1]; n := T[2,2]; simplify((G*l+E*n-2*F*m)/(2*E*G-2*F^2)); end: We'll also use the linear algebra package to compute the eigenvalues of the shape operator. with(LinearAlgebra): The strake computations Strake parameterization and surface area kstrake:=[v*cos(u),v*sin(u),k*u]; Xu = diff(kstrake,u); Xv = diff(kstrake,v); EFG(kstrake); simplify(int(int(sqrt(k^2+v^2),v=1..12/10),u=0..2*Pi)); evalf(subs(k=10/(2*Pi),%)); Surface normal and simplified version: UN(kstrake); U:=simplify(%); Shape operator via -Uu and -Uv -diff(U,u); simplify(-diff(U,v)); -Uu is a scalar function multiple of xv and -Uv is a scalar function multiple of xu: Matrix([[0,k/sqrt(k^2+v^2)],[k/(k^2+v^2)^(3/2),0]]); Principal curvatures: max and min of normal curvatures: Eigenvalues(Matrix([[0,k/sqrt(k^2+v^2)],[k/(k^2+v^2)^(3/2),0]])); Mean curvature: MK(kstrake); Gauss curvature: GK(kstrake); II (second fundamental forms) lmn(kstrake);