Äquipotentialflächen mit ParametricPlot
Ich versuche also, Linien zu zeichnen, auf denen die folgende Funktion eine Konstante ist $$ \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} $$ wo $$\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. $$Ich verwende den folgenden Code, der aus dem zweiten Kommentar zu diesem Beitrag motiviert wurde
Σ[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}]
und es gibt die Ausgabe wie hier gezeigt (die zweite ist die herausgezoomte Version der ersten).
Wie Sie sehen können, hat die untere linke Ecke ein seltsames Verhalten und ich bin mir nicht sicher warum. Ich verstehe auch nicht, was der trajectoriesTeil dieses Codes tut, genauer gesagt, warum hat der Functionam Anfang 4 Argumente? Bitte helfen Sie.
(Kontext: Ich versuche, die Linien der konstanten Beschleunigung in der Kerr-Raumzeit zu zeichnen.)
Antworten
Das MeshFunctionsist eine mächtige Methode, die ich immer benutze.
Hier sehen wir das Meshaus 3D. Also zeichnen wir dieParametricPlot3D $$\begin{cases}x=\sqrt{r^2+0.9801} \sin (\theta ),\\ y=r \cos (\theta ),\\ z=f(r,\theta)\end{cases}$$
Wir setzen das ViewPoint={0,0,Infinity}und verwendenViewProjection -> "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"}]
In Bezug auf Ihre Frage, warum trajectorieshat vier Argumente: MeshFunctionsfür die ParametricPlotNotwendigkeit drei bis vier Argumente. Die ersten beiden entsprechen den Koordinaten des Diagramms, die letzten beiden (oder eins) den Parametern des ParametricPlot.
Betrachten Sie das folgende Beispiel, um dies besser zu verstehen:
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, bei dieser Frage werden Äquipotentiale nicht in Polarkoordinaten dargestellt, sondern in einigen speziellen Koordinaten, die den Polarkoordinaten ähnlich sind (siehe das erste Argument in ParametricPlot, "ParametricPlot [{Sqrt [r ^ 2 +") 0,99 ^ 2] * Sin [[Theta]], r Cos [[Theta]]}, ... "). Aus diesem Grund wurde die ParametricPlot-Methode anstelle von ContourPlot verwendet. Sie können benutzerdefinierte Koordinaten verwenden, die nicht in Mathematica integriert sind. Mit Polarkoordinaten können Sie eine Transformation in kartesische Koordinaten "Polar" -> "Kartesisch" durchführen, da diese in Mathematica integriert sind, jedoch nicht mit benutzerdefinierten Koordinaten, was in dieser Frage der Fall ist. Ich bin nicht sicher, ob ContourPlot benutzerdefinierte Koordinaten unterstützt