VC.08 Transforming 3D Integrals
 LITERACY

\(Off[General::spell]; 
Off[General::spell1]; 

    \(Off[ParametricPlot3D::ppcom]; \)\)Off[ParametricPlot::ppcom]; Off[Plot::plnr]; \(SetOptions[Limit, Analytic -> True]; 
$Pre\  = \ Chop; \)

CMView = {2.7, 1.6, 1.2};

Vector Drawer

BeginPackage["Vector3D`", "Graphics`Colors`"];

\(Axes3D::"usage" = 
      "Axes3D[a, b] creates a Graphics3D object of cartesian axes with x, y, and z running from -a/3 to a, and with axes labels b units beyond the tips of the axes.  Axes3D[a] is Axes3D[a, a/8]."; 

    \(Perpend::"usage" = 
      "Perpend[a] returns a unit vector which is perpendicular to the vector a."; \)\)Arrow::"usage" = 
      "Arrow[a] produces a 2 or 3 dimensional vector from the origin to a. \
Arrow[a, Tail -> tail] gives a vector from tail to a."; Vector::"usage" = 
      "Vector[a, b] gives a 2D or 3D vector from a to b."; ArrowHead::"usage" = 
      "ArrowHead[a, vec] produces an arrowhead with its tip placed at the \
point a, pointing in the direction of the vector vec."; Tail::"usage" = 
      "Tail -> point puts the tail of the vector at point."; Norm::"usage" = 
      "Norm[vec] returns the Euclidean length of vec."; Normalize::"usage" = 
      "Normalize[vec] returns a unit vector in the direction of vec, \
provided vec is nonzero."; Aperture::"usage" = 
      "Aperture is the ratio of the radius of the base to the length of the \
head of a vector."; TipSize::"usage" = 
      "TipSize specifies an absolute size for the inner tip length of the \
head of a vector."; TipRatio::"usage" = 
      "TipRatio is the ratio of the inner length of the arrowhead to the \
length of the shaft of a vector."; HeadRatio::"usage" = 
      "HeadRatio is the ratio of the outer length of the arrowhead to the \
length of the shaft of a vector."; HeadSize::"usage" = 
      "HeadSize specifies an absolute size for the head of a vector."; 
    ScaleFactor::"usage" = 
      "ScaleFactor specifies the amount to scale a vector in length and may \
be either a number or a pure function."; ZeroVectorPointSize::"usage" = 
      "ZeroVectorPointSize is the size of the point used to represent a \
zero vector."; Options[Vector] = 
      Options[Arrow] = 
        Options[ArrowHead] = {HeadRatio -> 0.18, 
            TipRatio -> 0.14, Aperture -> 0.3, 
            ScaleFactor -> 1, HeadType -> Polygon, 
            ShaftQ -> True, EdgesQ -> True, 
            VectorColor -> RGBColor[0, 0, 1], ShaftWidth -> 0.005, 
            ZeroVectorPointSize -> 0.01}; Begin["`Private`"]; SetOptions[ParametricPlot, AspectRatio -> Automatic]; SetOptions[Plot, AspectRatio -> Automatic]; SetOptions[Graphics, AspectRatio -> Automatic]; Axes3D[u_, v_] := 
      Graphics3D[{{Blue, Line[{{-(u/3), 0, 0}, {u, 0, 0}}]}, 
          Text["x", {u + v, 0, 0}], {Blue, 
            Line[{{0, -(u/3), 0}, {0, u, 0}}]}, 
          Text["y", {0, u + v, 0}], {Blue, 
            Line[{{0, 0, -(u/3)}, {0, 0, u}}]}, 
          Text["z", {0, 0, u + v}]}]; Axes3D[u_] := Axes3D[u, (u/8)]; Norm[a_?VectorQ] := N[(Sqrt[a . a])]; Normalize[a_?VectorQ] := If[a . a == 0, a, (a/Norm)[a]]; Perpend[a_?VectorQ] := 
      Normalize[{a[[2]], 
            -a[[1]]}] /; 
        Length[a] == 2Perpend[a_?VectorQ] := 
      Normalize[
          If[a[[1]] == 0, {1, 0, 0}, {0, 
              a[[3]], 
              -a[[2]]}]] /; 
        Length[a] == 3Base3D = 
      Table[{Cos[((2 k π)/8.) ], Sin[((2 k π)/8.) ]}, {k, 0, 
          8}]; Vector[from_?VectorQ, to_?VectorQ, opts___] := 
      Module[{sq, sw, ht, hs, hr, tr, ap, sf, vc, zvps, diff = to - from, 
            tip}, {sq, sw, ht, hs, hr, ts, tr, ap, sf, vc, zvps} = 
            {ShaftQ, ShaftWidth, HeadType, HeadSize, HeadRatio, TipSize, 
                  TipRatio, Aperture, ScaleFactor, VectorColor, 
                  ZeroVectorPointSize} /. {opts} /. Options[Vector]; 
          If[from == to, 
            Return[Graphics[{PointSize[zvps], vc, Point[from]}]]]; 
          diff = If[NumberQ[N[sf]], sf diff, sf[diff]]; tip = from + diff; 
          If[NumberQ[hs], hr = (hs/Norm)[diff]; tr = 0.75 hr]; 
          If[NumberQ[ts], tr = (ts/Norm)[diff]]; 
          Graphics[{
              If[sq, {vc, Thickness[sw], Line[{from, tip - tr diff}]}, {}], 
              With[{trans = ap hr Norm[diff] Perpend[diff]}, {vc, 
                  Thickness[sw], 
                  ht[{tip, tip - hr diff + trans, tip - tr diff, 
                      tip - hr diff - trans, tip}]}]}]] /; 
        Length[from] == Length[to] == 2Vector[from_?VectorQ, to_?VectorQ, opts___] := 
      Module[{sq, eq, sw, hs, hr, tr, ap, sf, vc, zvps, diff = to - from, 
            tip}, {sq, eq, sw, hs, hr, ap, sf, vc, zvps} = 
            {ShaftQ, EdgesQ, ShaftWidth, HeadSize, HeadRatio, Aperture, 
                  ScaleFactor, VectorColor, ZeroVectorPointSize} /. {opts}
                   /. Options[Vector]; 
          If[from == to, 
            Return[Graphics3D[{PointSize[zvps], vc, Point[from]}]]]; 
          diff = If[NumberQ[N[sf]], sf diff, sf[diff]]; tip = from + diff; 
          If[NumberQ[hs], hr = (hs/Norm)[diff]]; tr = (hr/2); 
          Graphics3D[{
              If[sq, {vc, Thickness[sw], Line[{from, tip - tr diff}]}, {}], 
              If[eq, {}, EdgeForm[]], {SurfaceColor[vc], 
                With[{temp = Perpend[diff]}, 
                  (Polygon[Append[#1, tip]]&)/@
                    Partition[
                      (tip - hr diff + #1&)/@
                        ((ap hr Norm[diff] Base3D) . {temp, 
                              Normalize[temp\[Cross]diff]}), 2, 1]]}}]] /; 
        Length[from] == Length[to] == 3Arrow[a_, Tail -> b_, opts___] := Vector[b, a + b, opts]Arrow[a_, opts___] := Vector[Table[0, {Length[a]}], a, opts]\(ArrowHead[a_, b_, opts___] := 
      Vector[a - b, a, ShaftQ -> False, opts]; 

End[]; 

    \(EndPackage[]; \)\)

Graphics`Colors`GosiaGreen = RGBColor[0,  0.392187,  0];

Spherical Setup

\(Clear[polar]; 

    polar[{x_, y_, z_}] := {\@\(x\^2 + y\^2 + z\^2\), ArcTan[y\/x], 
        ArcCos[z\/\@\(x\^2 + y\^2 + z\^2\)]}; 
Clear[X, length]; 

    length[X_] := \@\(X . X\); 
\(rr = 3; \)\)R = 5; scale = 0.8; red = RGBColor[1, 0, 0]; blue = RGBColor[0, 0, 1]; color1 = RGBColor[0.8, 0.2, 0.8]; color2 = RGBColor[0.2, 0.8, 0.2]; black = RGBColor[0, 0, 0]; \(Clear[axes]; 

    axes := Graphics3D[{Line[{X, {1.5\ rr, 0, 0}}], 
          Line[{X, {0, 1.5\ rr, 0}}], Line[{X, {0, 0, 2\ rr}}]}]; 

    Clear[xyplane]; 

    xyplane := 
      Graphics3D[
        Polygon[{{\(-2\)\ rr, \(-2\)\ rr, 0}, {\(-2\)\ rr, 2\ rr, 0}, {2\ rr, 
              2\ rr, 0}, {2\ rr, \(-2\)\ rr, 0}}]]; 
\(X = {0, 0, 0}; \)\)origin = Graphics3D[{black, Point[X]}]; Z = {2, 3, 5}; \(Clear[point]; 

    point := Graphics3D[{red, PointSize[0.03], Point[scale\ Z]}]; 

    \(Z0 = {0, 0, length[0.8\ Z]}; \)\)\(Clear[zpoint]; 
zpoint = Graphics3D[{black, Point[Z0]}]; 

    \(XY = scale\ Z\ {1, 1, 0}; \)\)\(Clear[xypoint]; 
xypoint := Graphics3D[{black, Point[XY]}]; 

    \(X0 = {length[scale\ Z\ {1, 1, 0}], 0, 0}; \)\)xpoint = Graphics3D[{black, Point[X0]}]; Y0 = {0, length[scale Z {1, 1, 0}], 0}; ypoint = Graphics3D[{black, Point[Y0]}]; \(Clear[ray]; 
ray := Graphics3D[{blue, Line[{X, scale\ Z}]}]; 

    Clear[ray1]; 
ray1 := Graphics3D[{color1, Line[{scale\ Z, Z}]}]; 

    Clear[xyray]; 
xyray := Graphics3D[{red, Line[{X, Z\ {1, 1, 0}}]}]; 

    \(rays := {ray, xyray}; \)\)xyaux = 
      (length[0.8 Z] (0.8 Z {1, 1, 0}))/
        length[0.8 Z {1, 1, 0}]; \(Clear[zarc]; 

    zarc = Graphics3D[{blue, 
          Line[Table[
              \(Cos[t]\ \) {0, 0, length[0.8\ Z]} + Sin[t]\ xyaux, {t, 0, 
                \(polar[0.8\ Z]\)[[3
                  ]],  .1}]]}]; 
Clear[zarc1]; 

    zarc1 = Graphics3D[{color1, 
          Line[Table[
              \(Cos[t]\ \) {0, 0, length[0.8\ Z]} + Sin[t]\ xyaux, {t, 
                \(polar[0.8\ Z]\)[[3]], 
                1,  .1}]]}]; 
Clear[zarc2]; 

    zarc2 = Graphics3D[{color1, 
          Line[Table[
              \(Cos[t]\ \) {0, 0, length[0.8\ Z]} + Sin[t]\ xyaux, {t, 
                \(-0.8\), 0,  .1}]]}]; 
Clear[xyarc]; 

    xyarc = Graphics3D[{blue, 
          Line[Table[
              Cos[t]\ X0 + Sin[t]\ Y0, {t, 0, 
                \(polar[XY]\)[[2
                  ]],  .1}]]}]; 
Clear[xyarc1]; 

    xyarc1 = Graphics3D[{color1, 
          Line[Table[Cos[t]\ X0 + Sin[t]\ Y0, {t, \(- .5\), 0,  .1}]]}]; 

    Clear[xyarc2]; 

    xyarc2 = Graphics3D[{color1, 
          Line[Table[
              Cos[t]\ X0 + Sin[t]\ Y0, {t, 
                \(polar[XY]\)[[2]], 
                \(polar[XY]\)[[2]] + 
                  0.3,  .1}]]}]; 
Clear[stick]; 

    stick = Graphics3D[{red, Line[{scale\ Z, XY}]}]; 

    \(xaxislabel = Text["x", {0.363, 0.26}]; \)\)yaxislabel = Text["y", {0.73, 0.3}]; zaxislabel = Text["z", { .5, 0.67}]; stickplot = 
      Show[xyplane, axes, ray, point, Boxed -> False, 
        ViewPoint -> {2.747, 1.594, 1.168}, 
        Epilog -> {xaxislabel, yaxislabel, zaxislabel}, 
        DisplayFunction -> Identity]; rho = Text["r", {0.53, 0.45}]; rlabel = 
      Show[xyplane, axes, ray, point, Boxed -> False, 
        ViewPoint -> {2.747, 1.594, 1.168}, 
        Epilog -> {rho, xaxislabel, yaxislabel, zaxislabel}, 
        DisplayFunction -> Identity]; phi = Text["s", {0.55, 0.57}]; slabel = 
      Show[xyplane, zpoint, axes, ray, point, zarc, zarc1, zarc2, 
        Boxed -> False, ViewPoint -> {2.747, 1.594, 1.168}, 
        Epilog -> {phi, xaxislabel, yaxislabel, zaxislabel}, 
        DisplayFunction -> Identity]; theta = Text["t", { .5, 0.3}]; tlabel = 
      Show[xyplane, axes, xypoint, xpoint, ray, stick, point, xyarc, xyarc1, 
        xyarc2, Boxed -> False, ViewPoint -> {2.747, 1.594, 1.168}, 
        Epilog -> {theta, xaxislabel, yaxislabel, zaxislabel}, 
        DisplayFunction -> Identity]; all = 
      Show[xyplane, axes, ray, stick, point, zpoint, xpoint, xypoint, xyarc, 
        xyarc1, xyarc2, zarc, zarc1, zarc2, Boxed -> False, 
        ViewPoint -> {2.747, 1.594, 1.168}, 
        Epilog -> {theta, phi, rho, xaxislabel, yaxislabel, zaxislabel}, 
        DisplayFunction -> Identity];

Crisscross

\(Clear[x]; 

    crisscross = 
      Plot[{Cos[x], Sin[x]}, {x, π\/8, \(3\ π\)\/8}, 
        PlotStyle -> {{RGBColor[1, 0, 0], Thickness[0.02]}}, 
        Axes -> None, AspectRatio -> 1\/3, 
        DisplayFunction -> Identity]; \)

L.1)

R is the cube with sides of length 2 centered at {1, 0, 2}.
It looks like this:

CMView = (1/2) {2 2.7, 2 1.6, 2 1.2}; {a, b, c} = {1, 0, 2}; Show[
      Graphics3D[
        Polygon[{{a - 1, b - 1, c - 1}, {a - 1, b + 1, c - 1}, {a + 1, b + 1, 
              c - 1}, {a + 1, b - 1, c - 1}}]], 
      Graphics3D[
        Polygon[{{a - 1, b - 1, c + 1}, {a - 1, b + 1, c + 1}, {a + 1, b + 1, 
              c + 1}, {a + 1, b - 1, c + 1}}]], 
      Graphics3D[
        Polygon[{{a - 1, b - 1, c + 1}, {a - 1, b + 1, c + 1}, {a - 1, b + 1, 
              c - 1}, {a - 1, b - 1, c - 1}}]], 
      Graphics3D[
        Polygon[{{a + 1, b - 1, c + 1}, {a + 1, b + 1, c + 1}, {a + 1, b + 1, 
              c - 1}, {a + 1, b - 1, c - 1}}]], 
      Graphics3D[
        Polygon[{{a + 1, b - 1, c + 1}, {a - 1, b - 1, c + 1}, {a - 1, b - 1, 
              c - 1}, {a + 1, b - 1, c - 1}}]], 
      Graphics3D[
        Polygon[{{a + 1, b + 1, c + 1}, {a - 1, b + 1, c + 1}, {a - 1, b + 1, 
              c - 1}, {a + 1, b + 1, c - 1}}]], ViewPoint -> CMView, 
      BoxRatios -> Automatic, Axes -> Automatic, 
      AxesLabel -> {"x", "y", "z"}];

Calculate \(∫\_\%\(∫\_\%\(∫\_\(\ R\)\%\ 
            x dx dy dz\)\)\).

L.2)

R is the solid whose boundary surfaces are the xy-plane, the yz-plane, the xz-plane, and the plane 
       2  x +  2  y +  3  z = 12.
Here are two looks at R:

xhit = 6; yhit = 6; zhit = 4; CMView = {2.7, 1.6, 1.2}; first = 
      Show[Graphics3D[Polygon[{{0, 0, 0}, {0, yhit, 0}, {xhit, 0, 0}}]], 
        Graphics3D[Polygon[{{0, yhit, 0}, {0, 0, zhit}, {xhit, 0, 0}}]], 
        Graphics3D[Polygon[{{0, 0, 0}, {0, 0, zhit}, {xhit, 0, 0}}]], 
        Graphics3D[Polygon[{{0, 0, 0}, {0, 0, zhit}, {0, yhit, 0}}]], 
        ViewPoint -> CMView, BoxRatios -> Automatic, 
        Axes -> Automatic, 
        AxesLabel -> {"x", "y", "z"}, 
        DisplayFunction -> Identity]; second = 
      Show[first, ViewPoint -> {-2.7, -1.6, -3}, 
        DisplayFunction -> Identity]; Show[GraphicsArray[{first, second}]];

Calculate 
       \(∫\_\%\(∫\_\%\(∫\_\(\ R\)\%\((x + \ z)\) dx 
              dy dz\)\)\).

L.3)

The volume of a certain solid R is measured by calculating
       \(∫\_\%\(∫\_\%\(∫\_\(\ R\)\%\ 
              dx dy dz\)\) = 
        ∫\_0\%1
            \(∫\_0\%2\(∫\_0\%3\ 
              dx dy dz\)\)\).
Describe the solid and measure its volume in cubic units.

L.4)

