Come posso avere una trama accurata per assicurarmi che questa trama sia continua o meno?

Aug 17 2020

Ho questa funzione a 3 variabili

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]);

Uso ContourPlot3D come

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

e ottengo il risultato (ho allegato diversi orientamenti della trama)

Qui vedo una parte vuota nel mezzo. Sono sicuro che questi due fogli o si toccano o si evitano. Quindi, questa parte vuota (se è veramente vuota!) Non dovrebbe essere vera. Come posso ottenere un risultato (grafico) più accurato per assicurarmi che siano continui (si incontrano) o no?

Risposte

11 MichaelE2 Aug 17 2020 at 02:56

Sì, c'è un punto critico in cui i fogli si uniscono:

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
*)

Metti il ​​punto critico al centro del grafico (e usa un numero dispari per 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]

Discussione. Il tracciamento del contorno viene eseguito tramite campionamento discreto e l'applicazione del teorema del valore intermedio per determinare quando la superficie del contorno passa attraverso un elemento mesh. È un modo abbastanza approssimativo per approssimare una superficie. Funziona al meglio quando un singolo foglio di una superficie passa attraverso un elemento mesh. Quando i fogli si intersecano o si toccano, a volte è difficile dedurre cosa sta succedendo. Gli approcci tipici includono l'aumento PlotPoints(valore predefinito 15) o MaxRecursion(valore predefinito 2). Questi approcci portano a una maglia più fine e fori più piccoli. A volte risolvono completamente il problema. Sopra siamo stati in grado di applicare conoscenze specifiche sulla superficie. Se ci fossero stati due punti critici di questo tipo, probabilmente non avremmo potuto far funzionare quanto sopra.