ParametricPlot kullanarak eşpotansiyel yüzeyler
Bu yüzden aşağıdaki fonksiyonun sabit olduğu çizgileri çizmeye çalışıyorum $$ \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} $$ nerede $$\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. $$Ben ikinci yorumun motive edilmiş Aşağıdaki kodu kullanıyorum bu yazı
Σ[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}]
ve çıktıyı burada gösterildiği gibi verir (ikincisi, ilkinin uzaklaştırılmış halidir).
Gördüğünüz gibi, sol alt köşede garip davranışlar var ve neden olduğundan emin değilim. Ayrıca trajectoriesbu kodun bir kısmının ne yaptığını da anlamıyorum , daha doğrusu neden Functionbaşlangıçta 4 argüman var? Lütfen yardım et.
(bağlam: Kerr uzay zamanında sabit ivme çizgilerini çizmeye çalışıyorum)
Yanıtlar
Her MeshFunctionszaman kullandığım güçlü bir yöntem.
Burada 3D'den görüntülüyoruz Mesh. Bu yüzden çiziyoruzParametricPlot3D $$\begin{cases}x=\sqrt{r^2+0.9801} \sin (\theta ),\\ y=r \cos (\theta ),\\ z=f(r,\theta)\end{cases}$$
Biz kurarız ViewPoint={0,0,Infinity}ve kullanırızViewProjection -> "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"}]
Neden olarak sorunuzu İlişkin trajectoriesdört bağımsız değişkeni vardır: MeshFunctionsiçin ParametricPlotihtiyaç üç dört argümanları. İlk ikisi arsa koordinatlarına karşılık gelir, son ikisi (veya bir) ParametricPlot.
Bunu daha iyi anlamak için aşağıdaki örneği düşünün:
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, bu soruyla ilgili olan şey, eşpotansiyellerin kutupsal koordinatlarda çizilmediği, kutupsal koordinatlara benzer bazı özel koordinatlarda çizildiği (ParametricPlot, "ParametricPlot [{Sqrt [r ^ 2 +) 'deki ilk argümana bakın. 0.99 ^ 2] * Günah [[Teta]], r Cos [[Teta]]}, ... "). Bu nedenle ContourPlot yerine ParametricPlot yolu kullanıldı, Mathematica'da yerleşik olmayan kullanıcı tanımlı koordinatları kullanmanıza izin verir. Kutupsal koordinatlarla kartezyen koordinatlara dönüşüm gerçekleştirebilirsiniz "Kutupsal" -> "Kartezyen", çünkü bunlar Mathematica'da yerleşiktir, ancak bu soruda olduğu gibi kullanıcı tanımlı koordinatlarla değil. ContourPlot'un kullanıcı tanımlı koordinatları destekleyip desteklemediğinden emin değilim