Bề mặt tương đương sử dụng ParametricPlot
Vì vậy, tôi đang cố gắng vẽ các dòng mà trên đó hàm sau là một hằng số $$ \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} $$ Ở đâu $$\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. $$Tôi đang sử dụng mã sau được thúc đẩy từ nhận xét thứ hai trên bài đăng này
Σ[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}]
và nó cho kết quả như được hiển thị ở đây (cái thứ hai là phiên bản thu nhỏ của cái đầu tiên).
Như bạn có thể thấy, góc dưới bên trái có hành vi lạ và tôi không rõ tại sao. Tôi cũng không hiểu trajectoriesphần của mã này đang làm gì, chính xác hơn là tại sao lại Functioncó 4 đối số ở đầu? Hãy giúp tôi.
(ngữ cảnh: Tôi đang cố gắng vẽ các đường của gia tốc không đổi trong không thời gian Kerr)
Trả lời
Đây MeshFunctionslà một phương pháp mạnh mẽ mà tôi luôn sử dụng.
Ở đây chúng tôi xem Meshtừ 3D. Vì vậy, chúng tôi rút raParametricPlot3D $$\begin{cases}x=\sqrt{r^2+0.9801} \sin (\theta ),\\ y=r \cos (\theta ),\\ z=f(r,\theta)\end{cases}$$
Chúng tôi đặt ViewPoint={0,0,Infinity}và sử dụngViewProjection -> "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"}]
Về câu hỏi của bạn là tại sao trajectoriescó bốn đối số: MeshFunctionscho ParametricPlotcần 3-4 đối số. Hai đầu tiên tương ứng với tọa độ của âm mưu, hai (hoặc một) cuối cùng với các tham số của ParametricPlot.
Để đánh giá tốt hơn điều này, hãy xem xét ví dụ sau:
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, vấn đề là với câu hỏi này là các thế đẳng thế không được vẽ trong các tọa độ cực, chúng được vẽ trong một số tọa độ đặc biệt tương tự như tọa độ cực (hãy xem đối số đầu tiên trong ParametricPlot, "ParametricPlot [{Sqrt [r ^ 2 + 0,99 ^ 2] * Sin [[Theta]], r Cos [[Theta]]}, ... "). Đó là lý do tại sao cách ParametricPlot được sử dụng thay vì ContourPlot, nó cho phép bạn sử dụng các tọa độ do người dùng xác định mà không được tích hợp sẵn trong Mathematica. Với tọa độ cực, bạn có thể thực hiện chuyển đổi sang tọa độ Cartesian "Polar" -> "Descartes", vì chúng được tích hợp sẵn trong Mathematica, nhưng không phải với tọa độ do người dùng xác định, đây là trường hợp của câu hỏi này. Tôi không chắc, nếu ContourPlot hỗ trợ tọa độ do người dùng xác định