Parameterized_Surfaces_2.mws

Parameterized Surfaces 2

> with(plots):

```Warning, the name changecoords has been redefined
```

> with(linalg):

```Warning, the protected names norm and trace have been redefined and unprotected
```

Paraboloid z = x^2 + 4*y^2

Parameterized as a graph

The picture only includes portions of the parameterized surface with z <=4.

> plot3d([r,s,r^2+4*s^2],r=-2..2,s=

The top 2 X 2 portion of the derivative of this parameterization
has rank 2, so this parameterization (like all parameterizations of
surfaces z=f(x,y) as graphs (x,y) -> (x,y,f(x,y)) is always
nonsingular.

> jacobian([r,s,r^2+4*s^2],[r,s]);

Trigonometric Parameterization

A reparameterization of the paraboloid.

> subs(r=2*v*cos(u),s=v*sin(u),[r,s,r^2+4*s^2]);

> map(simplify,%);

>

>

The same paraboloid parameterized via trigonometric functions.
Notice how the grid lines in the pictures above and below are very different.
The curves r or s constant are parabolas;
The curves u=constant are parabolas, but v=constant gives an ellipse.

> plot3d([2*v*cos(u),v*sin(u),4*v^2],u=0.. 2 * Pi, v= 0..1,axes=framed,shading=zhue);

Here the derivative has rank 1 when v=0, so the parameterization is
singular on any domain including points where v = 0.

> jacobian([2*v*cos(u),v*sin(u),4*v^2],[u,v]);

A Rational Parameterization.

The substitution u =2* arctan(t) (or t = tan(u/2) gives another interesting
parameterization.

> subs(u=2*arctan(t),[2*v*cos(u),v*sin(u),4*v^2]);

> param3 := map(simplify,map(expand,%));

>

If we let t range from -infinity to + infinity, u would range from -1 to 1.
This parameterization is not onto the entire paraboloid; we miss the curve
corresponding to u= .

Hyperboloid 9*x^2+4*y^2 -*z^2 = -36 of 2 sheets.

Hyperboloid 9*x^2+4*y^2 -*z^2 = -36 of 2 sheets.
This can be parameterized by a scaled hyperbolic version of spherical coordinates.

> hpb_fcn := 9*x^2+4*y^2-z^2;

A warmup on the algebra:

> simplify((sinh(u))^2-(cosh(u))^2);

> subs(x=2*sinh(u)*cos(v),y=3*sinh(u)*sin(v),9*x^2+4*y^2);

> simplify(%);

>

>

> subs(x=2*sinh(u)*cos(v),y=3*sinh(u)*sin(v),z=6*cosh(u),hpb_fcn);

> map(simplify,%);

>

>

This just gives one of the sheets.
Changing z to -6*cosh(u) would give the other.

A hyperbolic cylinder 4*x^2 - z^2 -2*z = 0.

A hyperbolic cylinder 4*x^2 - z^2 -2*z = 0.
Completing the square in z causes us to rewrite this as

4*x^2 - (z+1)^2 = -1,
so letting 2*x be sinh(u) and z+1 be cosh(u) will work.

> subs(x=(1/2)*sinh(u), z= -1 + cosh(u),4*x^2 - (z+1)^2);

> simplify(%);

>

This is just one branch of the hyperbolic cylinder.

The Whitney umbrella.

The Whitney umbrella.

> display3d(gr10);

Singular just at the origin.

> jacobian([u*v,u,v^2],[u,v]);

An ellipsoid x^2 + 4*y^2 + 4*z^2 = 4.

An ellipsoid x^2 + 4*y^2 + 4*z^2 = 4.

> gr1 := plot3d([2*sin(v)*cos(u),sin(v)*sin(u),cos(v)],u=0..2*Pi,v=0..Pi,grid=[16,16],
style=hidden,axes=framed,thickness=3):

> deriv := jacobian([2*sin(v)*cos(u),sin(v)*sin(u),cos(v)],[u,v]);

Tangent to the v = constant curves.

> T_u := submatrix(deriv,1..3,1..1);

Tangent ot the u = constant curves.

> T_v:= submatrix(deriv,1..3,2..2);

A point on the ellipsoid. (u=0,v=3*Pi/10.)

> point_1 := evalf(subs(u=0,v=3*Pi/10,[2*sin(v)*cos(u),sin(v)*sin(u),cos(v)]));

This doesn't work because ,matrices are not evaluated in Maple without an explicit
request e.g. using "eval".

> T_u_1 := evalf(subs(u=0,v=3*Pi/10,T_u));

Evaluate the tangent vector T_u at point_1.

> T_u_1 := evalf(subs(u=0,v=3*Pi/10,eval(T_u)));

Evaluate the tangent vector T_v at point_1.

> T_v_1 := evalf(subs(u=0,v=3*Pi/10,eval(T_v)));

A line segment from point_1 pointing in the direction of T_u.

> gr1_u := spacecurve(evalm(point_1 + t*T_u_1),t=0.. .4,thickness=3,color=red):

A line segment from point_1 pointing in the direction of T_v.

> gr1_v := spacecurve(evalm(point_1 + t*T_v_1),t=0.. .25,thickness=3,color=red):

A coarse grid on the ellipsoid together with T_u and T_v at point1.

> display3d([gr1,gr1_u,gr1_v],thickness=3);

> normal_vec:= crossprod(convert(T_u,vector),convert(T_v,vector));

> map(simplify,normal_vec);

>