All the linear dimensions of a certain solid are tripled (multiplied by 3).  
What is the ratio of the new volume to the original volume?

L.5)

When you start with the ellipsoid (egg)
       ((((x/a)))^2)+((((y/b)))^2)+((((z/c)))^2)=(r^2) 
in xyz-space and you go to uvw-space using 
       u[x, y, z]=(x/a),
       v[x, y, z]=(y/b), and
       w[x, y, z]=(z/c), 
then the xyz-ellipsoid plots out as the sphere
       (u^2) +  (v^2) +  (w^2) = (r^( 2)).
In uvw-space, the volume enclosed by this sphere measures out to
       (4/3) π (r^( 3)) 
cubic units.
Calculate the volume conversion factor (Subscript[V, uvw])[x, y, z], and use the result to explain why the xyz-space volume-measurement of the region enclosed by the ellipsoid 
       ((((x/a)))^2)+((((y/b)))^2)+((((z/c)))^2)=(r^( 2)) 
is
       (4/3) π a b c (r^( 3)) 
cubic units.

L.6)

Look at this:

\(Clear[x, y, z, r, s, t]; 
    
{x[r_, s_, t_], y[r_, s_, t_], z[r_, s_, t_]} = {2\ r\ Cos[t], 
        s\ \((2 - r)\)\ \((2 + 0.5\ Sin[t])\), 3\ r\ Sin[t]}; 

    \(rightskin = 
      ParametricPlot3D[{x[r, 1, t], y[r, 1, t], z[r, 1, t]}, {r, 0, 1}, {t, 
          0, 2\ π}, DisplayFunction -> Identity]; \)\)leftskin = 
      ParametricPlot3D[{x[r, -1, t], y[r, -1, t], z[r, -1, t]}, {
          r, 0, 1}, {t, 0, 2 π}, DisplayFunction -> Identity]; 
    \(middleskin = 
      ParametricPlot3D[{x[1, s, t], y[1, s, t], z[1, s, t]}, {s, \(-1\), 1}, {
          t, 0, 2\ π}, DisplayFunction -> Identity]; 


    wholeskin = 
      Show[leftskin, rightskin, middleskin, PlotRange -> All, 
        ViewPoint -> CMView, 
        AxesLabel -> {"x", "y", "z"}, 
        DisplayFunction -> $DisplayFunction]; \)

