Coordenadas curvilíneas

Francisco Javier Pérez González
Departamento de Análisis Matemático
Universidad de Granada

Inicialización

Off[ParametricPlot3D::ppcom]
Off[General::spell1]
Off[General::spell]

<<Graphics`Arrow`

<<Graphics`Colors`

vector2D[x_: {0, 0}, y_]:=Arrow[x, x + y]

\(\(\(norma[x_] := N[\@\(x . x\)]\  (*\ 
      norma\ euclídea\ del\ vector\ x\ *) 

    \(\(normaliza[x_]\  := If[Simplify[x . x] == 0, x, \ x/norma[x]]; \  (*\ 
      vector\ unitario\ en\ la\ dirección\ del\ vector\ x\ *) 

    normal3D[x_]\  := \ 
      normaliza[
        Which[x[\([1]\)] == 0, {1, 0, 
            0}, \((x[\([2]\)] ≠ 
                0)\) ∨ \((x[\([3]\)] ≠ 0)\), {0, 
            x[\([3]\)], \(-x[\([2]\)]\)}, \((x[\([2]\)] == 0 ∧ 
              x[\([3]\)] == 0)\), {0, 1, 0}]]\)\(
\)
    \)\)\( (*\ 
      un\ vector\ unitario\ ortogonal\ al\ vector\ x\ *) \)\)\)

\(\(\(\(arrow3D[x_, y_, color_:  RGBColor[0. , 0. , 0. ], 
          grosor_:  0.007] := 
			{{color, Thickness[grosor], 
            Line[{x, y}]}, 
\ \ \ \ \ {SurfaceColor[
              color], \ \(Polygon[
                  Append[#, 
                    y]] &\)\  /@ \ 
						Partition[\(\((y\ \  - \ 
                        0.18*\((y - x)\) + \ #)\) &\) /@ \((\((0.3*\ 0.18*
                          norma[y - x]*\ 
                          Table[{Cos[2\ k\ Pi/8. ], \ Sin[2\ k\ Pi/8. ]}, {k, 
                              0, 8}])\) . {normal3D[y - x], 
                        normaliza[Cross[normal3D[y - x], y - x]]})\), 2, 
                1]}};\)

    vector3D[x_List: {0, 0, 0}, y_List, color_:  RGBColor[0. , 0. , 0. ], 
        grosor_:  0.007] := arrow3D[x, x + y, color, grosor]\)\(\ \)\( (*\ 
      traslación\ del\ vector\ y\ al\ punto\ x\ *) \)\)\)

\(\(coordpolares := 
        Show[Graphics[{Line[{{\(- .75\), 0}, {2, 0}}], 
              Line[{{0, \(- .3\)}, {0, 2}}], Text["Y", {0.1, 1.9}], 
              Text["X", {2,  .1}], {Blue, Text["P", {1.16, 1}]}, 
              Circle[{0, 0},  .4, {0, π/4}], 
              Arrow[ .4 {Cos[π/4 -  .07], 
                    Sin[π/4 -  .1]},  .4 {\@2/2, \@2/2}, 
                HeadLength ->  .04], {Red, 
                Arrow[{1, 1}, {1, 1} +  .4 {1, 1}, HeadLength ->  .04], 
                Arrow[{1, 1}, {1, 1} +  .4 {\(-1\), 1}, 
                  HeadLength ->  .04]}, {PointSize[ .035], Hue[ .6], 
                Point[{1, 1}], Hue[0], Point[{0, 1}], Point[{1, 0}], 
                Text["x=ρcosθ", {1, \(- .15\)}], 
                Text["y=ρsenθ", {\(- .45\), 1.0}], 
                Text["θ", { .5,  .2}], 
                Text[\*""ρ=(Sqrt[(x^2) + (y^2)])"", {1.15,  .6}]}, Text[\*""(Subscript[e, ρ])"", {1.5, 1.5}], 
              Text[\*""(Subscript[e, θ])"", { .5, 
                  1.5}], {Line[{{0, 0}, {1, 1}}], Dashing[{ .02,  .02}], 
                Line[{{0, 1}, {1, 1}, {1, 0}}]}}], 
          Background -> RGBColor[1, 1, 0.75], 
          AspectRatio -> Automatic, 
          TextStyle -> {FontSize -> 12, FontWeight -> "Bold"}, 
          ImageSize -> {563, 234}];\)\)

\(\(coordcilindricas := 
        Show[Graphics[{Line[{{0, 6}, {0, 0}, {2, 4}, {0, 0}, {6, 0}, {0, 
                    0}, {\(-4\), \(-4\)}}], {Dashing[{ .012,  .012}], 
                Line[{{0, 5.5}, {2, 4}, {2, \(-1.5\)}, {0, 
                      0}}]}, {Dashing[{ .012,  .012}], 
                Line[{{2, \(-1.5\)}, {3.5, 0}}]}, {Dashing[{ .012,  .012}], 
                Line[{{2, \(-1.5\)}, {\(-1.5\), \(-1.5\)}}]}, 
              Circle[{0, 0},  .6, {\(-3\) π/4, ArcTan[\(- .75\)]}], {Hue[
                  0], PointSize[ .02], \ Point[{0.01, 5.5}], 
                Text["z", {\(- .3\), 5.5}], 
                Text[\*""ρ=(Sqrt[(x^2) + (y^2)])"", {3, \(-1.7\)}], Text["x=ρcosθ", {\(-1.7\), \(-1.8\)}], 
                Text["y=ρsenθ", {3.7,  .35}], 
                Text["θ", {0, \(-1\)}]}, {Hue[0], 
                PointSize[ .02], \ Point[{3.5, 0}]}, {Hue[0], 
                PointSize[ .02], \ Point[{\(-1.5\), \(-1.5\)}]}, {Hue[0.6], 
                PointSize[ .02], \ Point[{2, 4}]}, {Red, 
                Arrow[{2, 4}, {2, 4} +  .4 {0, 4}, HeadLength ->  .04], 
                Arrow[{2, 4}, {2, 4} +  .6 {2, \(-1.5\)}, 
                  HeadLength ->  .04], 
				Arrow[{2, 4}, {2, 4} + 
                    1.2 {1.3,  .5}, HeadLength ->  .04]}, {Blue, 
                Text["P", {2.55, 3.9}]}, 
              Text["X", {\(-3.4\), \(-3.9\)}], 
              Text["Z", {0.3, 5.95}], Text["Y", {5.95, 0.25}], 
              Text[\*""(Subscript[e, z])"", {2, 6}], 
              Text[\*""(Subscript[e, θ])"", {3.9, 4.8}], 
              Text[\*""(Subscript[e, ρ])"", {3.4, 2.9}]}], 
          AspectRatio -> Automatic, 
          Background -> RGBColor[1, 1, 0.75], 
          TextStyle -> {FontSize -> 12, 
              FontWeight -> "Bold"}];\)\)

\(\(coordesfericas := 
        Show[Graphics[{Line[{{0, 6}, {0, 0}, {2, 4}, {0, 0}, {6, 0}, {0, 
                    0}, {\(-4\), \(-4\)}}], {Dashing[{ .012,  .012}], 
                Line[{{0, 5.5}, {2, 4}, {2, \(-1.5\)}, {0, 
                      0}}]}, {Dashing[{ .012,  .012}], 
                Line[{{2, \(-1.5\)}, {3.5, 0}}]}, {Dashing[{ .012,  .012}], 
                Line[{{2, \(-1.5\)}, {\(-1.5\), \(-1.5\)}}]}, 
              Circle[{0, 0}, 2, {ArcTan[2], π/2}], 
              Circle[{0, 0},  .6, {\(-3\) π/4, ArcTan[\(- .75\)]}], {Hue[
                  0], PointSize[ .02], \ Point[{0.01, 5.5}], 
                Text["z=rcosθ", {1, 5.6}], 
                Text[\*""r=\!\(\@\(x\^2 + y\^2 + z\^2\)\)"", {2.9, 
                    2.12}], Text["rsenθ", {2.2, \(-1.8\)}], 
                Text["x=rsenθcosϕ", {\(-1.7\), \(-1.8\)}], 
                Text["y=rsenθsenϕ", {3.7,  .35}], 
                Text["θ", { .485, 2.47}], 
                Text["ϕ", {0, \(-1\)}]}, {Hue[0], PointSize[ .02], \ 
                Point[{3.5, 0}]}, {Hue[0], PointSize[ .02], \ 
                Point[{\(-1.5\), \(-1.5\)}]}, {Hue[0.6], PointSize[ .02], \ 
                Point[{2, 4}]}, {Red, 
                Arrow[{2, 4}, {2, 4} +  .4 {2, 4}, HeadLength ->  .04], 
                Arrow[{2, 4}, {2, 4} +  .6 {2, \(-1.5\)}, 
                  HeadLength ->  .04], 
				Arrow[{2, 4}, {2, 4} + 
                    1.2 {1.3,  .5}, HeadLength ->  .04]}, {Blue, 
                Text["P", {2.55, 3.9}]}, 
              Text["X", {\(-3.4\), \(-3.9\)}], 
              Text["Z", {0.3, 5.95}], Text["Y", {5.95, 0.25}], 
              Text[\*""\!\(e\_r\)"", {2.9, 5.8}], 
              Text[\*""\!\(e\_ϕ\)"", {3.9, 4.8}], 
              Text[\*""\!\(e\_θ\)"", {3.4, 2.9}]}], 
          AspectRatio -> Automatic, 
          Background -> RGBColor[1, 1, 0.75], 
          TextStyle -> {FontSize -> 12, 
              FontWeight -> "Bold"}];\)\)

\(Unprotect[Sqrt]; 
    Unprotect[Power]; \@p_\^2 := 
      p /; Positive[p]; \@\(p_*q_\) := \(\@p\) \@q /; 
        Positive[p] && Positive[q]; Protect[Power]; Protect[Sqrt];\)
Unprotect[Positive];
\(\(Positive[
          Sin[θ]] = \(Positive[
            r] = \(Positive[ρ] = \(Positive[
                u] = \(Positive[
                  v] = \(Positive[
                    w] = \(Positive[
                      y] = \(Positive[
                        x + \@\(x\^2 + y\^2\)] = \(Positive[\@p_] = \(Positive[p_\^2] = \(Positive[p_\^2 + q_\^2] = 
                            True\)\)\)\)\)\)\)\)\)\);\)\)
Positive[-(Sqrt[p])_] = False; 
    Positive[p_ q_] = Positive[p] && Positive[q]; 
    Positive[(1/p)_] = Positive[p];
Protect[Positive];
Unprotect[ArcTan]; 
    ArcTan[ρ Cos[θ], ρ Sin[θ]] = θ; 
    ArcTan[r Cos[ϕ] Sin[θ], 
        r Sin[θ] Sin[ϕ]] = ϕ; Protect[ArcTan];
Unprotect[ArcCos]; ArcCos[Cos[θ]] = θ; 
    Protect[ArcCos];

todospositivos[x_List] := 
      Positive[x[[1]]] && Positive[x[[2]]] && 
        Positive[x[[3]]]

<<Graphics`Animation`

g[r_, θ_, ϕ_] := {r Cos[ϕ] Sin[θ], 
          r Sin[ϕ] Sin[θ], 
          r Cos[θ]};
planoscoordenados[
          r_, θ_, ϕ_] := {ParametricPlot3D[
            Evaluate[g[r, tz, fi]], {tz, 0, π}, {fi, 0, 
              2  π}, 
BoxRatios -> {1, 1, 1}, 
            DisplayFunction -> Identity], 
          ParametricPlot3D[
            Evaluate[g[u, θ, v]], {u, 0, 3.5}, {v, 0, 
              2  π}, 
BoxRatios -> {1, 1, 1}, 
            DisplayFunction -> Identity], 
          ParametricPlot3D[
            Evaluate[g[ρ, th, -ϕ]], {ρ, 0, 3.5}, {th, 
              0, π}, 
BoxRatios -> {1, 1, 1}, 
            DisplayFunction -> Identity]};
fg[1] = planoscoordenados[1, π/3 -  .9, -π/2. ]; 
    fg[2] = planoscoordenados[1, π/3 -  .625, -π/2. ];
fg[3] = 
        planoscoordenados[1, π/3 -  .4, -π/2. ];
fg[4] = 
        planoscoordenados[1, π/3 -  .125, -π/2. ];
fg[5] = planoscoordenados[1, π/3. , -π/2. ];
fg[6] = 
        planoscoordenados[1, π/3. , -3 π/8. ];
