3ª Aula Prática de TFCOMP-II

Comecem por criar e guardar em disco um Notebook com o nome TFC3_grupo.nb, onde 'grupo' é o nome do vosso grupo de trabalho. Neste Notebook criem uma célula de título identificando os elementos constituintes do grupo (nome, número e contactos).

Inicializações

<< Graphics`Arrow`

SetOptions[Arrow, HeadScaling -> Absolute, 
        HeadWidth -> 0.5`, HeadLength -> 10.1];

Txt[sty__] := Text[StyleForm[#1, sty], ##2] & @@ ## &

<< Utilities`Notation`
MF = MatrixForm;
HF = HoldForm;
$Post := If[Head[#] === List, MF[#], #] &

A notação seguinte define uma forma postfix  para a operação de transposição de uma matriz

Notation[\(z_\^†\) ⟺ Transpose[z_]]

A notação seguinte define uma forma postfix  para a operação de inversão de uma matriz

Notation[\(z_\^\(-1\)\) ⟺ Inverse[z_]]

Numa transformação de coordenadas cartesianas {x, y, z} para novas coordenadas {u, v, w}, o Jacobiano da transformação determina em que regiões é possível inverter a transformação, i.e. obter u,  v,  w em função de x,  y,  z. Construa uma função Jac[old, new] para uma transformação de coordenadas de (ℝ^n), com n arbitrário, cujo efeito seja como, por exemplo no caso de coordenadas polares no plano: Jac[{x, y}, {r, θ}]==( ({{(∂_r) x, (∂_r) y}, {(∂_θ) x, (∂_θ) y}}) ). Use ReplaceAll[#, {x -> r Cos[θ],  
            y ->  r Sin[θ]}] & e ReleaseHold para avaliar explícitamente este Jacobiano. 
Use esta técnica para construir o Jacobiano das seguintes transformações de coordenadas, de cartesianas para

Coordenadas Esféricas : ({{x = r Sin[θ] Cos[ϕ]}, {y = r Sin[θ] Sin[ϕ]}, {z = r Cos[θ]}})          Coordenadas Parabólicas: ({{x = ξ η Cos[ϕ]}, {y = ξ η Sin[ϕ]}, {z = (1/2) ((ξ^2) - (η^2))}})

Verifique em que pontos o Jacobiano é singular. Obtenha a forma inversa da transformação onde isso é possível.

Solução

\(Jac[old_, 
        new_] := \((\(\((\((\(HoldForm[∂\_# f] &\) /@ new)\) /. 
                  f -> #)\) &\) /@ old)\) // Transpose\)

Nota: O Transpose é aqui incluido para acertar com a convenção a que se habituaram, dando uma notação diferente da que é pedida no enunciado. Para efeitos do cálculo a convenção que se adopta é irrelevante.

Jac[{x, y, z}, {r, θ, ϕ}]

Para ver o que acontece vamos por partes, faça um exemplo com old = {x, y, z} e new = {r, θ, ϕ}.

\(\((\(HoldForm[∂\_# 
              f] &\) /@ {r, θ, ϕ})\)\)

(({{(∂_r) f}, {(∂_θ) f}, {(∂_ϕ) f}}))/.f -> #

(({{(∂_r) #1}, {(∂_θ) #1}, {(∂_ϕ) #1}}))&/@{x, y, z}

(({{(∂_r) x, (∂_θ) x, (∂_ϕ) x}, {(∂_r) y, (∂_θ) y, (∂_ϕ) y}, {(∂_r) z, (∂_θ) z, (∂_ϕ) z}}))//Transpose

Coordenadas Esféricas

HF[Jac[{x, y, z}, {r, θ, ϕ}]] == 
      Jac[{x, y, z}, {r, θ, ϕ}]

(Jac[{x, y, z}, {r, θ, ϕ}] // MF)==((({{(∂_r) x, (∂_r) y, (∂_r) z}, {(∂_θ) x, (∂_θ) y, (∂_θ) z}, {(∂_ϕ) x, (∂_ϕ) y, (∂_ϕ) z}}))/.(({{x -> r Cos[ϕ] Sin[θ]}, {y -> r Sin[θ] Sin[ϕ]}, {z -> r Cos[θ]}}))//ReleaseHold//MF)

Pontos Singulares

Det@(({{Cos[ϕ] Sin[θ], Sin[θ] Sin[ϕ], Cos[θ]}, {r Cos[θ] Cos[ϕ], r Cos[θ] Sin[ϕ], -r Sin[θ]}, {-r Sin[θ] Sin[ϕ], r Cos[ϕ] Sin[θ], 0}}))==0//Sp//Reduce

Isto significa que a transformação para coordenadas esféricas deixa de ser unívoca para pontos no eixo dos z.

Coordenadas Parabólicas

MF/@(Jac[{x, y, z}, {ξ, η, ϕ}]==(Jac[{x, y, z}, {ξ, η, ϕ}]	/.(({{x -> η ξ Cos[ϕ]}, {y -> η ξ Sin[ϕ]}, {z -> (1/2) (-(η^2) + (ξ^2))}}))//ReleaseHold))

Det[(({{η Cos[ϕ], ξ Cos[ϕ], -η ξ Sin[ϕ]}, {η Sin[ϕ], ξ Sin[ϕ], η ξ Cos[ϕ]}, {ξ, -η, 0}}))]==0	//Simplify//Reduce//Or @@ 
          Cases[#, 
            z_ /; (FreeQ[z, I] && 
                  FreeQ[z, -I])] &

Coordenadas Parabólicas:  ({{x = ξ η Cos[ϕ]}, {y = ξ η Sin[ϕ]}, {z = (1/2) ((ξ^2) - (η^2))}})

O gráfico das curvas coordenadas η = (c^te),  ξ = (c^te),  η = (c^te),  θ = (c^te), e ξ = (c^te),  θ = (c^te), mostra como estas coordenadas formam um sistema ortogonal.  As primeiras são simplesmente circunferências horizontais com centro sobre o eixo dos z. As superfícies  θ = (c^te) são planos verticais passando pelo eixo dos z. Em cada um desses planos as curvas coordenadas η = (c^te)  e  ξ = (c^te) são parábolas  com foco na origem, semi-eixo  na direcção z positiva e negativa, respectivamente, e distância focal s = (η^2) ou  s = (ξ^2),  conforme η ou ξ é constante. A distância do foco ao vértice é (Subscript[r, o]) = (1/2) s e a excentricidade ϵ  = (r/(s  ±  z)) é igual a 1.

\(\(pbl1 = 
        Plot[\(1\/2\) \((x\^2\/s - s)\) /. s -> 2, {x, \(-4\), 4}, 
          PlotRange -> {\(-3\), 3}, AspectRatio -> 3\/4, 
          AxesLabel -> {x, z}, Frame -> False, 
          Epilog -> {Circle[{0, 0},  .1], 
Arrow[{0, 
                  0}, {3, 5\/4}], {AbsoluteDashing[{5, 5, 5}], 
                Line[{{3, 5\/4}, {3, \(-2\)}}], 
                Line[{{\(-4\), \(-2\)}, {4, \(-2\)}}]}, 
              Txt[ti\_12] /@ {{"Directriz (s = 2)", {3, \(-2.3\)}}, 
{F, {\(- .2\),  .2}}, 
{r, {1.5, 
                      0.8}}, 
{\*""s = (η^2)"", {3.6, \(-1\)}}, 
{"z = r-s", {3.2, 0.55}, {\(-1\), 
                      0}}, 
{\*""(Subscript[r, o]) = s/2"", { .1, \(-1.1\)}, {\(-1\), 
                      0}}, 
{\*""x = (Sqrt[s]) ξ"", {1.5,  .2}, {0, 0}}}, 
Arrow[{0, 
                  0}, {0, \(-1\)}], 
              Arrow[{0, 0}, {3, 
                  0}], 
Arrow[{3.5, \(- .8\)}, {3.5, 0}], 
              Arrow[{3.5, \(-1.2\)}, {3.5, \(-2\)}], 
Arrow[{3.5,  .7}, {3.5, 5\/4}], 
              Arrow[{3.5,  .5}, {3.5, 0}], Line[{{3.2, 5\/4}, {3.8, 5\/4}}]}, 
          DisplayFunction -> Identity];\)\)

\(\(pbl2 = 
        Plot[\(1\/2\) \((s - y\^2\/s)\) /. s -> 2, {y, \(-4\), 4}, 
          PlotRange -> {\(-3\), 3}, AR -> 3\/4, 
          AxesLabel -> {x, z}, Frame -> False, 
          Epilog -> {Circle[{0, 0},  .1], 
Arrow[{0, 
                  0}, {3, \(-\(5\/4\)\)}], {AbsoluteDashing[{5, 5, 5}], 
                Line[{{3, \(-\(5\/4\)\)}, {3, 2}}], 
                Line[{{\(-4\), 2}, {4, 2}}]}, 
              Txt[ti\_12] /@ {{"Directriz (s = 2)", {3, 
                      2.3}}, 
{F, {\(- .2\),  .2}}, 
{r, {1.5, \(-0.8\)}}, 
{\*""s = (ξ^2)"", {3.6, 
                      1}}, 
{"z = s-r", {3.2, \(-0.6\)}, {\(-1\), 
                      0}}, 
{\*""(Subscript[r, o]) = s/2"", { .1, 1.1}, {\(-1\), 
                      0}}, 
{\*""x = (Sqrt[s]) η"", {1.5,  .2}, {0, 0}}}, 
Arrow[{0, 0}, {0, 1}], 
              Arrow[{0, 0}, {3, 
                  0}], 
Arrow[{3.5,  .8}, {3.5, 0}], 
              Arrow[{3.5, 1.2}, {3.5, 
                  2}], 
Arrow[{3.5, \(- .7\)}, {3.5, \(-\(5\/4\)\)}], Arrow[{3.5, \(- .5\)}, {3.5, 0}], 
              Line[{{3.2, \(-\(5\/4\)\)}, {3.8, \(-\(5\/4\)\)}}]}, 
          DisplayFunction -> Identity];\)\)

Show[GraphicsArray[{pbl1, pbl2}], 
        DisplayFunction -> (Display[$Display, #1] &)];

Gráfico de linhas coordenadas ξ = (c^te) e η = (c^te), num plano vertical ϕ = (c^te) passando pelo eixo dos z

Unprotect[ParametricPlot];
SetOptions[
        ParametricPlot, 
        DisplayFunction -> 
          Identity];
axes = {Arrow[{0, 0}, {21, 0}], 
          Arrow[{0, 0}, {0, 11}]};
{Table[ParametricPlot[{ξ η, (1/2) ((ξ^2) - (η^2))} /. η -> (Sqrt[s]) // Release,{ξ, -6, 6},PlotStyle -> {Thickness[0.002`], 
                        Hue[((1 - s)/40)]},PlotRange->(({{-20, 20}, {-10, 10}}))],{s, 2, 30, 2}],Table[ParametricPlot[{ξ η, (1/2) ((ξ^2) - (η^2))} /. ξ -> (Sqrt[s]) // Release,{η, -6, 6},PlotStyle -> {Thickness[0.002`], 
                        Hue[((1 - s)/40)]},PlotRange->(({{-20, 20}, {-10, 10}}))],{s, 2, 30, 2}],
