ROV19_6.MWS

Part 4. Surfaces with MAPLE

Chapter 19. Surfaces in Space

> restart:

19.2 Regular Parametrized Surface

Exercise s.

1. Prove that the vector-valued function

(a) r = is the -regular parametrization of the paraboloid ,

What are the coordinate curves of these parametrizations? Solution . (a) First check the regularity condition (b)

> r:=[u+v, u-v, u^2+v^2]:

> ru:=diff(r,u): rv:=diff(r,v): linalg[crossprod](ru,rv); # we obtain a nonzero vector.

Then substitute the vector-valued function in the explicit equation:

> r1:=simplify(subs({x=u+v, y=u-v, z=u^2+v^2},z-(x^2+y^2)/2));

2. Find which of the following surfaces are compact, and plot them using the command implicitplot3d

(see Section 19.3.2) (a) x^2-y^4+z^6= 1, (b) x^2-2x+y^2+z^4= 1, (c) x^2+y^2z^2= 1, (d) x^2+y^4+z^6= 1.

> plots[implicitplot3d](x^2+y^4+z^6=1, x=-2..2, y=-2..2, z=-2..2, axes=boxed); # etc.

>

19.3 Methods of Generating Surfaces

19.3.2 Methods of Generating Surfaces

The coordinate systems

> plots[coordplot3d](cylindrical, style=`PATCH`);

> plots[coordplot3d](spherical, style=`PATCH`); # etc.

>

Plot graphs of functions in two variables using the command plot3d .

> plot3d(sin(x)*cos(y), x=-Pi..Pi, y=-Pi..Pi, axes=boxed);

> plot3d(x^2+y^2, x=-3..3, y=-sqrt(9-x^2)..sqrt(9-x^2), axes=boxed);

> plot3d(x^2-y^2, x=-3..3, y=-3..3, axes=boxed);

Plot level curves of these functions using the command contourplot

> plots[contourplot](x^2+y^2, x=-3..3, y=-3..3);

> plots[contourplot](sin(x)*cos(y), x=-Pi..Pi, y=-Pi..Pi);

> plots[contourplot](x^2-y^2, x=-3..3, y=-3..3);

>

An implicitly given surface can be visualized using the command implicitplot3d , but this method is coarse,

as can be seen from the example of the cone x^2+y^2-z^2= 0.

> plots[implicitplot3d](x^2+y^2-z^2=0, x=-3..3, y=-3..3,z=-5..5, style=patchcontour, orientation=[40,80], axes=boxed);

Starting with parametric equations, we plot both (up and down) sheets of a cone using plot3d and display3d .

> r:=[u*cos(v), u*sin(v), u]:

> P1:=plot3d(r, u=0..3, v=0..2*Pi, axes=framed): %;

> P2:=plot3d(r, u=-3..0, v=0..2*Pi, axes=framed): %;

> plots[display3d]({P1, P2}, style=patchcontour, orientation=[45,75], axes=framed);

>

Plot the hyperboloid of one sheet using the above program with

> S := signum(u)*sqrt(u^2+1): r := [S*cos(v), S*sin(v), u]:

> P1:=plot3d(r, u=0..3, v=0..2*Pi): P2:=plot3d(r, u=-3..0, v=0..2*Pi): plots[display3d]({P1, P2}, style=patchcontour, orientation=[45,75], axes=framed);

Plot graphs for complex expressions using the command complexplot3d

> plots[complexplot3d](GAMMA(z), z= -Pi-Pi*I..Pi+Pi*I,view=0..5, grid=[30,30], orientation=[-120,45],axes=frame, style=patchcontour, thickness=2);

Example 1 . For the function the gradient nabla F= is zero only at the point O(0,0,0),

>

The function wind chill factor }

> restart: with(plots):

```Warning, existing definition for changecoords has been overwritten
```