fg[7] = planoscoordenados[1, π/3. , -π/4. ];
fg[8] = planoscoordenados[1, π/3. , -π/8. ];
fg[9] = planoscoordenados[1, π/3. , 0. ];
fg[10] = planoscoordenados[1.25, π/3. , 0. ];
fg[11] = planoscoordenados[1.5, π/3. , 0. ]; 
    fg[12] = planoscoordenados[1.75, π/3. , 0. ];
fg[13] = planoscoordenados[2, π/3. , 0. ];
esfericasmovie := 
        Table[Show[{Graphics3D[{Thickness[ .01], 
                  Line[{{-4, 0, 0}, {4, 0, 
                        0}}], 
Line[{{0, -4, 0}, {0, 4, 
                        0}}], Line[{{0, 0, -4}, {0, 0, 4}}], 
                  Text["x", {4, 0, 0}, {-1.25, 1}], 
                  Text["y", {0, 4, 0}, {-1, 
                      1}], 
Text["z", {0, 0, 
                      4}, {0, -1.25}]}], 
              Graphics3D[{Hue[0], PointSize[ .03], Point[g[2, π/3, 0]]}], 
              fg[k]}, Boxed -> False, Axes -> None, 
            PlotRange -> {{-4, 4}, {-4, 4}, {-4, 4}}, 
            DisplayFunction -> $DisplayFunction, 
            ImageSize -> {527.25, 404.375}], {k, 1, 13}];

Coordenadas polares