Graphics[
              Arrow[{0, 
                  0}, {ξ η, (1/2) ((ξ^2) - (η^2))} /. ξ -> (Sqrt[14]) /. η -> (Sqrt[8])]]}//\(Show[#, 
            DisplayFunction -> \((Display[$Display, #1] &)\), 
            AspectRatio -> 1\/2, 
            Ticks -> {Rg[\(-20\), 20, 5], Rg[\(-20\), 20, 2]}, 
            AxesLabel -> {ρ == \@\(x\^2 + y\^2\), z}, 
            Epilog -> {axes, {AbsoluteDashing[{2.1, 2.1,  .2}], 
                  LI[{{4\ \@7, 0}, {4\ \@7, 3}}]}, 
                Txt[tb\_10] /@ {{\*""{ξ, η} = {(Sqrt[14]), (Sqrt[8])}"", {4\ \@7, 
                        3}, {\(-1\), \(-1\)}}, {TF[{{\*""ξ = (((r + z))/ρ)(Sqrt[r - z])""}, {\*""η = (Sqrt[r - z]) ""}}], {4\ \@7 + 10, 3}, {\(-1\), \(-1\)}}, {r, {6.5, 2.3}}, {z, {11, 
                        2}}, {ρ, {10.5501, \(-0.316593\)}}}, 
Table[
                  Txt[ti\_9]@{StringForm[\*""ξ = \!\(\@`1`\)"", 
                        s], { .2\ , s\/2 +  .2}, {\(-1\), 0}, 
                      TextStyle -> {FontColor -> 
                            Hue[1 - s\/40. ]}}, {s, 2, 20, 4}], 
                Table[Txt[
                      ti\_9]@{StringForm[\*""η = \!\(\@`1`\)"", 
                        s], { .2\ , \(-\(s\/2\)\) -  .2}, {\(-1\), 0}, 
                      TextStyle -> {FontColor -> 
                            Hue[1 - s\/40. ]}}, {s, 2, 20, 4}]}] &\);

Gráfico da transformação de coordenadas cartesianas num plano vertical passando pelo eixo dos z, mostrando linhas coordenas z = (c^te) e ρ = (Sqrt[(x^2) + (y^2)]) = (c^te).

Unprotect[ParametricPlot];
SetOptions[
        ParametricPlot, 
        DisplayFunction -> 
          Identity];
axes = {Arrow[{0, 0}, {6.1, 0}], 
          Arrow[{0, 0}, {0, 6.1}]};
{  Table[ParametricPlot[(({{(Sqrt[r - z])}, {(((Sqrt[r - z]) (r + z))/ρ)}}))/.r -> (Sqrt[(ρ^2) + (z^2)])//Release,{ρ, 0, 60},PlotStyle -> {TH[ .2], Hue[1 - (z/40)]},PlotRange -> {{0, 6.0}, {0, 6.0}}],{z, -20, 20, 2}],  Table[ParametricPlot[(({{(Sqrt[r - z])}, {(((Sqrt[r - z]) (r + z))/ρ)}}))/.r -> (Sqrt[(ρ^2) + (z^2)])//Release,{z, -20, 20},PlotStyle -> {TH[ .2], 
                        Hue[((1 - ρ)/40)]},PlotRange -> {{0, 6. }, {0, 6.0}}],{ρ, 2, 60, 2}],G2@axes }//SH[#,Dspl,AR -> (6/6),AxesLabel->(({{η}, {ξ}})),PlotRegion -> {{0,  .9}, {0,  .9}},Epilog->{{AbsoluteDashing[{2.1, 2.1,  .2}], 
                      LI[{{(Sqrt[8]), 0}, {(Sqrt[8]), (Sqrt[14])}}], 
                      LI[{{0, (Sqrt[14])}, {(Sqrt[8]), (Sqrt[14])}}]},Txt[(Subscript[tb, 10])]/@{{"{η, ξ} = {(Sqrt[8]),(Sqrt[14])}",(({{2 (Sqrt[2])}, {(Sqrt[14])}})),{-1, -1}}},Table[Txt[(Subscript[ti, 9])]@{StringForm["z = `1`", z],(({{0}, {(Sqrt[2]) (Sqrt[z])}})),{-1, -1},TextStyle -> {FontColor -> 
                                    Hue[1 - (z/40.) ]}},{z, 2, 16, 2}],Table[
                      Txt[(Subscript[ti, 9])]@{StringForm["z = `1`", 
                            z], {(Sqrt[2]) (Sqrt[-z]),  .1}, {-1, -1}, 
                          TextStyle -> {FontColor -> 
                                Hue[1 - ((-z)/40.) ]}}, {z, -16, 0, 
                        2}],Table[Txt[(Subscript[ti, 9])]@{\(StringForm["ρ = `1`", ρ]\),(({{6}, {(ρ/6)}})),{-1, 0},TextStyle -> {FontColor -> 
                                    Hue[1 - (ρ/40.) ]}},{ρ, 2, 20, 2}]}]&;