> L := [[[5,35,32],[10,35,22],[15,35,16],[20,35,12],[25,35,8],
[30,35,6],[35,35,4],[40,35,3],[45,35,2]],[[5,30,27],[10,30,16],
[15,30,9],[20,30,4],[25,30,1],[30,30,-2],[35,30,-4],[40,30,-5], [45,30,-6]],
[[5,25,22],[10,25,10], [15,25,2], [20,25,-3],[25,25,-7],[30,25,-10],
[35,25,-12],[40,25,-13],[45,25,-14]],[[5,20,16],[10,20,3],[15,20,-5],
[20,10,-24],[25,10,-29],[30,10,-33],[35,10,-35],[40,10,-37],[45,10,-38]],
[[5,15,11],[10,15,-3],[15,15,-11], [20,15,-17],[25,15,-22],[30,15,-25],
[35,15,-27],[40,15,-29],[45,15,-30]],[[5,10,6],[10,10,-9],[15,10,-18],
[20,10,-24],[25,10,-29],[30,10,-33],[35,10,-35],[40,10,-37],[45,10,-38]],
[[5,5,0],[10,5,-15],[15,5,-25],[20,5,-31],[25,5,-36],[30,5,-41],[35,5,-43],
[40,5,-45],[45,5,-46]],[[5,0,-5],[10,0,-22],[15,0,-31],[20,0,-39],
[25,0,-44],[30,0,-49],[35,0,-52],[40,0,-53] ,[45,0,-54]],[[5,-5,-10],
[10,-5,-27],[15,-5,-38],[20,-5,-46],[25,-5,-51], [30,-5,-56],[35,-5,-58],
[40,-5,-60], [45,-5,-62]],[[5,-10,-15],[10,-10,-34],[15,-10,-45],[20,-10,-53],
[25,-10,-59],[30,-10,-64],[35,-10,-67],[40,-10,-69],[45,-10,-70]]]:

> P1:=surfdata(L): P2:=plot3d(-20, x=5..45, y=-10..35):

> display3d({P1,P2} ,style=PATCHCONTOUR,labels=[W,T,WC], axes=boxed);

>

The commands listplot3d and matrixplot

> listplot3d([seq([seq(sin((i-15)*(j-10)/Pi/20), i=1..30)], j=1..20)], axes=framed);

>

> with(linalg): A:=hilbert(6): B:=toeplitz([1,2,3,-3,-2,-1]):

```Warning, protected name norm has been changed and unprotected
```

```Warning, protected name trace has been changed and unprotected
```

> matrixplot(A+B, heights=histogram, gap=0.25, style=patch,axes=framed);

>

19.4 Tangent Planes and Normal Vectors

19.4.1 Main Equations and Properties

Plot the tangent plane to the surface graph using the following program:

> f:=x^2+y^2: # use any function f(x,y)

> fx:=diff(f,x); fy:=diff(f,y);

> TM:=f+fx*(u-x)+fy*(v-y); # any tangent plane

> TMP:=subs({x=1, y=2}, TM); # tangent plane at P

> p1:=plot3d(f, x=-sqrt(16-y^2)..sqrt(16-y^2), y=-4..4): p2:=plot3d(TMP, u=-1..4, v=-1..3,color=green):

> plots[display3d]({p1, p2}, axes=framed);

>

5. Prove that the tangent planes of the surface xyz= form tetrahedra of constant volume

with the three coordinate planes.

Solution . Denote by TM the tangent plane at the point (x,y,z) on the surface.

Let be the segments of the intersection of TM with the coordinate axes:

> TM:=linalg[dotprod](gr, [xx-x, yy-y, zz-z], 'orthogonal');

> x1:=solve(subs({yy=0, zz=0}, TM), xx);

> y1:=solve(subs({xx=0, zz=0} ,TM), yy);

> z1:=solve(subs({yy=0, xx=0}, TM), zz);

> V:=subs(z=a^3/(x*y), x1*y1*z1);

>

The volume V= 27 does not depend on the point on the surface.

19.4.2 Extrema of Functions Defined on Surfaces

Problem 1. Find the local extrema of the function .

Solution . First plot the graph and the chart of level curves of f:

> f:=(x,y) -> 3*x^2*y-x^3-y^4;

> plot3d(f(x,y), x=-6..10, y=-4..5, axes=framed);

> plots[contourplot](f(x,y), x=-6..10, y=-4..5, contours=35);

Then calculate the partial derivatives f'_x, f'_y

> fx:=diff(f(x,y), x); fy:=diff(f(x,y), y);

and finally solve the system f'_x= 0, f'_y= 0

> sol:=solve({fx=0, fy=0}, {x, y});

Two points are possible extrema: P_1(0,0) and P_2(6,3).

Calculate second partial derivatives of the given function and the term D

> fxx:=diff(fx, x); fxy:=diff(fx, y); fyy:=diff(fy, y); Delta:=fxx*fyy-fxy^2;

At the point P_1 we have

> subs({x=0, y=0}, [fxx, fxy, fyy, Delta]);

