Bagaimana saya bisa memiliki plot yang akurat untuk memastikan bahwa plot ini berkelanjutan atau tidak?

Aug 17 2020

Saya memiliki fungsi 3-variabel ini

f := 16 ((-1 + (9 x^2)/4) Cos[z] Cosh[(π x)/3] + 
      3 x Sin[z] Sinh[(π x)/3]) Sinh[π x] + 
   8 (-1 + (9 x^2)/4) Sinh[x y] + (-3 + (9 x^2)/4)^2 Sinh[
     x (2 π + y)] - (1 + (9 x^2)/
      4)^2 (2 Cosh[(2 π x)/3] Sinh[x y] + Sinh[2 π x - x y]);

Saya menggunakan ContourPlot3D sebagai

ContourPlot3D[f == 0, {x, 1.1, 1.21}, {y, 2, 2.2}, {z, 0.8, 1.2}]

dan saya mendapatkan hasilnya (saya telah melampirkan berbagai orientasi plot)

Di sini, saya melihat bagian kosong di antaranya. Saya yakin kedua lembar ini saling bersentuhan atau menghindari satu sama lain. Jadi, bagian kosong ini (jika benar-benar kosong!) Seharusnya tidak benar. Bagaimana saya bisa mendapatkan hasil (plot) yang lebih akurat untuk memastikan bahwa mereka berkelanjutan (saling bertemu) atau tidak?

Jawaban

11 MichaelE2 Aug 17 2020 at 02:56

Ya, ada titik kritis di mana lembaran bergabung:

jac = D[f, {{x, y, z}}];

FindRoot[jac == {0, 0, 0}, {{x, 1.1}, {y, 2.1}, {z, 1}}];
cpt = {x, y, z} /. %
f /. %%
(*
  {1.1597, 2.12999, 0.963489}
  0.                           <-- on the surface  f == 0
*)

Letakkan titik kritis di tengah plot (dan gunakan angka ganjil PlotPoints, default = 15).

cplot = ContourPlot3D[
  ff == 0,
  {x, cpt[[1]] - 0.1, cpt[[1]] + 0.1},
  {y, cpt[[2]] - 0.3, cpt[[2]] + 0.3},
  {z, cpt[[3]] - 0.6, cpt[[3]] + 0.6}, 
  AxesLabel -> Automatic]

Diskusi. Pembuatan plot kontur dilakukan melalui pengambilan sampel diskrit dan penerapan teorema nilai tengah untuk menentukan kapan permukaan kontur melewati elemen mesh. Ini cara yang cukup kasar untuk memperkirakan suatu permukaan. Ini berkinerja terbaik ketika satu lembar permukaan melewati elemen mesh. Saat lembaran berpotongan atau bersentuhan, terkadang sulit untuk menyimpulkan apa yang sedang terjadi. Pendekatan tipikal mencakup peningkatan PlotPoints(nilai default 15) atau MaxRecursion(nilai default 2). Pendekatan ini menghasilkan jaring yang lebih halus dan lubang yang lebih kecil. Terkadang mereka menyelesaikan masalah sepenuhnya. Di atas kami dapat menerapkan pengetahuan khusus tentang permukaan. Seandainya ada dua titik kritis seperti itu, kami mungkin tidak dapat membuat cara di atas berhasil.