O  lugar geométrico dos pontos onde o Jacobiano é singular correponde a η = 0(semi-eixo z > 0) ou ξ = 0 (semi-eixo z < 0) e a origem. Para todos os outros pontos, a transformação que dá {ξ,  η,  θ} a partir das coordenadas cartesianas {x,  y,  z} é, tendo em conta que ξ > 0, η > 0 e θ ∈ [ 0,  
      2  π ], 

({{ξ = (((r + z))/ρ) (Sqrt[r - z]) , ;, η = (Sqrt[r - z]), ;, θ=ArcCos[(x/ρ)](Subscript[δ, 1,Sign[y]])+(ArcSin[(x/ρ)] + 
                      3  (π/2)) (Subscript[δ, -1, Sign[y]])}})

onde  r = (Sqrt[(x^2) + (y^2) + (z^2)]) e ρ = (Sqrt[(x^2) + (y^2)]).  Para cálculos onde  θ apenas apareca como argumento de uma função trigonométrica, é legítimo usar θ = ArcTan[(y/x)]

Off[Solve::"ifun"]

C2P=Solve[(({{x == η ξ Cos[θ]}, {y == η ξ Sin[θ]}, {z == (1/2) (-(η^2) + (ξ^2))}})),{ξ, η, θ}][[-{1, 2}]]//Sp;
C2P = C2P /. (Sqrt[(x^2) + (y^2) + (z^2)]) -> r /. (x^2) + (y^2) -> (ρ^2) // Sp // 
        PowerExpand