And a look from behind:

Show[wholeskin, ViewPoint -> -CMView];

Now look at this:

\(Clear[gradx, grady, gradz, Vxyz]; 

    gradx[r_, s_, t_] = {D[x[r, s, t], \ r], D[x[r, s, t], s], 
        D[x[r, s, t], t]}; 

    grady[r_, s_, t_] = {D[y[r, s, t], \ r], D[y[r, s, t], s], 
        D[y[r, s, t], t]}; 

    gradz[r_, s_, t_] = {D[z[r, s, t], \ r], D[z[r, s, t], s], 
        D[z[r, s, t], t]}; 

    Vxyz[r_, s_, t_] = 
      TrigExpand[Det[{gradx[r, s, t], grady[r, s, t], gradz[r, s, t]}]]\)

Now look at this:

Plot3D[Vxyz[r, s, t], {r, 0, 1}, {t, 0, 2 π}, 
      ViewPoint -> CMView, 
      AxesLabel -> {"r", "t", "Vxyz[r,s,t]"}];

The plot tells you that 
       (Subscript[V, xyz]) [r, s, t] ≥ 0 
no matter what r, s, and t are.
Now you are in the catbird seat because you have enough information to give a short, sweet, hand calculation of the volume enclosed by the skin plotted above.
Do it.

L.7)

Given a transformation coming from  
         x = x[u, v, w], y = y[u, v, w], and z = z[u, v, w].
Say how you use 
         gradx[u, v, w], grady[u, v, w], and gradz[u, v, w] 
to calculate (Subscript[V, xyz]) [u, v, w] ≥ 0. 
Then discuss the meaning of (Subscript[V, xyz]) [u, v, w].

L.8)

Give a hand calculation of 
       \(∫\_\%\(∫\_\%\(∫\_\(\ R\_xyz\)\%\ 
            y dx dy dz\)\)\)
where (Subscript[R, xyz]) is the region inside and on the "box" bounded by the planes
       z = 2  x   		(bottom),
       z = 2  x +  3  	(top),
       y = x         	(side),
       y = x +  2  	(side),
       y = -2 x     	(side), and
       y = -2 x +  4  	(side).