>

Since a_{11}=0, a_{12}=0, a_{22}=0 hold, then D=0 and the point P_1 requires additional investigation.

Problem 2 . Find the dimensions of the cuboid of largest volume that can be fitted inside the ellipsoid

assuming that each edge is parallel to a coordinate axis.

Solution .

> restart: with(linalg): V:=8*x*y*z: F:=x^2/a^2+y^2/b^2+z^2/c^2:

```Warning, protected name norm has been changed and unprotected
```

```Warning, protected name trace has been changed and unprotected
```

> allvalues(RootOf(3*_Z^2-1));

> x0:=allvalues(RootOf(3*_Z^2- 1))[1]*a; y0:=allvalues(RootOf(3*_Z^2-1))[1]*b; z0:=allvalues(RootOf(3*_Z^2- 1))[1]*c;

> V0:=subs({x=x0, y=y0, z=z0}, V); subs({x=x0, y=y0, z=z0}, F);

>

Conclusion : The maximal cuboid has edges x_0= y_0= z_0= 1/ and the volume V_0= 8 /9 abc.

Exercises .

1. Find local extrema of the function .

Solution .

> f:=(x,y) -> x^3/3+9*y^3-4*x*y;

> plot3d(f(x,y), x=-1..2, y=-0.5..1, axes=boxed);

> plots[contourplot](f(x,y), x=-1..2, y=-0.5..1, contours=35);

> fx:=diff(f(x,y), x); fy:=diff(f(x,y), y);

> sol:=solve({fx=0, fy=0}, {x, y});

> fxx:=diff(fx,x); fyy:=diff(fy,y); fxy:=diff(fx,y); Delta:=fxx*fyy-fxy^2;

> subs(sol[1], [fxx,Delta,f(x,y)]);

> subs(sol[2], [fxx,Delta,f(x,y)]);

>