C2P = C2P /. 
                r - z -> s /. r + z -> 2  (Subscript[r, o]) + 2  z /. 
            (x^2) + (y^2) -> (ρ^2) // Sp // PowerExpand

Se designarmos por (Overscript[r, ⇀])=x (Subscript[(OverVector[e]), x])+y (Subscript[(OverVector[e]), y])+z (Subscript[(OverVector[e]), z]) o vector posição de um ponto, calcule os vectores \({τ\&⇀\_u, \ τ\&⇀\_v, \ τ\&⇀\_w}\)=\({∂\_u r\&⇀, \ ∂\_v r\&⇀, \ ∂\_w r\&⇀}\) para cada uma das transformações de coordenadas anteriores,( i.e. fazendo {u, v, w} = {r, ϕ, θ} e {u, v, 
          w}={ξ, η, ϕ} ). 

Qual é o significado destes vectores? Use a função ParametricPlot3D do Mathematica para visualizar as linhas coordenadas para os dois sistemas acima mencionados.

Mostre que Det[Jac[old, new]] = (Subscript[h, u]) (Subscript[h, v]) (Subscript[h, w]) onde as funções de escala (Subscript[h, u]),  (Subscript[h, v]),  (Subscript[h, w])são as magnitudes dos vectores \(TraditionalForm\`τ\&⇀\_u, \ τ\&⇀\_v, \ τ\&⇀\_w\). Calcule os diferenciais de uma função f e do vector (Overscript[r, ⇀]) nas novas coordenadas {u, v, w} e use identidades vectoriais como \(TraditionalForm\`df = ∇f . dr\&⇀\) para deduzir a expressão para o operador ∇ nestas coordenadas.

Solução

Coordenadas Esféricas

MatrixForm/@((({{(Subscript[(Overscript[τ, ⇀]), u])}, {(Subscript[(Overscript[τ, ⇀]), v])}, {(Subscript[(Overscript[τ, ⇀]), w])}}))==(({{(∂_u) (Overscript[r, ⇀])}, {(∂_v) (Overscript[r, ⇀])}, {(∂_w) (Overscript[r, ⇀])}}))/.Thread[{u, v, w} -> {r, θ, ϕ}]/.(Overscript[r, ⇀]) -> {x, y, z}/.(({{x -> r Cos[ϕ] Sin[θ]}, {y -> r Sin[θ] Sin[ϕ]}, {z -> r Cos[θ]}})))//ReleaseHold

O seguinte cálculo mostra que estes vectores são mútuamente ortogonais, e as suas normas são (Subscript[h, r]) = 1, (Subscript[h, θ]) = r e (Subscript[h, ϕ]) = r Sin[θ]

M=(({{Cos[ϕ] Sin[θ], Sin[θ] Sin[ϕ], Cos[θ]}, {r Cos[θ] Cos[ϕ], r Cos[θ] Sin[ϕ], -r Sin[θ]}, {-r Sin[θ] Sin[ϕ], r Cos[ϕ] Sin[θ], 0}}));

M.(SuperDagger[M])//Sp

rfixed = 
        ParametricPlot3D[{r Cos[ϕ] Sin[θ], 
                r Sin[θ] Sin[ϕ], r Cos[θ]} /. 
              r -> 2 // Release, {θ, 0, π}, {ϕ, 0, 
            2  π}, 
          DisplayFunction -> Identity];
θfixed = 
      ParametricPlot3D[{r Cos[ϕ] Sin[θ], 
              r Sin[θ] Sin[ϕ], 
              r Cos[θ]} /. θ -> (π/4) // Release, {r, 
          0, 4}, {ϕ, 0, 2  π}, 
        DisplayFunction -> Identity]; ϕfixed = 
      ParametricPlot3D[{r Cos[ϕ] Sin[θ], 
              r Sin[θ] Sin[ϕ], 
              r Cos[θ]} /. ϕ -> (π/4) // Release, {r, 0, 
          4}, {θ, 0, π}, 
        DisplayFunction -> Identity];

Show[{rfixed, θfixed, ϕfixed}, 
        DisplayFunction -> (Display[$Display, #1] &)];

Coordenadas Parabólicas

(({{(Subscript[((Overscript[τ,  ⇀]) ), ξ])}, {(Subscript[((Overscript[τ,  ⇀]) ), η])}, {(Subscript[((Overscript[τ,  ⇀]) ), ϕ])}}))==(({{(∂_ξ) 
                                  (Overscript[r,  ⇀]) }, {(∂_η) 
                                  (Overscript[r,  ⇀]) }, {(∂_ϕ) 
                                  (Overscript[r,  ⇀]) }}))		/.(Overscript[r, ⇀])->(({{x}, {y}, {z}}))/.(({{x -> η ξ Cos[ϕ]}, {y -> η ξ Sin[ϕ]}, {z -> (1/2) (-(η^2) + (ξ^2))}}))/.z_List -> MatrixForm[z]//ReleaseHold

O seguinte cálculo mostra que estes vectores são mútuamente ortogonais, e as suas normas são (Subscript[h, ξ]) = (Sqrt[(η^2) + (ξ^2)]), (Subscript[h, η]) = (Sqrt[(η^2) + (ξ^2)]) e (Subscript[h, ϕ]) = η ξ

M=(({{η Cos[ϕ], η Sin[ϕ], ξ}, {ξ Cos[ϕ], ξ Sin[ϕ], -η}, {-η ξ Sin[ϕ], η ξ Cos[ϕ], 0}}));

M . (M^†) // Sp

M == Jac[{x, y, z}, {ξ, η, ϕ}]/.(({{x -> η ξ Cos[ϕ]}, {y -> η ξ Sin[ϕ]}, {z -> (1/2) (-(η^2) + (ξ^2))}}))//ReleaseHold

Det[M] // Simplify

ξfixed=ParametricPlot3D[(({{η ξ Cos[ϕ]}, {η ξ Sin[ϕ]}, {(1/2) (-(η^2) + (ξ^2))}}))/.ξ -> 2//Release,{η, 0, 4},{ϕ, 0, 2  π},DisplayFunction -> Identity];
ηfixed=ParametricPlot3D[(({{η ξ Cos[ϕ]}, {η ξ Sin[ϕ]}, {(1/2) (-(η^2) + (ξ^2))}}))/.η -> 2//Release,{ξ, 0, 4},{ϕ, 0, 2  π},DisplayFunction -> Identity];ϕfixed=ParametricPlot3D[(({{η ξ Cos[ϕ]}, {η ξ Sin[ϕ]}, {(1/2) (-(η^2) + (ξ^2))}}))/.ϕ -> 0//Release,{η, 0, 4},{ξ, 0, 4},DisplayFunction -> Identity];

Show[{ξfixed, ηfixed, ϕfixed}, 
        DisplayFunction -> (Display[$Display, #1] &), 
        PlotRange -> {{-20, 20}, {-10, 10}, {-10, 10}}, 
        BoxRatios -> {2, 1, 1}];

Gradiente em Coordenadas Esféricas

Symbolize[(Overscript[r,  ⇀]) ]
Symbolize[(Subscript[((Overscript[e,  ⇀]) ), r])]
Symbolize[(Subscript[((Overscript[e,  ⇀]) ), ϕ])]
Symbolize[(Subscript[((Overscript[e,  ⇀]) ), z])]

O diferencial df de uma função f  pode ser construído a partir do cálculo

df == Dt[f[x, y, z], t] dt // HoldForm // 
      TraditionalForm

Nesta definição, todas as derivadas estão com HoldForm. Para calcular explícitamente tem que se dar o ReleaseHold.

d[f_, x_]:=(Dt[f @@ x, t] dt // 
              ExpandAll) /. (y_ z_Dt dt) :> 
            ToExpression["d" <> 
                  ToString[z[[1]]]] y/.Derivative[n__][y_][z__]:>(HoldForm[(∂_ζ) 
                  y] /. ζ :> 
                Release[{n} . {z}])

Definindo as seguintes entidades para coordenadas esféricas

esf = {r, θ, ϕ};

esfRule=(({{x -> r Cos[ϕ] Sin[θ]}, {y -> r Sin[θ] Sin[ϕ]}, {z -> r Cos[θ]}}));

O vector posição (Overscript[r,  ⇀])  em coordenadas esféricas é (ainda escrito no refencial cartesiano)

(Overscript[r, ⇀]) = {x, y, z} /. 
          esfRule;

HF@(Overscript[r, ⇀]) == MF@(Overscript[r, ⇀])

Os versores do referencial móvel adaptado às coordenadas esféricas são

\(\(\(e\& ⇀ \)\_r = \(#\/\@\(# . #\) &\)@	\(∂\_r\( r\& ⇀ \)\)		 // 
          Sp;\)\)
\(\(\(e\& ⇀ \)\_ϕ = \(\(#\/\@\(# . #\) &\)@	\(∂\_ϕ\( r\& ⇀ \)\)		 // Sp\) // 
          PowerExpand;\)\)
\(\(\(e\& ⇀ \)\_θ = \(\(#\/\@\(# . #\) &\)@	\(∂\_θ\( r\& ⇀ \)\)		 // Sp\) // 
          PowerExpand;\)
\)
\(TF@{\(\((HF@\(e\& ⇀ \)\_# == 
                MF@\(e\& ⇀ \)\_#)\) &\) /@ esf}\)

Por exemplo, em coordenadas esféricas {r,  θ,  ϕ}  o diferencial df duma função arbitrária pode ser construído como:

(df = d[f, esf]) // TraditionalForm

O vector diferencial d  (Overscript[r,  ⇀])  em coordenadas esféricas, mas ainda visto do referencial cartesiano

HF@(d  (Overscript[r,  ⇀]) ) == (MF@
            d[(Overscript[r,  ⇀]) , esf] // ReleaseHold)

O vector ∇f no referencial móvel naturalmente adaptado às coordenadas esféricas pode ser escrito simbólicamente

\(grad[f_, x_] := 
      Plus @@ \((\(HoldForm@\((\(e\& ⇀ \)\_#)\) \((∇f)\)\_# &\) /@ x)\)\)

∇f == grad[f, esf]

O produto escalar ∇f .  d  (Overscript[r,  ⇀])  em coordenadas esféricas

∇fdr = grad[f, esf] . (d[(Overscript[r,  ⇀]) , esf]) // 
          RH // Sp

Os diferenciais dr,  dθ,  dϕ são entidades linearmente independentes neste contexto, por isso a identidade df = ∇f .  d  (Overscript[r,  ⇀])  passa a ser um sistema de equações sobre os coeficientes destes diferenciais.

Equal @@ # & /@ ({Coefficient[df, {dr, dθ, dϕ}], 
                Coefficient[∇fdr, {dr, dθ, dϕ}]} // 
              Simplify // Transpose) // TableForm

Solve[%, {(Subscript[((∇f)), r]), (Subscript[((∇f)), θ]), (Subscript[((∇f)), ϕ])}]

grad[f, {r, θ, ϕ}] /. 
              Solve[Thread@
                      Coefficient[#, {dr, dθ, 
                          dϕ}] & /@ (df == ∇fdr), {(Subscript[((∇f)), r]), (Subscript[((∇f)), θ]), (Subscript[((∇f)), ϕ])}] // Flatten // 
          Simplify // Expand // TableForm

\(\(% /. \(Csc[θ]\ z_\)\/r -> HF[1\/\(Sin[θ] r\)] z\) /. 
      z_\/r -> HF[1\/r] z\)

Gradiente em Coordenadas Parabolicas

prb = {ξ, η, ϕ};
prbRule = 
        Thread[{{x, y, 
                z} -> {η ξ Cos[ϕ], η ξ Sin[ϕ], (1/2) (-(η^2) + (ξ^2))}}];

O vector posição (Overscript[r,  ⇀])  em coordenadas esféricas é (ainda escrito no refencial cartesiano)

(Overscript[r,  ⇀])  = {x, y, z} /. 
          prbRule;

HF@(Overscript[r,  ⇀])  == 
      MF@(Overscript[r,  ⇀])

Os versores do referencial móvel adaptado às coordenadas esféricas são

\(\(\(e\& ⇀ \)\_ξ = \(#\/\@\(# . #\) &\)@	\(∂\_ξ\( r\& ⇀ \)\)		 // Sp;\)\)
\(\(\(e\& ⇀ \)\_η = \(\(#\/\@\(# . #\) &\)@	\(∂\_η\( r\& ⇀ \)\)		 // Sp\) // 
          PowerExpand;\)\)
\(\(\(e\& ⇀ \)\_ϕ = \(\(#\/\@\(# . #\) &\)@	\(∂\_ϕ\( r\& ⇀ \)\)		 // Sp\) // 
          PowerExpand;\)
\)
\(TF@{\(\((HF@\(e\& ⇀ \)\_# == 
                MF@\(e\& ⇀ \)\_#)\) &\) /@ prb}\)

Por exemplo, em coordenadas parabólicas {ξ,  η,  ϕ}  o diferencial df duma função arbitrária pode ser construído como:

(df = d[f, prb]) // TraditionalForm

O vector diferencial d  (Overscript[r,  ⇀])  em coordenadas parabólicas, mas ainda visto do referencial cartesiano

HF@(d  (Overscript[r,  ⇀]) ) == (MF@
            d[(Overscript[r,  ⇀]) , prb] // ReleaseHold)

O vector ∇f no referencial móvel naturalmente adaptado às coordenadas parabólicas pode ser escrito simbólicamente

\(grad[f_, x_] := 
      Plus @@ \((\(HoldForm@\((\(e\& ⇀ \)\_#)\) \((∇f)\)\_# &\) /@ x)\)\)

∇f == grad[f, prb]

O produto escalar ∇f .  d  (Overscript[r,  ⇀])  nestas coordenadas

∇fdr = grad[f, prb] . (d[(Overscript[r,  ⇀]) , prb]) // 
            ReleaseHold // Simplify // Apart

Os diferenciais dξ,  dη,  dϕ são entidades linearmente independentes neste contexto, por isso a identidade df = ∇f .  d  (Overscript[r,  ⇀])  passa a ser um sistema de equações sobre os coeficientes destes diferenciais.

Equal @@ # & /@ ({Coefficient[df, {dξ, dη, dϕ}], 
                Coefficient[∇fdr, {dξ, dη, dϕ}]} // 
              Simplify // Transpose) // TableForm

Solve[%, {(Subscript[((∇f)), ξ]), (Subscript[((∇f)), η]), (Subscript[((∇f)), ϕ])}]

∇f == grad[f, prb] /. 
              Solve[Thread@
                      Coefficient[#, {dξ, dη, 
                          dϕ}] & /@ (df == ∇fdr), {(Subscript[((∇f)), ξ]), (Subscript[((∇f)), η]), (Subscript[((∇f)), ϕ])}] // 
            Flatten // Simplify // Expand // TableForm

%/.z_(Subscript[((Overscript[e,  ⇀]) ), i])_->HoldForm[
              z] HoldForm[(Subscript[((Overscript[e,  ⇀]) ), i])]//TableForm

Quando n funções diferenciáveis são linearmente independentes as únicas constantes (Subscript[c, k])que verificam (Subscript[c, 1]) (Subscript[f, 1])(x) + 
          (Subscript[c, 2]) (Subscript[f, 2])(x) + … + (Subscript[c, n]) (Subscript[f, n])(x) = 
        0 são as que são todas iguais a zero. Derivando n - 1 vezes esta equação, obtém-se um sistema linear 𝒲[(Subscript[f, 1]), …, (Subscript[f, n])].(({{(Subscript[c, 1])}, {⋮}, {(Subscript[c, n])}}))=(({{0}, {⋮}, {0}})), onde a  n×n-matriz Wronskiana 𝒲[(Subscript[f, 1]), …, (Subscript[f, n])] condiciona a existência de soluções não triviais (Subscript[c, k])e portanto a independência dos (Subscript[f, k]). Construa uma função 𝒲[(Subscript[f, 1]), …, (Subscript[f, n])] que seja o Wronskiano dum sistema  de  n funções, com n arbitrário. Use-o para demonstrar a independência dos seguintes sistemas:

(a)	({{1,, x,, (x^2)}})

(b)	({{Sin[x],, Sin[2  x],, Sin[3  x]}})

(c)	({{Sin[x],, Cos[
                x],, (e^(2 i x))}})

Solução

𝒲[f__] := 
      Table[D[{f}, {x, n}], {n, 0, Length[{f}] - 1}]

𝒲[1, x, (x^2)] // MF

Det[%]

Solve[{(Subscript[c, 1]), (Subscript[c, 2]), (Subscript[c, 3])} . 𝒲[1, x, (x^2)] == 
              0, {(Subscript[c, 1]), (Subscript[c, 2]), (Subscript[c, 3])}] // FL // Sort // TF

𝒲[Sin[x], Sin[2  x], Sin[3  x]] // MF

Det[%] // Sp

𝒲[Sin[x], 
      Cos[x], (E^(2  I x))]

𝒲[Sin[x], 
          Cos[x], (E^(2  I x))] // Det // 
      Sp

Considere a equação de ondas  (((∂^2) Ψ)/(\(∂x ∂x\)))-(((∂^2) Ψ)/(\(∂t ∂t\)))==0 onde Ψ = Ψ[x, t]. Usando o Mathematica, exprima esta equação em termos de novas coordenadas 
(a)	({{(Subscript[x, 1]) =  x (e^t), ,, (Subscript[x, 2]) = x (e^(-t))}})

(b)	({{(Subscript[x, 1]) =  x  +  t, ,, (Subscript[x, 2]) = x  -  t}})

(c)	({{(Subscript[x, 1]) =  t Cosh[x], ,, (Subscript[x, 2]) = t Sinh[x]}})

Calcule os pontos onde estas transformações deixam de ser válidas e qual as consequências para a equação transformada?

Solução

drule[expr_]:=expr/.Derivative[n__][y_][x__]:>d[y, 
                g /@ ({{x}, {n}} // Transpose)]/.g[{x_, n_}] :> (Sequence @@ 
                Array[x &, n])/.d[z_, {x__}] :> 
          HoldForm[(∂_x) z]

a) ({{(Subscript[x, 1]) =  x (e^t), ,, (Subscript[x, 2]) = x (e^(-t))}})

\(LaplaceEqn\  = \ \(\(∂\_\(x, x\)Ψ[x\_1[x, t], 
                  x\_2[x, t]]\  - \ ∂\_\(t, t\)\(\(Ψ[
                  x\_1[x, t], 
                  x\_2[x, t]]\)\(
\)\) /. \(\(Derivative[
                    n__]\)[Ψ]\)[
                z__] :> \(\(\(Derivative[
                  n]\)[Ψ]\)\(
\)\)\) /. 
          x\_1 :> \((#1  E\^#2 &)\)\) /. 
        x\_2 :> \((#1  E\^\(-#2\) &)\)\)

\(\((\((\ \(\(\(\(\(LaplaceEqn\ 
 // 
                            Collect[#, \(Derivative[
                                    n__]\)[Ψ]] &\)
 // At[2, Sp]\)
 // 
                        At[\(-1\), Sp]\)
 // 
                      At[\(-2\), Sp]\)
 // 
                    At[{\(-1\), 2}, 
                      Collect[#, \((\(-1\) + 
                              x\^2)\)] &]\)
 // 
                  At[{1, 2}, Collect[#, x] &])\)	 /. \(Derivative[
                    n__]\)[Ψ] :> \(\(Derivative[
                      n]\)[Ψ]\)[x\_1, x\_2]
 // 
            drule)\) == 0	 // TraditionalForm\)

b) ({{(Subscript[x, 1]) =  x  +  t, ,, (Subscript[x, 2]) = x  -  t}})

\(LaplaceEqn = \(\(∂\_\(x, x\)Ψ[x\_1[x, t], 
                  x\_2[x, t]] - ∂\_\(t, t\)\(\(Ψ[
                  x\_1[x, t], 
                  x\_2[x, t]]\)\(
\)\) /. \(\(Derivative[
                    n__]\)[Ψ]\)[
                z__] :> \(\(\(Derivative[
                  n]\)[Ψ]\)\(
\)\)\) /. 
          x\_1 :> \((#1 + #2 &)\)\) /. 
        x\_2 :> \((#1 - #2 &)\)\)

(LaplaceEqn /. Derivative[
                    n__][Ψ] :> Derivative[
                      n][Ψ][(Subscript[x, 1]), (Subscript[x, 2])] // drule) == 
        0 // TraditionalForm

c) ({{(Subscript[x, 1]) =  t Cosh[x], ,, (Subscript[x, 2]) = t Sinh[x]}})

\(LaplaceEqn\  = \ \(\(∂\_\(x, x\)Ψ[x\_1[x, t], 
                  x\_2[x, t]] - ∂\_\(t, t\)\(\(Ψ[
                  x\_1[x, t], 
                  x\_2[x, t]]\)\(
\)\) /. \(\(Derivative[
                    n__]\)[Ψ]\)[
                z__]\  :> \ \(\(\(Derivative[
                  n]\)[Ψ]\)\(
\)\)\) /. 
          x\_1 :> \((#2  Cosh[#1] &)\)\) /. 
        x\_2 :> \((#2  Sinh[#1] &)\)\)

\(\((\((\(\(\(\(\(LaplaceEqn // 
                            Collect[#, \(Derivative[
                                    n__]\)[Ψ]] &\)
 // At[2, Simplify]\)	
 // 
                        At[\(-1\), Simplify]\)	
 // 
                      At[\(-2\), Simplify]\)	
 // 
                    At[{\(-1\), 2}, 
                      Collect[#, \((\(-1\) + 
                              x\^2)\)] &]\)	
 // 
                  At[{1, 2}, 
                    Collect[#, x] &])\)	
 /. \(Derivative[
                    n__]\)[Ψ] :> \(\(Derivative[
                      n]\)[Ψ]\)[x\_1, x\_2]
 // 
            drule)\) == 0	 // TraditionalForm\)

\(\((LaplaceEqn\  = \ \(\(\(\(\(\(\(\(\(∂\_\(x, x\)Ψ[r[x, y], θ[x, y], z, 
                                        t] + ∂\_\(y, y\)Ψ[r[x, y], θ[x, y], z, 
                                        t] + ∂\_\(z, z\)Ψ[r[x, y], θ[x, y], z, 
                                        t] == \ ∂\_\(t, t\)\(\(Ψ[r[x, y], θ[x, y], z, 
                                        t]\)\(\
\)\)
 /. \(\(Derivative[n__]\)[Ψ]\)[
                                    z__] :> \(\(\(Derivative[
                                        n]\)[Ψ]\)\(\
\)\)\)
 /. 
                              r :> \((\@\(#1\^2 + #2\^2\) &)\)\) /. θ :> \(\((ArcTan[#2\/#1] &)\)\(\
\)\)\)
 /. x -> r\ Cos[θ]\) /. 
                        y -> 
                          r\ \(\(Sin[θ]\)\(\
\)\)\)
 /. \(Derivative[
                            n__]\)[Ψ] :> \(\(Derivative[n]\)[Ψ]\)[r, θ, z, t]
 // 
                    drule\) // Sp\) // Expand\) // PowerExpand\) // 
            TraditionalForm)\) /. 
      z_\ r\^s_ :> HF[r\^s] z\)

(((Laplacian[ψ[r, θ, z, t], 
                      Cylindrical[r, θ, z]] // 
                    Expand) == (∂_(t, t))ψ[r, θ, z, 
                    t] // drule // TraditionalForm) /. 
        z_ (r^s)_ :> HF[(r^s)] z)