La función \(TraditionalForm
      \`g(ρ, θ) = 
        \((ρ\ cos\ θ, \ ρ\ sen\ θ)\)\) es una biyección de Ω = \(\(ℝ\^+\)×\)]-π, π] sobre \(TraditionalForm\`ℝ\^2\{\((0, 0)\)}\). Los números ρ y θ dados por x = ρ cos θ,  
      y = ρ sen θ donde ρ > 0, -π<θ≤π se llaman las coordenadas polares del punto de coordenadas cartesianas  (x, y).

coordpolares;

En vez de elegir el intervalo ] -π, π] para medir en radianes el ángulo polar θ, podemos elegir cualquier otro intervalo semiabierto de longitud 2π, por ejemplo [0, 2  π[. La elección más conveniente desde un punto de vista matemático, por razones de cálculo (definición del arcotangente) y de simetría,  es ]-π, π]. Observa que lo que hacemos es medir ángulos en sentido antihorario desde la parte negativa del eje de abscisas. Los valores de θ en el intervalo ]-π, 0[ corresponden a puntos situados en el semiplano inferior (y < 0) y valores de θ en el intervalo ]0, π[ corresponden a puntos situados en el semiplano superior (y > 0). Los valores de θ en el intervalo ]-π/2, π/2[ corresponden a puntos situados en el semiplano de la derecha (x > 0) y valores de θ en \(TraditionalForm\`\(\(\(\(\(\(]\) \(π/
                  2\)\), π\)\(]\)\)\(⋃\)\)\(]\)\) - π, \(-π\)/\(\(2\)\([\)\)\) corresponden a puntos situados en el semiplano de la izquierda (x < 0).

Los siguientes comandos pasan de coordenadas polares a cartesianas y de cartesianas a polares.

polar2cart[{ρ_, θ_}] = g[ρ_, θ_] := {ρ Cos[θ],  ρ Sin[θ]};
cart2polar[{x_, y_}] := {(Sqrt[(x^2) + (y^2)]), ArcTan[x, y]}

El comando ArcTan[x,y] proporciona el valor de θ teniendo en cuenta el cuadrante donde está situado el punto (x, y) para lo cual suma o resta π al valor de ArcTan[(y/x)]. Para x > 0 se tiene que ArcTan[x, y] = ArcTan[(y/x)] pero esa igualdad no es cierta cuando x < 0. En muchos textos se afirma que el ángulo polar, θ, viene dado por la igualdad θ = ArcTan[(y/x)], debes tener claro que eso es falso cuando x < 0. Recuerda que la función arcotangente toma valores en el intervalo ] -π/2, π/2[. Para (x, y) en el segundo cuadrante (x < 0, y > 0) el ángulo polar está en el intervalo ] π/2, π[ y es igual a π + ArcTan[(y/x)], y para (x, y) en el tercer cuadrante (x < 0, y < 0) el ángulo polar está en el intervalo ] -π, -π/2[ y es igual a ArcTan[(y/x)] - π.

Cuando se utiliza el sistema de coordenadas polares los vectores se refieren a una base ortonormal {(Subscript[e, ρ]),(Subscript[e, θ])} que se ha representado en la figura anterior. En el lenguaje típico de los textos de física se dice que el vector (Subscript[e, ρ]) es un vector unitario en el sentido en que se mueve el punto P cuando aumenta ρ manteniendo θ constante y el vector  (Subscript[e, θ]) es un vector unitario en el sentido en que se mueve el punto P cuando aumenta θ manteniendo ρ constante. En términos matemáticos, quizás más precisos, observa que el vector de posición del punto P es  \(TraditionalForm
      \`g(ρ, θ) = 
        \((ρ\ cos\ θ, \ ρ\ sen\ θ)\)\) su variación con respecto a ρ manteniendo θ constante es la derivada parcial respecto a ρ y su variación con respecto a θ manteniendo ρ constante es la derivada parcial respecto a θ.

D[g[ρ, θ], ρ]
D[g[ρ, θ], θ]

Observa que estos vectores son ortogonales

D[g[ρ, θ], ρ] . D[g[ρ, θ], θ] // 
      Simplify

Para obtener una base ortonormal a partir de ellos todo lo que tenemos que hacer es normalizarlos. El primero tiene norma igual a 1 y el segundo tiene norma igual a ρ. Por tanto, los vectores (Subscript[e, ρ])=(cos θ,  sen θ),(Subscript[e, θ])=(-sen θ,  cos θ) forman una base ortonormal. Es a dicha base a la que se refiere un vector cuando se usan coordenadas polares. Observa que los vectores de esta base dependen de la posición del punto, es decir, no se trata de una base fija. Fíjate en que si (ρ, θ) son las coordenadas polares de un punto (x, y), se verifica que (x, y)=ρ (Subscript[e, ρ]). En general, la expresión en la base {(Subscript[e, ρ]),(Subscript[e, θ])} de un vector  v=(x, y) se obtiene por el método usual calculando sus proyecciones ortogonales sobre los vectores de la base:

v = ⟨v | (Subscript[e, ρ])⟩ 
                (Subscript[e, ρ]) + 
              ⟨v | (Subscript[e, θ])⟩ 
                (Subscript[e, θ])		(1)

Observa que si escribimos v en la forma v=(ρ cos θ,  ρ sen θ) entonces ⟨v | (Subscript[e, ρ])⟩=ρ y ⟨v | (Subscript[e, θ])⟩=0.

Recuerda que la matriz jacobiana de una función de (ℝ^2) en (ℝ^2), f(x, y) = ((Subscript[f, 1])(x, y), (Subscript[f, 2])(x, y)) 
      es la matriz cuyas filas son los vectores gradiente de las funciones componentes de f . El siguiente comando calcula la matriz jacobiana de un campo vectorial de dos variables.

matrizjacobiana2[func_][x_, y_] := 
      Module[{u, v}, 
        Outer[D, func[u, v], {u, v}] /. {u -> x, v -> y}]

matrizjacobiana2[g][ρ, θ] // MatrixForm

Las columnas de la matriz jacobiana son las derivadas parciales D[g[ρ, θ], ρ]  y  D[
        g[ρ, θ], θ]. Las normas euclídeas de las columnas de la matriz jacobiana se llaman factores métricos o factores de escala del cambio a cordenadas polares y son {1, ρ}.

Expresión de la velocidad y la aceleración en cordenadas polares

Consideremos un móvil cuya trayectoria en el plano viene dada por la función r(t)=x(t)i+y(t)j. Sean (ρ(t),  θ(t)) las coordenadas polares de r(t) de forma que r(t)=(ρ(t) cos θ(t), 
              ρ(t) sen θ(t))=ρ(t)(Subscript[e, ρ])(t) donde (Subscript[e, ρ])(t)=(cos θ(t), sen θ(t)). Observa que (Subscript[e, ρ]^( │))(t)=(θ^( │))(t)(-sen θ(t), cos θ(t))=(θ^( │))(t)(Subscript[e, θ])(t). Tenemos que

r'(t)=ρ'(t)(Subscript[e, ρ])(t)+ρ(t)(Subscript[e, ρ]^( │))(t)=ρ'(t)(Subscript[e, ρ])(t)+ρ(t) θ ' (t)(Subscript[e, θ])(t)

que es la expresión de la velocidad en coordenadas polares. Derivando la expresión anterior y teniendo en cuenta que (Subscript[e, θ]^( │))(t)=-(θ^( │))(t)(Subscript[e, ρ])(t) puedes comprobar que la aceleración viene dada por:

r''(t)=(ρ'' (t) - 
                    ρ(t) (((θ ' (t)))^2))(Subscript[e, ρ])(t)+(2  ρ' (t) θ ' (t) + 
                  ρ(t) θ ' ' (t))(Subscript[e, θ])(t)

Nota. En algunos libros de física se usa la notación (Subscript[e, ρ])=\(ρ\&^\) (o  (Subscript[e, ρ])=\(r\&^\)) y (Subscript[e, θ])=\(θ\&^\) y se les da a estos vectores el extraño nombre de versores. Todavía nadie me ha sabido explicar qué es un versor.

Expresión de la divergencia en cordenadas polares

Sea f(x, y)=((Subscript[f, 1])(x, y), (Subscript[f, 2])(x, y))  un campo vectorial de dos variables. La divergencia de este campo es el campo escalar dado por divf(x, y)=∂((Subscript[f, 1])/∂)x (x, y) + 
                ∂((Subscript[f, 2])/∂)y (x, y). Consideremos la expresión de f en coordenadas polares:

F(ρ, θ)=f(ρ cos θ, 
            ρ sen θ)=((Subscript[f, 1])(ρ cos θ, ρ sen θ), 
            (Subscript[f, 2])(ρ cos θ, ρ sen θ))

y calculemos las componentes (Subscript[F, ρ])(ρ, θ) y (Subscript[F, θ])(ρ, θ)  de F(ρ, θ) respecto de la base {(Subscript[e, ρ]),(Subscript[e, θ])}, esto es,  F(ρ, θ)=(Subscript[F, ρ])(ρ, θ)(Subscript[e, ρ])+(Subscript[F, θ])(ρ, θ)(Subscript[e, θ]). Sabemos que dichas componentes viene dadas por las correspondientes proyecciones ortogonales:

\(\(F\_\(\(ρ\)\(\ \)\)\)(ρ, θ) = ⟨\)F(ρ,    θ)|(Subscript[e, ρ])⟩=\(\(f\_1\)(ρ\ cos\ θ, ρ\ sen\ θ)\)cos θ+(Subscript[f, 2])(ρ cos θ, ρ sen θ) 
            sen θ
   \(\(F\_\(\(θ\)\(\ \)\)\)(ρ, θ) = ⟨\)F(ρ,    θ)|(Subscript[e, θ])⟩=-\(\(f\_1\)(ρ\ cos\ θ, ρ\ sen\ θ)\)sen θ+(Subscript[f, 2])(ρ cos θ, ρ sen θ) 
            cos θ

Para obtener la expresión de la divergencia de f  en coordenadas polares debemos expresar la igualdad divf\((ρ\ cos\ θ, ρ\ sen\ θ)\)=∂((Subscript[f, 1])/∂)x\((ρ\ cos\ θ, ρ\ sen\ θ)\)+∂((Subscript[f, 2])/∂)y\((ρ\ cos\ θ, ρ\ sen\ θ)\) en términos de las funciones (Subscript[F, ρ]),  (Subscript[F, θ]) y de sus derivadas parciales. Hay dos formas de hacer esto.

De forma indirecta

Derivamos en las igualdades anteriores haciendo uso de la regla de la cadena (derivación de una función compuesta). Tenemos que:

((∂(Subscript[F, ρ]))/(∂ρ))(ρ, θ)=∂((Subscript[f, 1])/∂)x\((ρ\ cos\ θ, ρ\ sen\ θ)\)(cos^2) θ +∂((Subscript[f, 1])/∂)y\((ρ\ cos\ θ, ρ\ sen\ θ)\)cos θ sen θ+
                        ∂((Subscript[f, 2])/∂)x\((ρ\ cos\ θ, ρ\ sen\ θ)\)cos θ sen θ+∂((Subscript[f, 2])/∂)y\((ρ\ cos\ θ, ρ\ sen\ θ)\)(sen^2) θ

((∂(Subscript[F, θ]))/(∂θ))\((ρ, θ)\)=-∂((Subscript[f, 1])/∂)x\((ρ\ cos\ θ, ρ\ sen\ θ)\)(-ρ sen θ)sen θ -∂((Subscript[f, 1])/∂)y\((ρ\ cos\ θ, ρ\ sen\ θ)\)ρ cos θ sen θ-(Subscript[f, 1])(ρ cos θ,  ρ sen θ)cos θ+
                             ∂((Subscript[f, 2])/∂)x\((ρ\ cos\ θ, ρ\ sen\ θ)\)(-ρ sen θ) cos θ+∂((Subscript[f, 2])/∂)y\((ρ\ cos\ θ, ρ\ sen\ θ)\)ρ (cos^2) θ-(Subscript[f, 2])(ρ cos θ,  ρ sen θ)sen θ

Sumando estas igualdades, después de dividir por ρ la segunda de ellas, se deduce que

((∂(Subscript[F, ρ]))/(∂ρ))(ρ, θ)+(1/ρ)((∂(Subscript[F, θ]))/(∂θ))(ρ, θ)=∂((Subscript[f, 1])/∂)x(ρ cos θ, ρ sen θ)+∂((Subscript[f, 2])/∂)y(ρ cos θ, ρ sen θ)-(1/ρ)(Subscript[F, ρ])(ρ, θ)

es decir

divf(ρ cos θ, ρ sen θ)=∂((Subscript[f, 1])/∂)x(ρ cos θ, ρ sen θ)+∂((Subscript[f, 2])/∂)y(ρ cos θ, ρ sen θ)=((∂(Subscript[F, ρ]))/(∂ρ))(ρ, θ)+(1/ρ)((∂(Subscript[F, θ]))/(∂θ))(ρ, θ)+(1/ρ)(Subscript[F, ρ])(ρ, θ)

igualdad que suele escribirse en la forma

div f=((∂(Subscript[F, ρ]))/(∂ρ))+(1/ρ)((∂(Subscript[F, θ]))/(∂θ))+(1/ρ)(Subscript[F, ρ])

e incluso más condesado, en la forma

div f=(1/ρ)(∂/∂)ρ(ρ (Subscript[F, ρ]))+(1/ρ)((∂(Subscript[F, θ]))/(∂θ))

y se dice que dicha expresión proporciona la divergencia de f en polares.

De forma directa

El camino que hemos seguido antes para obtener la expresión de la divergencia en coordenadas polares es un camino indirecto, pues hemos calculado las derivadas ((∂(Subscript[F, ρ]))/(∂ρ)) y ((∂(Subscript[F, θ]))/(∂θ)) y, al hacerlo, nos hemos dado cuenta de que podíamos hacer una operación sencilla con ellas para relacionarlas con ∂((Subscript[f, 1])/∂)x\((ρ\ cos\ θ, ρ\ sen\ θ)\)+∂((Subscript[f, 2])/∂)y\((ρ\ cos\ θ, ρ\ sen\ θ)\). Un camino más natural consiste en expresar (Subscript[f, 1])(x, y) y (Subscript[f, 2])(x, y) en función de (Subscript[F, ρ])(ρ, θ) y (Subscript[F, θ])(ρ, θ); es decir, se trata de obtener las coordenadas cartesianas ((Subscript[f, 1])(x, y), (Subscript[f, 2])(x, y)) del vector f(x, y) en función de las coordenadas de dicho vector respecto de la base {(Subscript[e, ρ]),(Subscript[e, θ])}. Basta para ello tener en cuenta que:

((Subscript[f, 1])(x, y), (Subscript[f, 2])(x, y))=(Subscript[F, ρ])(ρ, θ)(Subscript[e, ρ])+(Subscript[F, θ])(ρ, θ)(Subscript[e, θ])=(({{cos θ, -sen θ}, {sen θ, cos θ}}))(({{(Subscript[F, ρ])(ρ, θ)}, {(Subscript[F, θ])(ρ, θ)}}))

Es decir, la matriz cuyas columnas son los vectores (Subscript[e, ρ ])y (Subscript[e, θ]) es justamente la matiz del cambio de base que necesitamos. Naturalmente, en esta igualdad debemos ver a ρ y a θ como funciones de x e y, ρ(x, y) = (Sqrt[(x^2) + (y^2)]), θ(x, y) = ArcTan [x, y]. Vamos a pedirle ayuda a Mathematica para hacer los cálculos.

ρ[x_, y_] := (Sqrt[(x^2) + (y^2)]);
θ[x_, y_] := ArcTan[x, y];
A = 
        Transpose[{{Cos[θ[x, y]], 
              Sin[θ[x, y]]}, {-Sin[θ[x, y]], 
              Cos[θ[x, y]]}}];
f1[x_, 
        y_] = (A . {Fρ[ρ[x, y], θ[x, y]], 
              Fθ[ρ[x, y], θ[x, y]]})[[1]]
f2[x_, 
        y_] = (A . {Fρ[ρ[x, y], θ[x, y]], 
              Fθ[ρ[x, y], θ[x, 
                  y]]})[[2]]

Una vez que disponemos de (Subscript[f, 1])(x, y) y (Subscript[f, 2])(x, y) en función de \(TraditionalForm
      \`\(F\_ρ\)(\@\(x\^2 + y\^2\), \ ArcTan[x, y])\) y de \(TraditionalForm
      \`\(F\_θ\)(\@\(x\^2 + y\^2\), \ ArcTan[x, y])\), todo lo que tenemos que hacer es calcular las derivadas parciales ∂((Subscript[f, 1])/∂)x (x, y), 
      ∂((Subscript[f, 2])/∂)y (x, y) sumarlas, simplificar y sustituir (x, y) por \(TraditionalForm
      \`\((ρ\ cos\ θ, ρ\ sen\ θ)\)\). Esto lo hace Mathematica siempre que le demos una ayudita para que simplifique bien las raíces cuadradas (por ejemplo para que (Sqrt[(ρ^2)])lo simplifique igual a ρ) y para que sustituya ArcTan[ρ Cos[θ], ρ Sin[θ]] por θ. Esta ayudita la hemos incluido en las celdas de inicialización.

((D[f1[x, y], x] + D[f2[x, y], y] // 
              Simplify) /. {x -> ρ Cos[θ], 
            y -> ρ Sin[θ]}) // Simplify

Que como puedes ver es la misma expresión obtenida antes.

Gradiente y elemento diferencial de longitud en coordenadas polares

Sea f un campo escalar de dos variables. Sabemos que el gradiente de f  es el campo vectorial dado por ∇f(x, y)=∂(f/∂)x(x, y)i+∂(f/∂)y(x, y)j.  Hagamos en esta igualdad (x, 
          y) = (ρ cos θ,  ρ sen θ) para obtener

\(∇\(f(ρ\ cos\ θ, \ ρ\ sen\ θ)\)\)=∂(f/∂)x\((ρ\ cos\ θ, \ ρ\ sen\ θ)\)i+∂(f/∂)y\((ρ\ cos\ θ, \ ρ\ sen\ θ)\)j

La expresión del gradiente de f en polares viene dada por \(∇\(f(ρ\ cos\ θ, \ ρ\ sen\ θ)\)\)=(Subscript[f, ρ])(ρ, θ)(Subscript[e, ρ])+(Subscript[f, θ])(ρ, θ)(Subscript[e, θ]) donde (Subscript[f, ρ]) y (Subscript[f, θ]) son las componentes del vector \(TraditionalForm\`∇\(f(ρ\ cos\ θ, \ ρ\ sen\ θ)\)\) en la base {(Subscript[e, ρ]),(Subscript[e, θ])}. Dichas componentes sabemos que vienen dadas por

(Subscript[f, ρ])(ρ, θ) = ⟨\(∇\(f(ρ\ cos\ θ, \ ρ\ sen\ θ)\)\) |(Subscript[e, ρ])⟩=\(\(∂f\/∂x\) \((ρ\ cos\ θ, \ ρ\ sen\ θ)\)\ cos\ θ + \(∂f\/∂y\) \((ρ\ cos\ θ, \ ρ\ sen\ θ)\)\ sen\ θ\)
\(\(f\_θ\)(ρ, θ) = ⟨\)\(∇\(f(ρ\ cos\ θ, \ ρ\ sen\ θ)\)\) |(Subscript[e, θ])⟩=\(\(-\(∂f\/∂x\)\) \((ρ\ cos\ θ, \ ρ\ sen\ θ)\)\ sen\ θ + \(∂f\/∂y\) \((ρ\ cos\ θ, \ ρ\ sen\ θ)\)\ cos\ θ\)

que podemos escribir como sigue

(Subscript[f, ρ])(ρ, θ)=∂(f/∂)x\((ρ\ cos\ θ, \ ρ\ sen\ θ)\)\(∂\((ρ\ \ cos\ θ)\)\/∂ρ\)+\(\(∂f\/∂y\) \((ρ\ cos\ θ, \ ρ\ sen\ θ)\)\ ∂\((ρ\ \ sen\ θ)\)\/∂ρ\)=(∂/∂)ρ 
          f (ρ cos θ, ρ sen θ)
(Subscript[f, θ]) (ρ, θ)=(1/ρ)\(\((\( \(∂f\/∂x\)\) \((ρ\ cos\ θ, \ ρ\ sen\ θ)\)\ ∂\((ρ\ \ cos\ θ)\)\/∂θ + \(∂f\/∂y\) \((ρ\ cos\ θ, \ ρ\ sen\ θ)\)\ ∂\((ρ\ \ sen\ θ)\)\/∂θ)\) = \(1\/ρ\) \(∂\/∂θ\) \(f(ρ\ cos\ θ, ρ\ sen\ θ)\)\)

Hemos obtenido así que

∇f(ρ cos θ,  ρ sen θ)=(∂/∂)ρ\(f(ρ\ cos\ θ, ρ\ sen\ θ)\)(Subscript[e, ρ])+(1/ρ)(∂/∂)θ\(f(ρ\ cos\ θ, ρ\ sen\ θ)\)(Subscript[e, θ])                          (1)

Es conveniente introducir la función h(ρ, θ) = 
        f(ρ cos θ, ρ sen θ) con lo que la igualdad (1) se escribe mejor en la forma

∇f(ρ cos θ,  ρ sen θ)=∂(h/∂)ρ\((ρ\ , \ θ)\)(Subscript[e, ρ])+(1/ρ)∂(h/∂)θ\((ρ, θ)\)(Subscript[e, θ])                                   (2)

Observa que en esta igualdad a la izquierda tenemos el gradiente de f calculado en la expresión de f en coordenadas cartesianas y evaluado en el punto (ρ cos θ, ρ sen θ), y a la derecha lo que tenemos son las derivadas parciales de la función compuesta h(ρ, θ) = 
        f(ρ cos θ, ρ sen θ) evaluadas en el punto (ρ,θ). En los textos de física es frecuente que no se distinga entre la función f  y la función h (pues, en definitiva, son la misma función expresada en distintas coordenadas) y que escriban la igualdad (1) en la forma

∇f=∂(f/∂)ρ(Subscript[e, ρ])+(1/ρ)∂(f/∂)θ(Subscript[e, θ ])                                             (3)

igualdad que constituye la "expresión del gradiente en polares".

Observa que en la expresión anterior del gradiente aparecen los inversos de los factores de escala multiplicando a las derivadas parciales a las que está asociado cada uno de ellos. Como sabes, los factores de escala son {1, ρ}; el primero de ellos, 1, está asociado a la primera columna de la matriz jacobiana del cambio de coordenadas que corresponde a la derivación parcial respecto a la primera variable, ρ; el segundo de ellos, ρ, está asociado a la segunda columna de la matriz jacobiana del cambio de coordenadas que corresponde a la derivación parcial respecto a la segunda variable, θ.

Hemos visto antes que la velocidad en coordenadas polares se expresa por

r'(t)=ρ'(t)(Subscript[e, ρ])(t)+ρ(t) θ ' (t)(Subscript[e, θ])(t)		(4)

Esta igualdad suele escribirse con notación más clásica en la forma

dr=dρ (Subscript[e, ρ])+ρdθ (Subscript[e, θ])

Imaginemos ahora que r es la función de trayectoria de un móvil y que  r(a)es su punto inicial; entonces la distancia, s(t), recorrida por el móvil en cada momento t viene dada por

s (t)=(∫_a^t)||r' (t)||dt=(∫_a^t)||ρ'(t)(Subscript[e, ρ])(t)+ρ(t) θ ' (t)(Subscript[e, θ])(t)||dt=\(∫\_a\%t\(\@\(\((ρ' \((t)\))\)\^2 + \((\(ρ(t)\) θ\ ' \((t)\))\)\^2\)\) \(\(d\)\(t\)\(\ \ \ \ \ \ \ \ \ \)\)\)

Y, por tanto, \(TraditionalForm\`s' \((t)\) = \@\(\((ρ' \((t)\))\)\^2 + \((\(ρ(t)\) θ\ ' \((t)\))\)\^2\)\). Esta igualdad suele escribirse en la forma

\(TraditionalForm\`\((ds)\)\^2 = \((dρ)\)\^2 + \(\(ρ\^2\)(dθ\ )\)\^2\)

y se llama elemento diferencial de longitud en coordenadas polares. Observa que aquí aparecen los factores de escala 1 y ρ elevados al cuadrado y multiplicando a las correspondientes "diferenciales" dρ y dθ.

Significado de los factores de escala

Consideremos la matriz jacobiana de la función que introduce las coordenadas polares.

A = matrizjacobiana2[g][ρ, θ]

Esta matriz define una aplicación lineal de (ℝ^2) en (ℝ^2) que a cada vector (x, y) hace corresponder el vector A . (x, y). Calculemos la norma euclídea de la imagen de un vector en dicha transformación.

(Sqrt[(A . {x, y}) . (A . {x, y})]) // Simplify

Deducimos que para vectores situados a lo largo del eje de abscisas, es decir, de la forma (x, 0), se verifica que ||A . (x, 
                0)|| = ||(x, 0)|| y, teniendo en cuenta la linealidad, se sigue que ||A . (x, 0) - 
            A . (z, 0)|| = ||(x, 0) - (z, 
                0)||, esto es, la aplicación (x, y) -> A . (x, y) conserva distancias en el eje X. Pues bien, este es el significado de que el factor de escala asociado a la primera variable sea igual a 1.
Deducimos también que para vectores situados a lo largo del eje de ordenadas, es decir, de la forma (0, y), se verifica que ||A . (0, 
                y)|| = ρ || (0, y) ||  y, teniendo en cuenta la linealidad, se sigue que ||A . (0, y) - 
            A . (0, w)|| = ρ || (0, y) - (0, 
              w) || , esto es, la aplicación (x, y) -> A . (x, y) multiplica distancias por ρ en el eje Y. Pues bien, este es el significado de que el factor de escala asociado a la segunda variable sea igual a ρ.
En resumen, los factores de escala indican las dilataciones a lo largo de los ejes que hace la aplicación lineal asociada a la matriz jacobiana de la aplicación\(TraditionalForm\`\(\(\ \)\(g(ρ, θ) = \((ρ\ cos\ θ, \ ρ\ sen\ θ)\)\)\)\). Suele decirse que la aplicación g es la que, a escala infinitesimal, produce esas dilataciones. La expresión "escala infinitesimal" se entiende de la siguiente forma. Supongamos que fijamos valores ρ = (Subscript[ρ, 0]) y θ = (Subscript[θ, 0]) y sea δ  un número "muy pequeño" (lo que en los siglos XVII y XVIII se llamaba un "infinitésimo"; terminología precientífica que todavía usan algunos textos de física). Entonces, por la definición de derivada, tenemos que

\(\(\(||\)\(g(ρ\_0 + δ, θ\_0) - 
                g(ρ\_0, θ\_0)\)\(||\)\(\(≃\)\(δ\)\)\(||\)\(\(∂g\/∂ρ\) \((ρ\_0, θ\_0)\)\)\(||\)\) = δ\)                              
||g((Subscript[ρ, 0]),  (Subscript[θ, 0])  +  δ) - g((Subscript[ρ, 0]),  (Subscript[θ, 0]))|| ≃ δ||\(\(∂g\/∂θ\) \((ρ\_0, \ θ\_0)\)\)|| = δ(Subscript[ρ, 0])

La primera igualdad nos dice que si efectuamos "incrementos infinitesimales" en la primera variable la aplicación g conserva distancias y la segunda igualdad nos dice que si efectuamos "incrementos infinitesimales" en la segunda variable la aplicación g multiplica las distancias por el correspondiente valor de la primera variable.

La expresión (5) del "elemento diferencial de longitud" en coordenadas polares tiene en cuenta dichos factores de escala. 
Naturalmente, para calcular la longitud de una curva dada por las ecuaciones r(t)=(ρ(t) cos θ(t),  
            ρ(t) sen θ(t)), a ≤ t ≤ b, lo que se hace es integrar la rapidez con que dicha curva se recorre:

||r'(t)||=(Sqrt[(((ρ' (t) cos θ(t) - 
                    ρ(t) θ ' (t) sen θ(t))
                  )^2) + 
              (((ρ' (t) sen θ(t) + 
                    ρ(t) θ ' (t) cos θ(t))
                  )^2)  ]) = 
          (Sqrt[ρ' (((t))^2) + 
              ((ρ(t))^2) θ  ' (((t))^2)])

en consecuencia, la longitud de r viene dada por (∫_a^b)||r'(t)||dt=(∫_a^b)
              (Sqrt[ ρ' (((t))^2) + 
                    ((ρ(t))^2) θ  ' (((t))^2)]) 
              dt. Observa que el valor obtenido para ||r'(t)|| podíamos haberlo calculado directamente usando la igualdad (4).

Al igual que cada factor de escala mide la dilatación infinitesimal a lo largo de un eje, el producto de los factores de escala, en nuestro caso ρ, mide el cambio en el área de un rectángulo a escala infinitesimal. El producto de los factores de escala es justamente el determinante jacobiano. Recuerda que la fórmula del cambio de variables a coordenadas polares en una integral doble afirma que si f es un campo escalar continuo en un conjunto A ⊂ (ℝ^2) se verifica que

\(∫\(∫\_A\( f(x, y)\) \(d(x, 
                  y)\)\) = ∫\(∫\_B\ \(\(f(ρ\ cos\ θ, \ ρ\ sen\ θ)\) \(ρ\)\(\ \)\(d\) \((ρ, θ)\)\(\ \)\)\)\)

donde B={(ρ, θ):(ρ cos θ,  ρ sen θ)∈ A}. Observa que B es la expresión del conjunto A en coordenadas polares, es decir A = g(B), y que en la segunda integral se multiplica por ρ. Si particularizamos la igualdad anterior para la función constante f(x, y) = 1 obtenemos

Área (g(B))=\(∫\(∫\_A 
                    1 \( d(x, 
                      y)\)\) = ∫\(∫\_B\ ρ\ \(d(ρ, θ)\)\)\)

Si B es un rectángulo muy pequeño (un rectángulo infinitesimal) se verifica que \(TraditionalForm
      \`∫\(∫\_B\ ρ\ \(d(ρ, θ)\)\)\  
          ≃ \ 
          ρ \(∫\(∫\_B\ d(ρ, θ)\)\) = 
        ρ\ \(Área(B)\)\) y obtenemos \(TraditionalForm
      \`Área(g(B))\  ≃ \ 
        ρ\ \(Área(B)\)\). En los libros de física se dice que \(TraditionalForm
      \`ρ dρ dθ\) es el "elemento diferencial de área" en coordenadas polares.

Coordenadas esféricas

La función g(
          r, θ, ϕ) = (r sen θ cos ϕ ,  
          r sen θ sen ϕ, r cos θ) es una biyección de Ω=\(\(ℝ\^+\)×\([0, π]\)×\)]-π,π] sobre \(TraditionalForm\`ℝ\^3\{\((0, 0, 0)\)}\).  Los números (r, θ,  ϕ) dados por x = r sen θ cos ϕ,  
      y =  r sen θ sen ϕ,  z = r cos θ donde r > 0, 0 ≤  θ ≤ π, -π <  ϕ ≤ π, se llaman las coordenadas esféricas del punto de cordenadas cartesianas (x, y, z).

coordesfericas;

Nota. La notación y el orden en que se escriben las coordenadas esféricas varía de unos textos a otros. Las definiciones anteriores son las mismas que se usan en Mathematica y eso nos permitirá aprovechar en lo que sigue los comandos del programa. En muchos textos los papeles de ϕ y θ están intercambiados con respecto a los nuestros. 
Por lo que se refiere al intervalo ] -π, π] elegido para medir en radianes el ángulo ϕ, podemos hacer las mismas observaciones que las hechas para las coordenadas polares. Con frecuencia dicho intervalo se sustituye por [0, 2  π[ lo que, dicho sea de paso, complica las fórmulas del cambio de cartesianas a esféricas. Cuando en un libro se usen coordenadas esféricas debes comprobar cómo se definen dichas coordenadas.

El siguiente comando carga el paquete para análisis vectorial.

<< Calculus`VectorAnalysis`

Los siguientes comandos no precisan explicación.

? Spherical

Coordinates[Spherical]

CoordinateRanges[Spherical]

CoordinatesToCartesian[{r, θ, ϕ}, Spherical]

CoordinatesFromCartesian[{x, y, z}, Spherical]

Cuando se utiliza el sistema de coordenadas esféricas los vectores se refieren a una base ortonormal {(Subscript[e, r]),(Subscript[e, θ]), (Subscript[e, ϕ])} que se ha representado en la figura anterior (trasladada al punto P). En el lenguaje típico de los textos de física se dice que el vector (Subscript[e, r]) es un vector unitario en el sentido en que se mueve el punto P cuando aumenta r manteniendo θ y ϕ constantes, el vector  (Subscript[e, θ]) es un vector unitario en el sentido en que se mueve el punto P cuando aumenta θ manteniendo r y ϕ constantes y el vector  (Subscript[e, ϕ]) es un vector unitario en el sentido en que se mueve el punto P cuando aumenta ϕ manteniendo r y θ constantes. En términos matemáticos, quizás más precisos, observa que el vector de posición del punto P de cordenadas esféricas  (r, θ,  ϕ) es  g(
          r, θ, ϕ) = (r cos ϕ sen θ,  
          r sen ϕ sen θ, r cos θ); su variación con respecto a r manteniendo θ y ϕ constantes es la derivada parcial respecto a r, su variación con respecto a θ manteniendo r y ϕ constantes es la derivada parcial respecto a θ y su variación con respecto a ϕ manteniendo r y θ constantes es la derivada parcial respecto a ϕ.

Clear[g]
g[r_, θ_, ϕ_] := {r Cos[ϕ] Sin[θ], 
        r Sin[ϕ] Sin[θ], r Cos[θ]}
u1 = D[g[r, θ, ϕ], r]
u2 = D[g[r, θ, ϕ], θ]
u3 = D[g[r, θ, ϕ], ϕ]

Observa que estos vectores son ortogonales

{u1 . u2, u1 . u3, u2 . u3} // Simplify

Para obtener una base ortonormal a partir de ellos todo lo que tenemos que hacer es normalizarlos. Calculemos sus normas.

{norma[u1], norma[u2], norma[u3]} // Simplify

Deducimos que los vectores (Subscript[e, r])=(cos ϕ sen θ, sen ϕ sen θ, 
              cos θ),(Subscript[e, θ])=(cos ϕ cos θ, sen ϕ cos θ, 
              -sen θ), (Subscript[e, ϕ])=(-sen ϕ ,  cos ϕ, 0) forman una base ortonormal. Es a dicha base a la que se refiere un vector cuando se usan coordenadas esféricas. Observa que los vectores de esta base dependen de la posición del punto, es decir, no se trata de una base fija. Fíjate en que si (r, θ, ϕ) son las coordenadas esféricas de un punto (x, y, z), se verifica que (x, y, z)=r (Subscript[e, r]). En general, la expresión en la base {(Subscript[e, r]),(Subscript[e, θ]),(Subscript[e, ϕ])} de un vector  v=(x, y, z) se obtiene por el método usual calculando sus proyecciones ortogonales sobre los vectores de la base:

v = ⟨v | (Subscript[e, r])⟩ (Subscript[e, r]) + 
              ⟨v | (Subscript[e, θ])⟩ 
                (Subscript[e, θ]) + 
              ⟨v | (Subscript[e, ϕ])⟩ 
                (Subscript[e, ϕ])

Observa que si escribimos v en la forma v=(r sen θ cos ϕ ,  
            r sen θ sen ϕ, r cos θ) entonces ⟨v | (Subscript[e, r])⟩=r y ⟨v | (Subscript[e, θ])⟩=⟨v | (Subscript[e, ϕ])⟩=0.

A continuación se definen los vectores (Subscript[e, r]),(Subscript[e, θ]),(Subscript[e, ϕ]) como funciones que son de θ y ϕ.

er[θ_, ϕ_] = u1/norma[u1] // Simplify
eθ[θ_, ϕ_] = u2/norma[u2] // Simplify
eϕ[θ_, ϕ_] = u3/norma[u3] // Simplify

La siguiente gráfica muestra la base {(Subscript[e, r]),(Subscript[e, θ]),(Subscript[e, ϕ])} para {θ, ϕ} = {π/4, π/4}. Para visualizarla mejor dicha base se ha desplazado al punto de coordenadas esféricas {1, π/4, π/4}.

punto = 
        CoordinatesToCartesian[{1, π/4, π/4}, Spherical];
\(\(graf = 
        Show[Graphics3D[{vector3D[punto], 
              vector3D[punto,  .5*er[π/4, π/4], Blue], 
              vector3D[punto,  .5*eθ[π/4, π/4], Green], 
              vector3D[punto,  .7*eϕ[π/4, π/4], Red], 
              Text[\*""\!\(e\_r\)"", 
                punto +  .55*er[π/4, π/4]], 
              Text[\*""\!\(e\_θ\)"", 
                punto +  .6*
                    eθ[π/4, π/
                        4]], 
				Text[\*""\!\(e\_ϕ\)"", 
                punto +  .78*eϕ[π/4, π/4]]}, Axes -> True, 
            PlotRange -> All, Ticks -> None, 
            TextStyle -> {FontFamily -> "Times", FontSize -> 14, 
                FontWeight -> "Bold"}]];\)\)

SpinShow[graf]
SelectionMove[EvaluationNotebook[], All, GeneratedCell];
FrontEndTokenExecute["CellGroup"]
FrontEndTokenExecute["OpenCloseGroup"]
Clear[graf, punto]

Recuerda que la matriz jacobiana de una función de (ℝ^3) en (ℝ^3), f(x, y, z)=((Subscript[f, 1])(x, y, z), (Subscript[f, 2])(x, y, z), (Subscript[f, 3])(x, y, z)) es la matriz cuyas filas son los vectores gradiente de las funciones componentes de f . El siguiente comando calcula la matriz jacobiana de un campo vectorial de tres variables.

matrizjacobiana3[func_][x_, y_, z_] := 
      Module[{u, v, w}, 
        Outer[D, func[u, v, w], {u, v, w}] /. {u -> x, v -> y, 
            w -> z}]

matrizjacobiana3[g][r, θ, ϕ] // MatrixForm

Las columnas de la matriz jacobiana son las derivadas parciales u1 = D[g[r, θ, ϕ], r] ,  u2 = D[g[r, θ, ϕ], ϕ] y  u3 = D[g[r, θ, ϕ], θ]. Las normas euclídeas de las columnas de la matriz jacobiana se llaman factores métricos o factores de escala del cambio a cordenadas esféricas y son {1, r,  r sen θ}.

Expresión de la velocidad y la aceleración en cordenadas esféricas

Consideremos un móvil cuya trayectoria en el espacio viene dada por la función r(t)=x(t)i+y(t)j+z(t)k. Sean (r(t),  θ(t), ϕ(t)) las coordenadas esféricas de r(t) de forma que

r(t)=(r(t) cos ϕ(t) sen θ(t), 
              r(t) sen ϕ(t) sen θ(t), 
              r(t) cos θ(t))=r(t)(Subscript[e, r])(t)

donde (Subscript[e, r])(t)=(cos ϕ(t) sen θ(t), 
            sen ϕ(t) sen θ(t), cos θ(t))
            . Es fácil comprobar que (Subscript[e, r]^( │))(t)=θ '(t)(Subscript[e, θ])(t)+ϕ'(t)sen θ(t)(Subscript[e, ϕ])(t). Podemos pedirle a Mathematica que lo haga.

(* definimos los vectores (Subscript[e, r])(t),(Subscript[e, θ])(t),(Subscript[e, ϕ])(t) *)
er[t_] = er[θ[t], ϕ[t]];
eθ[t_] = eθ[θ[t], ϕ[t]];
eϕ[t_] = eϕ[θ[t], ϕ[t]];
D[er[t], t]==θ '[t]eθ[t]+ϕ'[t]Sin[θ[t]]eϕ[t]

Deducimos que

r'(t)=r'(t)(Subscript[e, r])(t)+r(t)(Subscript[e, r]^( │))(t)=r'(t)(Subscript[e, r])(t)+r(t) θ ' (t)(Subscript[e, θ])(t)+r(t)ϕ'(t)sen θ(t) (Subscript[e, ϕ])(t)

que es la expresión de la velocidad en coordenadas esféricas. Podemos pedirle a Mathematica que lo compruebe. Para ello calculamos las componentes del vector velocidad respecto de la base {(Subscript[e, r])(t),(Subscript[e, θ])(t),(Subscript[e, ϕ])(t)}.

R[t_] := r[t] er[t];
{R'[t] . er[t], R'[t] . eθ[t], R'[t] . eϕ[t]} // 
      Simplify

Derivando la expresión anterior puedes comprobar que la aceleración viene dada por:

r''(t)=(r'' (t) - r(t) θ ' (((t))^2) - 
                      r(t) ϕ' (((t))^2) (sen^2) θ(t))
                    (Subscript[e, r])(t)+(2  r' (t) θ ' (t) + 
                    r(t) θ ' ' (t) - 
                    r(t) ϕ' (((t))^2) sen θ(t) cos
                       θ(t))(Subscript[e, θ])(t)+(2  r' (t) ϕ' (t) sen θ(t) + 
              2  r(t) ϕ' (t) θ ' (t) cos 
                θ(t) + 
              r(t) ϕ'' (t) sen θ(t))(Subscript[e, ϕ])(t)

Volvamos a pedirle a Mathematica que lo compruebe calculando las componentes del vector aceleración en la base  {(Subscript[e, r])(t),(Subscript[e, θ])(t),(Subscript[e, ϕ])(t)}.

{R''[t] . er[t], R''[t] . 
          eθ[t], R''[t] . eϕ[t]} // Simplify

Nota. En algunos libros de física se usa la notación (Subscript[e, r])=\(r\&^\) , (Subscript[e, θ])=\(θ\&^\) y (Subscript[e, ϕ])=(OverHat[ϕ]).

Expresión de la divergencia en cordenadas esféricas

Sea f(x, y, z)=((Subscript[f, 1])(x, y, z), (Subscript[f, 2])(x, y, z), (Subscript[f, 3])(x, y, 
                z))  un campo vectorial de tres variables. La divergencia de este campo es el campo escalar dado por divf(x, y, z)=∂((Subscript[f, 1])/∂)x (x, y, 
                      z) + ∂((Subscript[f, 2])/∂)y (x, y, 
                      z)+∂((Subscript[f, 3])/∂)z (x, y, z). Consideremos la expresión de f en coordenadas esféricas:

F(r, θ, ϕ)=f(r sen θ cos ϕ , 
          r sen θ sen ϕ, r cos θ)

y sean (Subscript[F, r])(r, θ, ϕ), (Subscript[F, θ])(
        r, θ, ϕ)  y (Subscript[F, ϕ])(r, θ, ϕ) las componentes de F(r, θ, ϕ) respecto de la base {(Subscript[e, r]),(Subscript[e, θ]),(Subscript[e, ϕ])}, esto es,  F(r, θ, ϕ)=(Subscript[F, r])(r, θ, ϕ)(Subscript[e, r])+(Subscript[F, θ])(ρ, θ, ϕ)(Subscript[e, θ])+(Subscript[F, ϕ])(r, θ, ϕ)(Subscript[e, ϕ]). La expresión de la divergencia de f  en coordenadas esféricas consiste en expresar la igualdad

div F(r,θ,ϕ)=div f(r sen θ cos ϕ ,r sen θ sen ϕ,r cos θ)=
	((∂(Subscript[f, 1]))/(∂x))(r sen θ cos ϕ ,r sen θ sen ϕ,r cos θ)+((∂(Subscript[f, 2]))/(∂y))(r sen θ cos ϕ ,r sen θ sen ϕ,r cos θ)+
((∂(Subscript[f, 3]))/(∂z))(r sen θ cos ϕ ,r sen θ sen ϕ,r cos θ)

en términos de las funciones (Subscript[F, r])(r, θ, ϕ), 
      (Subscript[F, θ])(r, θ, ϕ), 
      (Subscript[F, ϕ])(r, θ, ϕ) y de sus derivadas parciales. El camino indirecto consistente en calcular derivadas parciales de (Subscript[F, r]), (Subscript[F, θ]) y (Subscript[F, ϕ]) para tratar de relacionarlas con div F(r ,  θ,  ϕ) no se ve nada claro (puedes intentarlo para convencerte). Seguiremos el camino directo como hicimos para las coordenadas polares. Para ello expresaremos las componentes cartesianas del campo f en función de sus componentes (Subscript[F, r]), (Subscript[F, θ]) y (Subscript[F, ϕ]) en la base  {(Subscript[e, r]),(Subscript[e, θ]),(Subscript[e, ϕ])}. La matriz del cambio de esta base a la base canónica es la que tiene como columnas los vectores (Subscript[e, r]),(Subscript[e, θ]), y  (Subscript[e, ϕ]). En este proceso debemos considerar r, θ y ϕ como funciones de x,  y,  z. Los cálculos son largos y es una gran ventaja disponer de Mathematica para hacerlos.

r[x_, y_, z_] = (Sqrt[(x^2) + (y^2) + (z^2)]);
θ[x_, y_, z_] = 
        ArcCos[(z/(Sqrt[(x^2) + (y^2) + (z^2)]))];
ϕ[x_, y_, z_] = ArcTan[x, y];
er[x_, y_, z_] = er[θ[x, y, z], ϕ[x, y, z]];
eθ[x_, y_, z_] = 
        eθ[θ[x, y, z], ϕ[x, y, z]];
\(\(\(eϕ[x_, y_, z_] = 
        eϕ[θ[x, y, z], ϕ[x, y, z]];\)\(
\)
    \)		\)
B = 
        Transpose[{er[x, y, z], eθ[x, y, z], 
            eϕ[x, y, z]}];
\(\(f1[x_, y_, 
          z_] = \((B . {F\_r[r[x, y, z], θ[x, y, z], ϕ[x, y, z]], 
                F\_θ[
                  r[x, y, z], θ[x, y, z], ϕ[x, y, 
                    z]], 
			F\_ϕ[
                  r[x, y, z], θ[x, y, z], ϕ[x, y, 
                    z]]})\)[\([1]\)];\)\)
\(\(f2[x_, y_, 
          z_] = \((B . {F\_r[r[x, y, z], θ[x, y, z], ϕ[x, y, z]], 
                F\_θ[
                  r[x, y, z], θ[x, y, z], ϕ[x, y, 
                    z]], 
			F\_ϕ[
                  r[x, y, z], θ[x, y, z], ϕ[x, y, 
                    z]]})\)[\([2]\)];\)\)
\(\(f3[x_, y_, 
          z_] = \((B . {F\_r[r[x, y, z], θ[x, y, z], ϕ[x, y, z]], 
                F\_θ[
                  r[x, y, z], θ[x, y, z], ϕ[x, y, 
                    z]], 
			F\_ϕ[
                  r[x, y, z], θ[x, y, z], ϕ[x, y, 
                    z]]})\)[\([3]\)];\)\)
(D[f1[x, y, z], x] + D[f2[x, y, z], y] + 
            D[f3[x, y, z], z] /. {x -> r*Cos[ϕ]* Sin[θ], 
            y -> r* Sin[ϕ]* Sin[θ], 
            z -> r* Cos[θ] }) // Simplify

expresión que suele escribirse en la forma

(1/(r^2)) (∂_r)( 
            (r^2)* (Subscript[F, r])[r, θ, ϕ]) + (1/(r*
              Sin[θ])) (∂_θ) (Sin[θ]*
              (Subscript[F, θ])[r, θ, ϕ]) + (1/(r*
              Sin[θ])) (∂_ϕ) (Subscript[F, ϕ])[
            r, θ, ϕ]

Simplify[% == %%]

Podemos usar comandos de Mathematica definidos en el paquete "VectorAnalysis" para obtener directamente el resultado anterior aunque, claro está, eso no te ayudará a comprender el significado de dicho resultado.

Div[{(Subscript[F, r])[r , θ, ϕ], (Subscript[F, θ])[r , θ, ϕ], 
          (Subscript[F, ϕ])[r , θ, ϕ]}, Spherical[r, θ, ϕ]] // 
      Simplify

También podemos calcular directamente el rotacional de un campo vectorial en coordenadas esféricas.

Curl[{(Subscript[F, r])[r , θ, ϕ], (Subscript[F, θ])[r , θ, ϕ], 
          (Subscript[F, ϕ])[r , θ, ϕ]}, Spherical[r, θ, ϕ]] // 
      Simplify

Ejercicio 1

Gradiente y elemento diferencial de longitud en coordenadas esféricas

Sea f un campo escalar de tres variables. Sabemos que el gradiente de f  es el campo vectorial dado por

∇f(x, y, z)=∂(f/∂)x(x, y, z)i+∂(f/∂)y(x, y, z)j+∂(f/∂)y(x, y, z)k.

La expresión del gradiente de f en esféricas viene dada por

∇f(r sen θ cos ϕ ,r sen θ sen ϕ,r cos θ)=(Subscript[f, r])(r, θ, ϕ)(Subscript[e, r])+(Subscript[f, θ])(ρ, θ, ϕ)(Subscript[e, θ])+(Subscript[f, ϕ])(r, θ, ϕ)(Subscript[e, ϕ])

donde (Subscript[f, ρ]), (Subscript[f, θ]) y (Subscript[f, ϕ]) son las componentes del vector ∇f(r sen θ cos ϕ ,r sen θ sen ϕ,r cos θ) en la base {(Subscript[e, r]),(Subscript[e, θ]),(Subscript[e, ϕ])}. En consecuencia se trata de hacer un simple cambio de coordenadas de la base canónica a la base {(Subscript[e, r]),(Subscript[e, θ]),(Subscript[e, ϕ])}. La matriz de este cambio de base es la matriz inversa de la que tiene por columnas los vectores (Subscript[e, r]),(Subscript[e, θ]),(Subscript[e, ϕ]), es decir, la matriz M=Inverse[Transpose[{(Subscript[e, r]),(Subscript[e, θ]),(Subscript[e, ϕ])}]]  y, como los vectores (Subscript[e, r]),(Subscript[e, θ]),(Subscript[e, ϕ]) son ortonormales dos a dos, se verifca que Transpose[{(Subscript[e, r]),(Subscript[e, θ]),(Subscript[e, ϕ])}]=Inverse[{(Subscript[e, r]),(Subscript[e, θ]),(Subscript[e, ϕ])}], en consecuencia, M={(Subscript[e, r]),(Subscript[e, θ]),(Subscript[e, ϕ])} es la matriz cuyos vectores fila son (Subscript[e, r]),(Subscript[e, θ]),(Subscript[e, ϕ]). Procura entender lo que sigue.

gradf[x_, y_, z_] = {D[f[x, y, z], x], D[f[x, y, z], y], 
          D[f[x, y, z], z]};
reglas = {x -> r  Cos[ϕ] Sin[θ], 
          y -> r  Sin[ϕ] Sin [θ], 
          z -> r Cos[θ]};
M = {er[θ, ϕ], eθ[θ, ϕ], 
          eϕ[θ, ϕ]};
fr[r_, θ_, ϕ_] = ((M . gradf[x, y, z])[[1]] /. 
            reglas) // Simplify
fθ[
        r_, θ_, ϕ_] = ((M . gradf[x, y, z])[[2]] /. 
            reglas) // Simplify
fϕ[
        r_, θ_, ϕ_] = ((M . gradf[x, y, z])[[3]] /. 
            reglas) // Simplify

Observando estos resultados nos damos cuenta de que pueden expresarse más fácilmente como sigue.

Simplify[
      fr[r, θ, ϕ] == 
        D[f[r Cos[ϕ] Sin[θ], r Sin[θ] Sin[ϕ], 
            r Cos[θ]], r]]
Simplify[
      fθ[r, θ, ϕ] == (1/r) 
          D[f[r Cos[ϕ] Sin[θ], r Sin[θ] Sin[ϕ], 
              r Cos[θ]], θ]]
Simplify[
      fϕ[r, θ, ϕ] == (1/(r Sin[θ])) 
          D[f[r Cos[ϕ] Sin[θ], r Sin[θ] Sin[ϕ], 
              r Cos[θ]], ϕ]]

Hemos obtenido así que

∇f(r sen θ cos ϕ ,r sen θ sen ϕ,r cos θ)=(∂/∂)rf(r sen θ cos ϕ ,r sen θ sen ϕ,r cos θ)(Subscript[e, r])+(1/r)(∂/∂)θf(r sen θ cos ϕ ,r sen θ sen ϕ,r cos θ)(Subscript[e, θ])+(1/(r sen θ))\(∂\/∂ϕ\)f(r sen θ cos ϕ ,r sen θ sen ϕ,r cos θ)(Subscript[e, ϕ])

Es conveniente introducir la función h(r, θ, ϕ)=f(r sen θ cos ϕ ,r sen θ sen ϕ,r cos θ) con lo que la igualdad anterior se escribe mejor en la forma

∇f(r sen θ cos ϕ ,r sen θ sen ϕ,r cos θ)=∂(h/∂)r(r, θ, ϕ)(Subscript[e, r])+(1/r)∂(h/∂)θ\((r, θ, ϕ)\)(Subscript[e, θ])+(1/(r sen θ))\(∂h\/∂ϕ\)(r, θ, ϕ)(Subscript[e, ϕ])

En los textos de física es frecuente que no se distinga entre la función f  y la función h (pues, en definitiva, son la misma función expresada en distintas coordenadas) y que escriban la igualdad anterior en la forma

∇f=∂(f/∂)r(Subscript[e, r])+(1/r)∂(f/∂)θ(Subscript[e, θ])+(1/(r sen θ))∂(f/∂)ϕ(Subscript[e, ϕ])

igualdad que constituye la "expresión del gradiente en cordenadas esféricas".

Podemos comprobarlo con Mathematica.

Grad[f[r, θ, ϕ], 
      Spherical[r, θ, ϕ]]

Observa que en la expresión anterior del gradiente aparecen los inversos de los factores de escala multiplicando a las derivadas parciales a las que está asociado cada uno de ellos. Como sabes, los factores de escala son {1, r, r sen θ}; el primero de ellos, 1, está asociado a la primera columna de la matriz jacobiana del cambio de coordenadas que corresponde a la derivación parcial respecto a la primera variable, r; el segundo de ellos, r, está asociado a la segunda columna de la matriz jacobiana del cambio de coordenadas que corresponde a la derivación parcial respecto a la segunda variable, θ, el tercero de ellos, r sen θ,  está asociado a la tercera columna de la matriz jacobiana del cambio de coordenadas que corresponde a la derivación parcial respecto a la tercera variable, ϕ.

Hemos visto antes que la velocidad en coordenadas esféricas se expresa por

r'(t)=r'(t)(Subscript[e, r])(t)+r(t) θ ' (t)(Subscript[e, θ])(t)+r(t)ϕ'(t)sen θ(t) (Subscript[e, ϕ])(t)

Esta igualdad suele expresarse con notación más clásica y también más confusa en la forma

dr=dr (Subscript[e, r])+rdθ (Subscript[e, θ])+r sen θ dϕ (Subscript[e, ϕ])		(5)

(no te quepa duda, esta igualdad quiere decir exactamente lo mismo que la anterior pero en los libros de física acostumbran a escribirla así). Aquí vuelven a aparecer los factores de escala 1,  r,  r sen θ multiplicando a las correspondientes "diferenciales" dρ , dθ, 
       dϕ. La igualdad anterior es la expresión del "elemento diferencial de longitud" en coordenadas esféricas.

Si hacemos el producto escalar \(TraditionalForm
      \`⟨∇f | 
          dr⟩\) usando las igualdades anteriores obtenemos lo que sigue:

\(⟨∇f | dr⟩\)=⟨∂(f/∂)r(Subscript[e, r])+(1/r)∂(f/∂)θ(Subscript[e, θ])+(1/(r sen θ))\(∂f\/∂ϕ\)(Subscript[e, ϕ])|dr (Subscript[e, r])+rdθ (Subscript[e, θ])+r sen θ dϕ (Subscript[e, ϕ])⟩=\(\(∂f\/∂r\) dr + \(∂f\/∂θ\) d\(θ++\) \(∂f\/∂ϕ\) dϕ\)

En esta igualdad se entiende que el gradiente está calculado en puntos del camino r(t). Con más detalle. Si (ρ(t), θ(t), ϕ(t)) son las coordenadas esféricas del punto r(t), la igualdad anterior quiere decir lo siguiente:

⟨∇f(r(t) cos ϕ(t) 
                  sen θ(t),  r(t) sen ϕ(t) 
                  sen θ(t), r(t) cos θ(t))|r'(t)⟩=⟨∂(h/∂)r(r(t),  θ(
                      t), ϕ(t))(Subscript[e, r])(t)+(1/(r(
                        t)))∂(h/∂)θ(r(
                      t),  θ(t), ϕ(t))(Subscript[e, θ])(t)+(1/(r(t) sen θ(
                          t)))∂(h/∂)ϕ(r(
                      t),  θ(t), ϕ(t))(Subscript[e, ϕ])|r'(t)(Subscript[e, r])(t)+r(t) θ ' (t)(Subscript[e, θ])(t)+r(t)ϕ'(t)sen θ(t) (Subscript[e, ϕ])(t)⟩=
		\(\(∂h\/∂r\) \((r(t), \ θ(
                    t), ϕ(t))\) 
                r' \((t)\) + \(∂h\/∂θ\) \((r(
                    t), \ θ(t), ϕ(
                    t))\) θ\ ' \((t)\) + \(∂h\/∂ϕ\) \((r(t), \ θ(t), ϕ(
                    t))\) ϕ\ ' \((t)\) = \(d\/dt\) \(h(r(t), \ θ(t), ϕ(t))\)\)

Deducimos que

(∫_a^b)⟨∇f(r (t) cos ϕ (t) sen 
                      θ (t),  
                    r (t) sen ϕ (t) sen 
                      θ (t), 
                    r (t) cos θ (t))|r'(t)⟩dt=h(ρ (b), θ (b), ϕ (b))-h (ρ (a), θ (a), ϕ (a))=
		=f(r (b) cos θ (b) sen ϕ (b), 
                  r (b) sen θ (b) sen ϕ (b), 
                  r (b) cos ϕ (b))-f(r (a) cos θ (a) sen ϕ (a), 
                  r (a) sen θ (a) sen ϕ (a), 
                  r (a) cos ϕ (a))

Expresión de la integral de línea de un gradiente en coordenadas esféricas que es completamente análoga a la conocida para coordenadas cartesianas.

Significado de los factores de escala

Consideremos la matriz jacobiana en un punto genérico (r, θ, ϕ) de la función que introduce las coordenadas esféricas.

S = matrizjacobiana3[g][r, θ, ϕ]

Esta matriz define una aplicación lineal de (ℝ^3) en (ℝ^3) que a cada vector (x, y, z) hace corresponder el vector S . (x, y, z). Calculemos la norma euclídea de la imagen de un vector en dicha transformación. A veces Mathematica se empeña en simplificar de forma poco apropiada y hay que decirle que haga lo que nosotros queremos.

Sqrt[
      Collect[Expand[
            Simplify[(S . {x, y, z}) . (S . {x, y, z})]], (z^2) 
            (r^2)] /. ((1/2) - (1/2) Cos[2 θ]) -> 
          Sin[θ]^2]

Deducimos que para vectores situados a lo largo del eje X, es decir, de la forma (x, 0, 0), se verifica que \(TraditionalForm
      \`\(\( || S . \((x, 0, 0)\)\) || \) = \( || \((x, 0, 0)\) || \)\) y, teniendo en cuenta la linealidad, se sigue que la aplicación (x, y, z) -> S . (x, y, z) conserva distancias en el eje X. Pues bien, este es el significado de que el factor de escala asociado a la primera variable sea igual a 1.
Deducimos también que para vectores situados a lo largo del eje Y, es decir, de la forma (0, y, 0), se verifica que \(TraditionalForm
      \`\(\( || S . \((0, y, 0)\)\) || \) = r || \((0, y, 0)\) || \) y, teniendo en cuenta la linealidad, se sigue que la aplicación (x, y, z) -> S . (x, y, z) multiplica distancias por r en el eje Y. Pues bien, este es el significado de que el factor de escala asociado a la segunda variable sea igual a r.
Deducimos también que para vectores situados a lo largo del eje Z, es decir, de la forma (0, 0, z), se verifica que \(TraditionalForm
      \`\(\( || S . \((0, 0, z)\)\) || \) = 
        r\ sen\ θ || \((0, 0, z)\) || \) y, teniendo en cuenta la linealidad, se sigue que la aplicación (x, y, z) -> S . (x, y, z) multiplica distancias por r sen θ en el eje Z. Pues bien, este es el significado de que el factor de escala asociado a la tercera variable sea igual a r sen θ . 
En resumen, los factores de escala indican las dilataciones a lo largo de los ejes que hace la aplicación lineal asociada a la matriz jacobiana de la aplicación g(r, θ, ϕ)=(r sen θ cos ϕ ,r sen θ sen ϕ,r cos θ). Suele decirse que la aplicación g es la que, a escala infinitesimal, produce esas dilataciones. Observa que la expresión del "elemento diferencial de longitud" en coordenadas esféricas tiene en cuenta dichos factores de escala.

Al igual que cada factor de escala mide la dilatación infinitesimal a lo largo de un eje, el producto de los factores de escala, en nuestro caso (r^2) sen θ, mide el cambio en el volumen de un ortoedro a escala infinitesimal. El producto de los factores de escala es justamente el determinante jacobiano. Recuerda que la fórmula del cambio de variables a coordenadas esféricas en una integral triple afirma que si f es un campo escalar continuo en un conjunto A ⊂ (ℝ^3) se verifica que

∫∫(∫_A) f(x, y, z) d(
                    x, y, z)=∫∫(∫_B) f(r sen θ cos ϕ ,r sen θ sen ϕ,r cos θ)((r )^2)sen θ d(r, θ, ϕ)

donde B={(r, θ, ϕ):(r sen θ cos ϕ ,r sen θ sen ϕ,r cos θ)∈ A}. Observa que B es la expresión del conjunto A en coordenadas esféricas, es decir A = g(B), y que en la segunda integral se multiplica por ((r )^2) sen θ. Si particularizamos la igualdad anterior para la función constante f(x, y, z) = 1 obtenemos

Volumen (g(B))=\(∫\(∫\(∫\_A 
                      1 \( d(x, 
                        y)\)\)\) = ∫\(∫\(∫\_B\ \(\(\(r\)\(\ \)\)\^2\) sen\ θ\ \(d(r, θ, ϕ)\)\)\)\)

Si B es un ortoedro muy pequeño (un ortoedro infinitesimal) se verifica que

\(TraditionalForm\`∫\(∫\(∫\_B\ \(\(\(r\)\(\ \)\)\^2\) sen\ θ\ \(d(
                  r, θ, ϕ)\)\)\)\  ≃ \ \ \(\(\(r\)\(\ \)\)\^2\) 
          sen\ θ \(∫\(∫\(∫\_B\ 
                d(ρ, θ)\)\)\) = \ \(\(\(r\)\(\ \)\)\^2\) 
        sen\ θ\ \(Volumen(B)\)\)

y obtenemos Volumen(
          g(B))  ≃   ((r )^2) 
          sen θ Volumen(B). Suele decirse que \(TraditionalForm\`\(r\^2\) 
        sen\ θ dr dθ \(\(d\)\(ϕ\)\(\ \)\)\)es el "elemento diferencial de volumen" en coordenadas esféricas.

Mathematica dispone de un comando que proporciona los factores de escala.

ScaleFactors[{r, θ, ϕ}, 
      Spherical[r, θ, ϕ]]

Para terminar con las coordenadas esféricas ejecuta la siguiente celda para ver una animación gráfica en la que aparecen las superficies transformadas de los planos coordenados y se muestra cómo un punto en coordenadas esféricas se sitúa mediante la intersección de dichas superficies.

esfericasmovie;

Coordenadas cilíndricas

La función \(TraditionalForm
      \`g(ρ, θ, z) = 
        \((ρ\ cos\ θ, \ ρ\ sen\ θ, z)\)\) es una biyección de Ω=\(\(ℝ\^+\)×\)]-π,π]×ℝ sobre \(TraditionalForm\`ℝ\^3\{\((0, 0, 0)\)}\).  Los números (ρ,  θ,  z) donde x = ρ cos θ,  
      y = ρ sen θ, con ρ > 0 y -π<θ≤π, se llaman las coordenadas cilíndricas del punto (x, y, z).

coordcilindricas;

? Cylindrical

Coordinates[Cylindrical]

CoordinateRanges[Cylindrical]

CoordinatesToCartesian[{ρ, θ, ϕ}, Cylindrical]

CoordinatesFromCartesian[{x, y, z}, Cylindrical]

Cuando se utiliza el sistema de coordenadas cilíndricas los vectores se refieren a una base ortonormal {(Subscript[e, ρ]),(Subscript[e, θ]), (Subscript[e, z])} que se ha representado en la figura anterior (trasladada al punto P). En el lenguaje típico de los textos de física se dice que el vector (Subscript[e, ρ]) es un vector unitario en el sentido en que se mueve el punto P cuando aumenta ρ manteniendo θ y z constantes, el vector  (Subscript[e, θ]) es un vector unitario en el sentido en que se mueve el punto P cuando aumenta θ manteniendo ρ y z constantes y el vector  (Subscript[e, z]) es un vector unitario en el sentido en que se mueve el punto P cuando aumenta z manteniendo ρ y θ constantes. En términos matemáticos, quizás más precisos, observa que el vector de posición del punto P es  \(TraditionalForm
      \`g(ρ, θ, z) = 
        \((ρ\ cos\ θ, \ ρ\ sen\ θ, z)\)\) su variación con respecto a ρ manteniendo θ y z constantes es la derivada parcial respecto a ρ, su variación con respecto a θ manteniendo ρ y z constantes es la derivada parcial respecto a θ y su variación con respecto a ϕ manteniendo ρ y θ constantes es la derivada parcial respecto a z.

Clear[g, u1, u2, u3]
g[ρ_, θ_, 
        z_] := {ρ Cos[θ], ρ  Sin[θ], z}
u1 = D[g[ρ, θ, z], ρ]
u2 = D[g[ρ, θ, z], θ]
u3 = D[g[ρ, θ, z], z]

Observa que estos vectores son ortogonales

{u1 . u2, u1 . u3, u2 . u3} // Simplify

Para obtener una base ortonormal a partir de ellos todo lo que tenemos que hacer es normalizarlos. Calculemos sus normas.

{norma[u1], norma[u2], norma[u3]} // Simplify

Deducimos que los vectores (Subscript[e, ρ])=(cos θ,  sen θ, 0),(Subscript[e, θ])=(-sen θ, cos θ, 0), (Subscript[e, z])=(0 , 0, 1)=k forman una base ortonormal. Es a dicha base a la que se refiere un vector cuando se usan coordenadas cilíndricas. Observa que los vectores de esta base dependen de la posición del punto, es decir, no se trata de una base fija. Fíjate en que si (ρ, θ, z) son las coordenadas cilíndricas de un punto (x, y, z), se verifica que (x, y, z)=ρ (Subscript[e, ρ])+z k. En general, la expresión en la base {(Subscript[e, ρ]),(Subscript[e, θ]),k} de un vector  v=(x, y, z) se obtiene por el método usual calculando sus proyecciones ortogonales sobre los vectores de la base:

v = ⟨v | (Subscript[e, ρ])⟩ 
                (Subscript[e, ρ]) + ⟨v | 
                    (Subscript[e, θ])⟩ 
                (Subscript[e, θ]) + ⟨v | k⟩ 
                k

Observa que si escribimos v en la forma v=\((ρ\ cos\ θ\ , ρ\ sen\ θ\ sen\ ϕ, z)\) entonces ⟨v | (Subscript[e, ρ])⟩=ρ, ⟨v | 
                  (Subscript[e, θ])⟩=0, ⟨v | k⟩=z.

A continuación se definen los vectores de la base en coordenadas cilíndricas.

Clear[er, eθ, eϕ]
eρ[θ_] = u1/norma[u1] // Simplify
eθ[θ_] = u2/norma[u2] // Simplify
k = {0, 0, 1}

La siguiente gráfica muestra la base {(Subscript[e, ρ]),(Subscript[e, θ]),k} para θ = π/4. Para visualizarla mejor dicha base se ha trasladado al punto de coordenadas cilíndricas {1, π/4, 1}.

punto = 
        CoordinatesToCartesian[{1, π/4, 1}, Cylindrical];
\(\(graf = 
        Show[Graphics3D[{vector3D[punto], 
              vector3D[punto,  .5*eρ[π/4], Blue], 
              vector3D[punto,  .5*eθ[π/4], Green], 
              vector3D[punto,  .5*k, Red], 
              Text[\*""\!\(e\_ρ\)"", 
                punto +  .6*eρ[π/4]], 
              Text[\*""\!\(e\_θ\)"", 
                punto +  .65*eθ[π/4]], 
				Text["k", 
                punto +  .6*k]}, Axes -> True, PlotRange -> All, 
            Ticks -> None, 
            TextStyle -> {FontFamily -> Times, FontSize -> 14, 
                FontWeight -> Bold}]];\)\)

SpinShow[graf]
SelectionMove[EvaluationNotebook[], All, GeneratedCell];
FrontEndTokenExecute["CellGroup"]
FrontEndTokenExecute["OpenCloseGroup"]
Clear[graf, punto]

Ejercicio 2

Coordenadas curvilíneas ortogonales

Sean A y B dos subconjuntos de  (ℝ^3) y sea g : A->B  una biyección de A sobre B. Representaremos por (x, y, z) un punto genérico de B y por (u, v, w) un punto genérico de A. La biyección g permite describir los puntos de B mediante puntos de A, pues dado un punto (x, y, z) ∈ B hay un único punto (u, v, w) ∈ A tal que g(u, v, w) = (x, y, z); diremos que dicho punto (u, v, w) son las g-coordenadas del punto (x, y, z) y también diremos que la aplicación g introduce en B un sistema de coordenadas curvilíneas. Naturalmente, para que estas coordenadas definidas por g sean útiles hay que suponer que la función g tiene buenas propiedades analíticas. Suele suponerse como condición mínima para g que sea de clase (C^1), es decir que sus funciones componentes tengan derivadas parciales continuas y también se supone que el determinante jacobiano de g no se anula nunca. Estas condiciones aseguran que la biyección inversa de g es una función de clase (C^1) en B. Las funciones que verifican estas propiedades (biyecciones de clase (C^1)cuya biyección inversa también es de clase (C^1)) se llaman difeormorfismos. Suele exigirse también que la matriz jacobiana de g calculada en cualquier punto de A tenga la propiedad de que sus vectores columna sean dos a dos ortogonales. Cuando la aplicación g verifica estos requisitos (es un difeomorfismo de A sonbre B cuya matriz jacobiana tiene columnas ortogonales) se dice que dicha aplicación define un sistema de coordenadas curvilíneas ortogonales en B. Las coordenadas esféricas y las cilíndricas son ejemplos de coordenadas curvilíneas ortogonales (y también lo son las coordenadas polares en el plano).

Ejemplo

Consideremos la aplicación

Clear[g]
g[u_, v_, w_] := {(u^2) - (v^2),  2  u v,  (w^2)}

Es evidente que dicha aplicación no es biyectiva en todo su dominio natural de definición que es (ℝ^3). Para obtener un conjunto en el que sea una biyección debemos restringir su dominio de definición. Para ello vamos a considerar el conjunto A = {(u, v, w) :  u > 0,  v > 0,  w > 0}. En el conjunto A la función g toma valores en el conjunto B = {(x, y, z) : y > 0, z > 0}. Comprobemos que g es una biyección de A sobre B. Sea (x, y, z) un punto cualquiera de B y veamos si hay un único punto de A cuya imagen por g es dicho punto. Deberemos seleccionar de las posibles soluciones de la ecuación g (u, v, w) = (x, y, z) la que tenga todas sus coordenadas positivas y debe de haber una sola.

Select[{u, v, w} /. 
            Solve[{(u^2) - (v^2),  2  u v,  (w^2)} == {x, y, z}, {u, v, w}] // 
          Simplify, todospositivos] // Flatten

Observa que, como y > 0,  z > 0,  la solución obtenida efectivamente tiene todas sus coordenadas positivas.  Hemos probado así que g(u, v, w) = {(u^2) - (v^2), 2 u v, (w^2)} es una biyección de A sobre B. Es claro que la función g es de clase (C^∞). Calculemos su matriz jacobiana y el determinante jacobiano.

Clear[M]
M = matrizjacobiana3[g][u, v, w]
Det[M]

Deducimos que g es un difeomorfismo de A sobre B. Además las columnas de la matriz jacobiana son ortogonales.

\(\(\({u1, u2, u3} = Transpose[M]\  (*\ las\ columnas\ de\ M\ *) 

    {u1 . u2, u1 . u3, u2 . u3}\)\(\ \)\( (*\ 
      las\ columnas\ de\ M\ son\ ortogonales\ *) \)\)\)

Concluimos que la aplicación g introduce un sistema de coordenadas curvilíneas ortogonales en B. Las g-coordenadas de un punto (x, y, z) ∈ B son la única terna (u, v, w) ∈ A tal que g(u, v, w) = (x, y, z) .  Definimos a continuación funciones que pasan de unas coordenadas a otras.

\(\(\(gcord2cart[{u_, v_, w_}] := {u\^2 - v\^2, 2\ u\ v, w\^2}\  (*\ 
      pasa\ de\ g - coordenadas\ a\ cartesianas\ *) 

    \(\(cart2gcord[{x_, y_, 
          z_}] := {\(\@\(\(-x\) + \@\(x\^2 + y\^2\)\)\ \((x + \@\(x\^2 + y\^2\))\)\)\/\(\@2\ y\), \@\(\(-x\) + \@\(x\^2 + y\^2\)\)\/\@2, \@z}\)\(
\)
    \)\)\( (*\ pasa\ de\ cartesianas\ a\ g - coordenadas\ *) \)\)\)

Comprobamos que son funciones inversas.

gcord2cart[cart2gcord[{x, y, z}]] // Simplify
cart2gcord[gcord2cart[{u, v, w}]] // Simplify

Volvamos a la situación general y supongamos que g : A -> B define un sistema de coordenadas curvilíneas ortogonales en B. En tal caso los vectores columna de la matriz jacobiana de g, es decir las derivadas parciales de g, normalizados constituyen una base ortonormal de (ℝ^3) que  notaremos por {(Subscript[e, 1]), (Subscript[e, 2]), (Subscript[e, 3])}. Se dice que esta base está asociada al sistema de coordenadas dado y es a esa base a la que se refieren los vectores en el sistema de coordenadas definido por g. En general los vectores de la base dependen de las coordenadas, no es una base fija. Las normas euclídeas de los vectores columna de la matriz jacobiana de g se llaman factores de escala o factores métricos, los representaremos por {a, b, c} (son funciones de u,v,w).

{a, b, c} = Sqrt[{u1 . u1, u2 . u2, u3 . u3}]

Definimos los vectores de la base.

e1[{u_, v_, w_}] = u1/a
e2[{u_, v_, w_}] = u2/b
e3[{u_, v_, w_}] = u3/c

Ahora vamos a visualizar la base antes definida.

punto = cart2gcord[{0, 1, 1}];
\(\(graf = 
        Show[Graphics3D[{vector3D[punto], 
              vector3D[punto,  .5*e1[punto], Blue], 
              vector3D[punto,  .5*e2[punto], Green], 
              vector3D[punto,  .5*e3[punto], Red], 
              Text["e1", punto +  .6*e1[punto]], 
              Text["e2", 
                punto +  .65*e2[punto]], 
				Text["e3", 
                punto +  .6*e3[punto]]}, Axes -> True, PlotRange -> All, 
            Ticks -> None, 
            TextStyle -> {FontFamily -> "Times", FontSize -> 14, 
                FontWeight -> "Bold"}]];\)\)

SpinShow[graf]\(SelectionMove[EvaluationNotebook[], All, GeneratedCell]; 

    FrontEndTokenExecute["CellGroup"]\)FrontEndTokenExecute["OpenCloseGroup"]Clear[graf, punto]

Para expresar el vector gradiente de un capo escalar f dado en coordenadas cartesianas

∇f(x, y, z)=∂(f/∂)x((Subscript[x, 1]), (Subscript[x, 2]), (Subscript[x, 3]))i+∂(f/∂)y((Subscript[x, 1]), (Subscript[x, 2]), (Subscript[x, 3]))j+∂(f/∂)z((Subscript[x, 1]), (Subscript[x, 2]), (Subscript[x, 3]))k

en g-coordendas, lo que hacemos es expresar las g-componentes del vector gradiente en la base {(Subscript[e, 1]),(Subscript[e, 2]),(Subscript[e, 3])} en función de las componentes del vector gradiente en cartesianas. Para ello lo que se necesita es la matriz del cambio de base de cartesianas a g-coordendas. Dicha matriz es la inversa de la matriz cuyas columnas son los vectores (Subscript[e, 1]),  (Subscript[e, 2]) y (Subscript[e, 3]). Como se trata de una matriz ortogonal su inversa es su traspuesta. Llamemos (f1, f2, f3) a las componentes del vector ∇f en la base {(Subscript[e, 1]),(Subscript[e, 2]),(Subscript[e, 3])}.

gradf[x_, y_, z_] = {D[f[x, y, z], x], D[f[x, y, z], y], 
          D[f[x, y, z], z]};
reglas = {x -> (u^2) - (v^2), y -> 2 u v, z -> (w^2)};
M = {e1[{u, v, w}], e2[{u, v, w}], e3[{u, v, w}]};
f1[u_, v_, w_] = ((M . gradf[x, y, z])[[1]] /. reglas) // 
        Simplify
f2[u_, v_, w_] = ((M . gradf[x, y, z])[[2]] /. reglas) // 
        Simplify
f3[u_, v_, w_] = ((M . gradf[x, y, z])[[3]] /. reglas) // 
        Simplify

Los resultados obtenidos pueden expresarse mejor como sigue

Simplify[(1/a) D[f[(u^2) - (v^2), 2 u v, (w^2)], u] == 
        f1[u, v, w]]
Simplify[(1/b) D[f[(u^2) - (v^2), 2 u v, (w^2)], v] == 
        f2[u, v, w]]
Simplify[(1/c) D[f[(u^2) - (v^2), 2 u v, (w^2)], w] == 
        f3[u, v, w]]

Simplify[(gradf[x, y, z] /. reglas) == 
        f1[u, v, w] e1[{u, v, w}] + f2[u, v, w] e2[{u, v, w}] + 
          f3[u, v, w] e3[{u, v, w}]]

Hemos obtenido que

(∇f) (g(u, v, w))=(1/a)(∂/∂)uf(
                  g(u, v, w))(Subscript[e, 1])+(1/b)(∂/∂)vf(
                  g(u, v, w))(Subscript[e, 2])+(1/c)(∂/∂)wf(
                  g(u, v, w))(Subscript[e, 3])

debes entender bien lo que significa esta igualdad: a la izquierda aparece la función gradiente de f

∇f(x, y, z)=((∂f)/(∂x))(x, y, z)i+((∂f)/(∂y))(x, y, z)j+((∂f)/(∂z))(x, y, z)k

evaluada en el punto g(u, v, w), a la derecha figuran las derivadas parciales de la función compuesta h(u, v, w) = f(g(u, v, w))  dividida cada una de ellas por el factor de escala que corresponde a su variable y multiplicada por el correspondiente vector de la base asociada a las nuevas coordenadas (y no olvides que dichos vectores dependen de u, v , w). La expresión obtenida para el gradiente es válida para todo sistema de coordenadas curvilíneas ortogonales.

Supongamos que la función de trayectoria de un movil viene dada por r(t)=g(u(t), v(t), w(t)) donde γ(t) = (u(t), v(t), w(t)) son las g-coordendas del vector r(t). El vector velocidad del móvil lo obtenemos derivando r(t)=g(γ(t)) con lo que resulta que r ' (t) = MJg(γ(
                t)) . γ ' (t) donde MJg(γ(t)) es la matriz jacobiana de g calculada en el punto γ(t). De esta forma obtenemos el vector velocidad en función de las derivadas de las funciones u(t),  v(t),  w(t). Finalmente, expresamos el vector obtenido en la base {(Subscript[e, 1])(t),(Subscript[e, 2])(t),(Subscript[e, 3])(t)} (esta es la base {(Subscript[e, 1]),(Subscript[e, 2]),(Subscript[e, 3])} correspondiente al punto (u(t), v(t), w(t))).

Clear[r]
r[t_] = g[u[t], v[t], w[t]];
r'[t]

\(\(\(Clear[r]

    \({e1[t_], e2[t_], e3[t_]} = {e1[{u[t], v[t], w[t]}], 
          e2[{u[t], v[t], w[t]}], e3[{u[t], v[t], w[t]}]};\)

    \(r[t_] = g[u[t], v[t], w[t]];\)

    {r1[t_], r2[t_], 
        r3[t_]} = \(\({\(r'\)[t] . e1[t], \(r'\)[t] . e2[t], \(r'\)[t] . 
            e3[t]}\)\(//\)\(Simplify\)\( (*\ 
          las\ componentes\ del\ vector\ velocidad\ en\ la\ base\ antes\ definida\ *) \)\)

    Simplify[\(r'\)[t] == 
        r1[t] e1[t] + r2[t] e2[t] + r3[t] e3[t]]\)\(\ \)\( (*\ 
      comprobamos\ la\ expresión\ de\ \(r'\)[
          t]\ en\ la\ base\ {e1[t], e2[t], e3[t]}\ *) \)\)\)

Hemos obtenido que r '(t)=a(t) u'(t)(Subscript[e, 1])(t)+b(t) v'(t)(Subscript[e, 2])(t)+c(t) w'(t)(Subscript[e, 3])(t) donde a(t), b(t), c(t) son los factores de escala calculados en el punto (u(t), v(t), w(t)). Esta expresión de la velocidad es válida para todo sistema de coordenadas curvilíneas ortogonales. Como la base {(Subscript[e, 1])(t),(Subscript[e, 2])(t),(Subscript[e, 3])(t)} es ortonormal, la norma euclída del vector r '(t) viene dada por

||r '(t)\( || \^2\)=r '(t) . r '(t)=\(\((\(a(t)\)\ u' \((t)\))\)\^2 + \((\(b(t)\)\ v' \((t)\))\)\^2 + \((\(c(t)\)\ w' \((t)\))\)\^2\)

igualdad que en los libros de física suelen escribir en la forma

(ds^2) = (((a du))^2) + (((b dv))^2) + (((c dw))^2)

y dicen que esta es la expresión del elemento diferencial de longitud de arco en las nuevas coordenadas. Decididamente, los autores de libros de física no gustan de las derivadas y prefieren las diferenciales.

La divergencia de un campo vectorial F cuyas componentes en la base {(Subscript[e, 1]),(Subscript[e, 2]),(Subscript[e, 3])} asociada a las nuevas coordenadas son los campos escalares (Subscript[F, 1]),  (Subscript[F, 2]),  (Subscript[F, 3]); es decir

F(g(u, v, w))=(Subscript[F, 1])(u, v, w)(Subscript[e, 1])+(Subscript[F, 2])(u, v, w)(Subscript[e, 2])+(Subscript[F, 3])(u, v, w)(Subscript[e, 3])

se prueba que viene dada por

div F=(1/(a b c)) ((∂/∂) 
                          u (b c (Subscript[F, 1])) + (∂/∂) 
                          v (a c (Subscript[F, 2])) + (∂/∂) 
                          w (a b  (Subscript[F, 3])))

donde se entiende que a la izquierda div F está evaluada en el punto g (u, v, w) y a la derecha las derivadas parciales están evaluadas en el punto (u, v, w).

En las mismas condiciones se verifica la siguiente igualdad para el rotacional de F

rot F =(1/(a b c))determinante (({{a (Subscript[e, 1]), b (Subscript[e, 2]), c (Subscript[e, 3])}, {(∂/∂) 
                          u, (∂/∂) 
                          v, (∂/∂) w}, {a (Subscript[F, 1]), b (Subscript[F, 2]), c (Subscript[F, 3])}}))

donde se entiende que a la izquierda rot F está evaluado en el punto g (u, v, w) y a la derecha las derivadas parciales están evaluadas en el punto (u, v, w).

Ejercicio 3

Ejercicio 4