SurfacesInSpace.mw

Let us now take a look at an ellipsoid defined by the following implicit equation. 

 

Ellipsoid := 1/9*x^2+1/25*y^2+1/36*z^2 = 1; 1 

1/9*x^2+1/25*y^2+1/36*z^2 = 1 

with(plots); 1 

[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
 

Use the implicitplot3d(...) command to plot this type of equation. 

 

implicitplot3d(Ellipsoid, x = -20 .. 20, y = -20 .. 20, z = -20 .. 20, axes = normal); 1
implicitplot3d(Ellipsoid, x = -20 .. 20, y = -20 .. 20, z = -20 .. 20, axes = normal); 1
 

 

Plot 

 

That doesn't look much like an ellipsoid. The reason is that the default number of points (625) plotted is too small. Try a larger one. 

 

implicitplot3d(Ellipsoid, x = -20 .. 20, y = -20 .. 20, z = -20 .. 20, axes = normal, numpoints = 50000); 1
implicitplot3d(Ellipsoid, x = -20 .. 20, y = -20 .. 20, z = -20 .. 20, axes = normal, numpoints = 50000); 1
 

 

Plot 

 

Much better. But notice it took longer as there are substantially more calculations involved. 

 

Let's look at the other surfaces 

 

HyperboloidOneSheet := 1/9*x^2+1/25*y^2-1/36*z^2 = 1; 1 

1/9*x^2+1/25*y^2-1/36*z^2 = 1 

implicitplot3d(HyperboloidOneSheet, x = -20 .. 20, y = -20 .. 20, z = -20 .. 20, axes = normal, numpoints = 10000); 1
implicitplot3d(HyperboloidOneSheet, x = -20 .. 20, y = -20 .. 20, z = -20 .. 20, axes = normal, numpoints = 10000); 1
 

 

Plot 

 

 

HyperboloidTwoSheets := 1/9*x^2-1/25*y^2-1/36*z^2 = 1; 1 

1/9*x^2-1/25*y^2-1/36*z^2 = 1 

implicitplot3d(HyperboloidTwoSheets, x = -20 .. 20, y = -20 .. 20, z = -20 .. 20, axes = normal, numpoints = 10000); 1
implicitplot3d(HyperboloidTwoSheets, x = -20 .. 20, y = -20 .. 20, z = -20 .. 20, axes = normal, numpoints = 10000); 1
 

 

Plot 

 

EllipticCone := 1/9*x^2+1/25*y^2-1/36*z^2 = 0; 1 

1/9*x^2+1/25*y^2-1/36*z^2 = 0 

implicitplot3d(EllipticCone, x = -20 .. 20, y = -20 .. 20, z = -20 .. 20, axes = normal, numpoints = 10000); 1
implicitplot3d(EllipticCone, x = -20 .. 20, y = -20 .. 20, z = -20 .. 20, axes = normal, numpoints = 10000); 1
 

 

Plot 

 

 

 

Here we can create an Elliptic Paraboloid two ways. The first sets an expression in z 

 

z := 1/9*x^2+1/25*y^2; 1 

1/9*x^2+1/25*y^2 

 

plot3d(z, x = -20 .. 20, y = -20 .. 20, axes = normal, numpoints = 10000); 1 

 

Plot 

 

Or we can implicitly define the Elliptic Paraboloid as we did the other surfaces 

(But first we need to clear z) 

z := 'z'; 1 

z 

 

 

EllipticParaboloid := `+`(z, -1/9*x^2-1/25*y^2); 1 

z-1/9*x^2-1/25*y^2 

implicitplot3d(EllipticParaboloid, x = -20 .. 20, y = -20 .. 20, z = -20 .. 20, axes = normal, numpoints = 10000); 1
implicitplot3d(EllipticParaboloid, x = -20 .. 20, y = -20 .. 20, z = -20 .. 20, axes = normal, numpoints = 10000); 1
 

 

Plot 

 

Finally we do the Hyperbolic Paraboloid in the same fashion 

 

z := 'z'; 1 

z 

z := 1/25*y^2-1/9*x^2; 1 

1/25*y^2-1/9*x^2 

plot3d(z, x = -20 .. 20, y = -20 .. 20, axes = normal, numpoints = 10000); 1 

 

Plot 

 

 

z := 'z'; 1 

z 

 

 

HyperbolicParaboloid := `+`(z, -1/25*y^2+1/9*x^2); 1 

z-1/25*y^2+1/9*x^2 

implicitplot3d(HyperbolicParaboloid, x = -20 .. 20, y = -20 .. 20, z = -20 .. 20, axes = normal, numpoints = 10000); 1
implicitplot3d(HyperbolicParaboloid, x = -20 .. 20, y = -20 .. 20, z = -20 .. 20, axes = normal, numpoints = 10000); 1
 

 

Plot