Superfici equipotenziali utilizzando ParametricPlot
Quindi sto cercando di tracciare linee su cui la seguente funzione è una costante $$ \frac{\left(-\Sigma (r,0.99,\theta )+2 r^2-0.99^2 r \sin ^2(\theta )\right)^2}{\Delta (r,1,0.99) \Sigma (r,0.99,\theta )^3}+\frac{0.99^4 \sin ^2(\theta ) \cos ^2(\theta ) \Delta (r,1,0.99)}{\Sigma (r,0.99,\theta )^4} $$ dove $$\Delta (r,M,a):=a^2-2 M r+r^2\quad\text{and}\quad\Sigma (r,a,\theta):=a^2 \cos ^2(\theta )+r^2. $$Sto usando il seguente codice che è stato motivato dal secondo commento su questo post
Σ[r_, a_, θ_] := r^2 + a^2*Cos[θ]^2;
Δ[r_, M_, a_] := r^2 - 2 M r + a^2;
cValues =
{0.01, 0.1, 0.08, 0.06, 0.003, 0.005, 0.12, 0.14, 0.2, 0.15, 0.02, 0.04,
0.03, 0.18, 0.22, 1.5, 2.3, 0.002, 0.0025, 0.003, 0.0015, 0.0018, 0.0023,
0.0011, 0.0009, 0.0008, 0.0007, 0.0006, 0.0005};
trajectories =
Function[{x, y, r, θ},
Σ[r, 0.99, θ]^(-3)*Δ[r, 1, 0.99]^(-1)*(2 r^2 -
Σ[r, 0.99, θ] - 0.99^2 r Sin[θ]^2)^2 +
Δ[r, 1, 0.99]*0.99^4*Σ[r, 0.99, θ]^(-4) Sin[θ]^2 Cos[θ]^2];
ParametricPlot[{Sqrt[r^2 + 0.99^2]*Sin[θ], r Cos[θ]}, {r, 0, 5}, {θ, 0, Pi/2},
PlotStyle -> {Green}, MeshFunctions -> {trajectories}, Mesh -> {cValues}]
e fornisce l'output come mostrato qui (il secondo è la versione rimpicciolita del primo).
Come puoi vedere, l'angolo in basso a sinistra ha un comportamento strano e non sono sicuro del perché. Inoltre non capisco cosa trajectoriesstia facendo la parte di questo codice, più precisamente perché Functionha 4 argomenti all'inizio? Per favore aiuto.
(contesto: sto cercando di tracciare le linee di accelerazione costante nello spaziotempo di Kerr)
Risposte
Il MeshFunctionsè un potente metodo che io uso sempre.
Qui vediamo il Mesh3D. Quindi disegniamo il fileParametricPlot3D $$\begin{cases}x=\sqrt{r^2+0.9801} \sin (\theta ),\\ y=r \cos (\theta ),\\ z=f(r,\theta)\end{cases}$$
Impostiamo ViewPoint={0,0,Infinity}e usiamoViewProjection -> "Orthographic"
Clear["`*"];
Σ[r_, a_, θ_] = r^2 + a^2*Cos[θ]^2;
Δ[r_, M_, a_] = r^2 - 2 M r + a^2;
f[r_, θ_] = Σ[r,
0.99, θ]^(-3)*Δ[r, 1,
0.99]^(-1)*(2 r^2 - Σ[r, 0.99, θ] -
0.99^2 r Sin[θ]^2)^2 + Δ[r, 1,
0.99]*0.99^4*Σ[r,
0.99, θ]^(-4) Sin[θ]^2 Cos[θ]^2;
cValues = {0.01, 0.1, 0.08, 0.06, 0.003, 0.005, 0.12, 0.14, 0.2, 0.15,
0.02, 0.04, 0.03, 0.18, 0.22, 1.5, 2.3, 0.002, 0.0025, 0.003,
0.0015, 0.0018, 0.0023, 0.0011, 0.0009, 0.0008, 0.0007, 0.0006,
0.0005};
ParametricPlot3D[{Sqrt[r^2 + 0.99^2]*Sin[θ], r Cos[θ],
f[r, θ]}, {r, 0, 5}, {θ, 0, π/2},
PlotPoints -> 150, MeshFunctions -> (#3 &), Mesh -> {cValues},
PlotStyle -> Green, ViewProjection -> "Orthographic",
ViewPoint -> {0, 0, ∞}, Lighting -> {White, "Neutral"}]
Per quanto riguarda la tua domanda sul perché trajectoriesha quattro argomenti: MeshFunctionsper ParametricPlotbisogno di tre o quattro argomenti. I primi due corrispondono alle coordinate del grafico, gli ultimi due (o uno) ai parametri del ParametricPlot.
Per apprezzarlo meglio, considera il seguente esempio:
funs = {
Function[{x, y, u, v}, x],
Function[{x, y, u, v}, y],
Function[{x, y, u, v}, u],
Function[{x, y, u, v}, v]
};
Row@Table[ParametricPlot[
{r Cos[\[Theta]], r Sin[\[Theta]]},
{r, 0, 1}, {\[Theta], 0, \[Pi]/2},
MeshFunctions -> fun,
Mesh -> 10,
ImageSize -> Small
], {fun, funs}
]
@Natas, il problema è con questa domanda che gli equipotenziali non sono tracciati in coordinate polari, sono tracciati in alcune coordinate speciali simili alle coordinate polari (dai un'occhiata al primo argomento in ParametricPlot, "ParametricPlot [{Sqrt [r ^ 2 + 0,99 ^ 2] * Sin [[Theta]], r Cos [[Theta]]}, ... "). Questo è il motivo per cui è stato utilizzato il metodo ParametricPlot al posto di ContourPlot, che consente di utilizzare coordinate definite dall'utente che non sono integrate in Mathematica. Con le coordinate polari puoi eseguire la trasformazione in coordinate cartesiane "Polar" -> "Cartesian", perché sono incorporate in Mathematica, ma non con coordinate definite dall'utente, come è il caso in questa domanda. Non sono sicuro se ContourPlot supporta le coordinate definite dall'utente