Conclusion : The function has the minimum f_{min= -{64}/{81} at P_1(4/3, 4/9); the point P_2(0,0) is a saddle.

19.5 Osculating Paraboloid and Type of a Smooth Point

19.5.1 Properties of the Osculating Paraboloid

Find k_1 and k_2 as roots of the characteristic polynomial:

> sol:=solve((a11-t)*(a22-t)-a12*a12, t):

> k1:=sol[1]; k2:=sol[2];

>

The first three cases are general. In the last two cases F is a paraboloid of revolution or a plane.

Plot examples of surfaces with P=O of the above types:

> plot3d(x^2+9*y^2, x=-.1...1, y=-.1...1, axes=boxed);

> plot3d(x^2-y^2, x=-1..1, y=-1..1, axes=boxed);

> plot3d(-x^2+y^7, x=-1..1, y=-1..1, axes=boxed);

> plot3d(x^2+y^2, x=-1..1, y=-1..1, axes=boxed);

> plot3d(-x^7-y^6, x=-1..1, y=-1..1, axes=boxed);

>

19.5.2 Program for Plotting an Osculating Paraboloid

(1) Parallel translation along the vector PO congruently moves the surface M and the paraboloid S into a surface

M_1; with osculating paraboloid S_1 at the origin.

> restart: with(linalg): f:=a*x^2+b*y^2; a:=1; b:=2; # assume(a>0,b>0):

```Warning, protected name norm has been changed and unprotected
```

```Warning, protected name trace has been changed and unprotected
```

> x0:=1: y0:=0: z0:=subs({x=x0, y=y0}, f); f1:=simplify(subs({x=x+x0, y=y+y0}, f)-z0); # point on the surface

(2)

> n:=[subs({x=0, y=0}, -diff(f1, x)), subs({x=0, y=0}, -diff(f1,y)), 1]; # normal vector

> d1:=sqrt(n[2]^2+n[3]^2); d:=sqrt(n[1]^2+n[2]^2+n[3]^2);

> Rx:= matrix([[1,0,0], [0,n[3]/d1, n[2]/d1], [0,-n[2]/d1, n[3]/d1]]);

(b)

> Ry:=matrix([[d1/d,0,n[1]/d], [0,1,0], [-n[1]/d,0,d1/d]]);

> R:=multiply(Rx, Ry); n3:=multiply(n, R); # checking n_3 || OZ

> coor:=multiply([x1, y1, z1], transpose(R));

> g:=collect(coor[3]-(subs({x=coor[1], y=coor[2]}, f1)), [x1,y1,z1]); subs({x1=0, y1=0, z1=0}, grad(g, [x1,y1,z1])); # new equation # checking n_3 || OZ

> mtaylor(g, [x1=0, y1=0, z1=0], 3);

> gz:= coeftayl(g, [x1,y1,z1]=[0,0,0], [0,0,1]); gxx:=coeftayl(g, [x1,y1,z1]=[0,0,0], [2,0,0]); gyy:=coeftayl(g, [x1,y1,z1]=[0,0,0], [0,2,0]); gxy:=coeftayl(g, [x1,y1,z1]=[0,0,0], [1,1,0]);

> a11:=evalf(-gxx/(2*gz)); a12:=evalf(-gxy/(2*gz)); a22:=evalf(-gyy/(2*gz));

The equation (19.7) of S_3

> S3:=a11*x1^2+2*a12*x1*y1+a22*y1^2;

Coefficients k_1 and k_2

> sol:=solve((a11-t)*(a22-t)-a12*a12,t): k1:=sol[1]; k2:=sol[2];

> Scan:=k1*x^2+k2*y^2; # canonical equation of S

Plot M_3 and S_3 (in new coordinates),

> plots[implicitplot3d]({g=0, S3=z1}, x1=-2..1.4, y1=-1..1, z1=-0.2..1, axes=boxed, grid=[20,20,20]);

(4)

> co1:=multiply([x,y,z], R);

> S1:=simplify(subs({x1=co1[1], y1=co1[2], z1=co1[3]}, z1-S3));

Plot M_1 and S_1 (in old coordinates),

> plots[implicitplot3d]({z=f1, S1=0}, x=-2..1, y=-1..1, z=-1..2, axes=boxed, grid=[20,20,20]);

> S:=simplify(subs({x=x-x0, y=y-y0, z=z-z0}, S1+z0));

>

19.6 Singular Points on Surfaces

Example 1 . The surface r = .

> restart: r:=[u^2, u*v, v^2]; ru:=diff(r,u); rv:=diff(r,v);

> with(linalg): subs({u=0, v=0}, crossprod(ru, rv));

```Warning, protected name norm has been changed and unprotected
```

```Warning, protected name trace has been changed and unprotected
```

> ruu:=diff(r, u\$2); ruv:=diff(r,u,v); rvv:=diff(r, v\$2); det([ruu, ruv, rvv]);

(3)

> r:=[u*v, u, v^2]; ru:=diff(r,u); rv:=diff(r,v); rvv:=diff(r,v\$2);

> subs({u=0, v=0}, crossprod(ru, rvv));

>

Example 5 . The surface . We plot it by gluing together six pieces (graphs):

> p11:=plot3d(sqrt(y^3-x^2*y), x=0..2, y=-x..0): p12:=plot3d(-sqrt(y^3-x^2*y), x=0..2, y=-x..0): p21:=plot3d(sqrt(y^3-x^2*y), x=-2..0, y=x..0): p22:=plot3d(-sqrt(y^3-x^2*y),x=-2..0, y=x..0): p31:=plot3d(sqrt(y^3-x^2*y), x=-2..2, y=abs(x)..2): p32:=plot3d(-sqrt(y^3-x^2*y), x=-2..2, y=abs(x)..2):

> plots[display]({p11, p12, p21, p22, p31, p32}, axes=boxed);

Exercises .

1. Prove that the surface , is a singular point:

> plot3d([rho*cos(phi), rho*sin(phi), rho^(2/3)], rho=0..1, phi=-Pi..Pi, grid=[15,30], axes=boxed);

>

Solution :

> r:=[u, v, root(u^2+v^2, 3)]; ru:=diff(r,u); rv:=diff(r,v);

> crossprod(ru,rv): n1:=evalm(%/norm(%, 2)):

> [limit(limit(n1[1], u=0), v=0), limit(limit(n1[2],u=0),v=0), limit(limit(n1[3],u=0),v=0)];

2. Prove that points on the cylindrical surface that lie on the axis OZ (u= 0) form the cuspidal edge ,

> plot3d([u^2, u^3, v], u=-1..1, v=0..2, grid=[25,15],axes=framed);

>

3. Prove that O(0,0) is a singular point of the surface: .

> plot3d([rho^2*cos(2*phi), rho^2*sin(2*phi), (rho*sin(phi))^5],rho=0..1, phi=-Pi..Pi, grid=[15,30],axes=boxed,grid=[35,35]);