> #Jan 17, 2002 -- the good doctor > # > # Three kinds of `graphs' in 2D: > 1. Explicit, the usual y=f(x) > 2. Implicit or `Level Curves' F(x, y)=constant > 3. Parametric eqns x=f(t), y=g(t) > # > with(plots); > fudge:=pointplot([[0,-1]]): > common:=scaling=constrained,xtickmarks=[],ytickmarks=[]: > E0:=plot(sqrt(1-x^2),x=-1..1,title="y=sqrt(1-x^2)",common):E1:=display(E0,fudge): > LC:=implicitplot(x^2+y^2=1,x=-1..1,y=-1..1,title="x^2+y^2=1",common): > P:=plot([cos(t),sin(t),t=0..7*Pi/4],x=-1..1,y=-1..1,title="x=cos(t), y=sin(t)",common): > display(array([E1,LC,P])); > # > # > # Three kinds of `2D-graphs' or Surfaces in 3D: > 1. Explicit, z=f(x, y) > 2. Level Surfaces, F(x, y, z)=constant > 3. Parametric x=f(s, t), y=g(s, t), z=h(s, t) > # > # General Quadratic in two and three variables > A*x^2+B*x*y+C*y^2+D*x+E*y+F;A*x^2+B*y^2+C*z^2+D*x*y+E*x*z+F*y*z+G*x+H*y+J*z+K; > # > #Maple distorts graphs see how the circle looks like an oval > > implicitplot(x^2+y^2=1,x=-1..1,y=-1..1,title="Oval looking circle"); > implicitplot(x^2+y^2=1,x=-1..1,y=-1..1,scaling=constrained,title="Circle that looks like a circle"); > implicitplot(x^2+y^2,x=-1..1,y=-1..1,scaling=constrained,title="Mistake"); > contourplot(x^2+y^2,x=-1..1,y=-1..1,scaling=constrained,title="Feature"); > contourplot(x^2+y^2,x=-1..1,y=-1..1,contours=[1/16,1/4,9/16,1,25/16],scaling=constrained,title="Level Curves"); > # > # The standard conic sections > tmp:=implicitplot(x^2+y^2/4=1,x=-2..2,y=-2..2,color=green,scaling=constrained,title="Ellipse"):tmp; > solve({x^2+y^2/4=1,x=0}); > solve({x^2+y^2/4=1,y=0}); > implicitplot(x^2/4+y^2=1,x=-2..2,y=-2..2,color=red,scaling=constrained,title="Ellipse"); > display(%,tmp); > implicitplot(x^2-y^2=1,x=-3..3,y=-3..3,scaling=constrained,title="Hyperbola"); > solve({x^2-y^2=1,y=0}); > solve({x^2-y^2=1,x=0});allvalues(%); > implicitplot(-x^2+y^2=1,x=-3..3,y=-3..3,scaling=constrained,title="Hyperbola"); > plot(x^2,x=-1..1,scaling=constrained,title="Parabola"); > implicitplot(x^2-y^2=0,x=-3..3,y=-3..3,scaling=constrained,title="Lines"); > # > # Let's do 3D quadratics > # 1. Sphere > implicitplot3d(x^2+y^2+z^2=1,x=-1..1,y=-1..1,z=-1..1,scaling=constrained,title="Sphere",axes=boxed,style=patchcontour,shading=z); > # > # 2. Ellipsoid (all plus = 1) > implicitplot3d(x^2+y^2/4+z^2/9=1,x=-3..3,y=-3..3,z=-3..3,scaling=constrained,title="Ellipsoid",numpoints=4000,axes=boxed,style=patchcontour,shading=z); > 3 > # 3. Hyperboloids (one neg = 1 is one sheet; two neg = 1 is two sheets) > implicitplot3d(x^2+y^2-z^2=1,x=-3..3,y=-3..3,z=-3..3,scaling=constrained,title="Hyperboloid of One Sheet",numpoints=4000,axes=boxed,style=patchcontour,shading=z); > implicitplot3d(x^2-y^2-z^2=1,x=-3..3,y=-3..3,z=-3..3,scaling=constrained,title="Hyperboloid of Two Sheets",numpoints=4000,axes=boxed,style=patchcontour,shading=z); > # > # 4. Cone ( has both neg and pos & = 0) > implicitplot3d(x^2+y^2-z^2=0,x=-3..3,y=-3..3,z=-3..3,scaling=constrained,title="Cone",numpoints=4000,axes=boxed,style=patchcontour,shading=z); > plot3d(sqrt(x^2+y^2),x=-3..3,y=-3..3,view=-3..3,title="Cone (top)",axes=boxed,style=patchcontour,shading=z); > # > # 5. Paraboloids, (one term not squared) > implicitplot3d(x^2+y^2-z=0,x=-3..3,y=-3..3,z=-3..3,scaling=constrained, title="Ellipical (Circular actually) Paraboloid", numpoints=4000,axes=boxed,style=patchcontour,shading=z); > implicitplot3d(x^2-y^2-z=0,x=-3..3,y=-3..3,z=-3..3,scaling=constrained, title="Hyperbolic Paraboloid -- aka Saddle Surface", numpoints=4000,axes=boxed,style=patchcontour,shading=z); > # > # 6. Cylinders (one variable missing) > implicitplot3d(x^2+y^2=1,x=-3..3,y=-3..3,z=-3..3,scaling=constrained, title="Cylinder (right circular)",numpoints=4000,axes=boxed,style=patchcontour,shading=z); > implicitplot3d(x^2-y^2=1,x=-3..3,y=-3..3,z=-3..3,scaling=constrained, title="Cylinder (hyperbolic)", numpoints=4000,axes=boxed,style=patchcontour,shading=z); > implicitplot3d(x^2-y^2=0,x=-3..3,y=-3..3,z=-3..3,scaling=constrained, title="Cylinder (degenerate)", numpoints=4000,axes=boxed,style=patchcontour,shading=z); > # > # > # Density & Contour plots > plot3d(sin(x)*sin(y),x=0..2*Pi,y=0..2*Pi); > contourplot(sin(x)*sin(y),x=0..2*Pi,y=0..2*Pi); > densityplot(sin(x)*sin(y),x=0..2*Pi,y=0..2*Pi,numpoints=4000); > contourplot3d(sin(x)*sin(y),x=0..2*Pi,y=0..2*Pi); > # > # Pause for questions > # > # Not one but two Linear Algebra Choices. > with(linalg); > u:=vector([2,1,3]); > v:=vector([4,-1,2]); > dotprod(u,v); > crossprod(u,v); > norm(u,2); > with(LinearAlgebra); > u:=Vector([2,1,3]); > v:=Vector([4,-1,2]); > DotProduct(u,v); > CrossProduct(u,v); > VectorNorm(u,2); > # > # Arrows and vectors > # > with(plottools); > a1:=arrow([0,0,0],[1,1,1],.2,.6,.2,color=red); > display(a1); > ax:=arrow([0,0,0],[1,0,0],.2,.6,.2,color=blue): > ay:=arrow([1,0,0],[1,1,0],.2,.6,.2,color=blue): > az:=arrow([1,1,0],[1,1,1],.2,.6,.2,color=blue): > display(a1,ax,ay,az); >