이 플롯이 연속적인지 아닌지 확인하기 위해 정확한 플롯을 어떻게 가질 수 있습니까?
이 3 변수 함수가 있습니다.
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]);
ContourPlot3D를 다음과 같이 사용합니다.
ContourPlot3D[f == 0, {x, 1.1, 1.21}, {y, 2, 2.2}, {z, 0.8, 1.2}]
그리고 결과를 얻습니다 (플롯의 다른 방향을 첨부했습니다)
여기에 그 사이에 빈 부분이 있습니다. 나는이 두 장이 서로 닿거나 피할 것이라고 확신합니다. 따라서이 빈 부분 (정말 비어 있다면!)은 사실이 아니어야합니다. 연속적인지 (서로 만나는 지) 확인하기 위해 더 정확한 결과 (플롯)를 얻으려면 어떻게해야합니까?
답변
예, 시트가 결합되는 중요한 지점이 있습니다.
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 *)
플롯의 중간에 임계점을 배치합니다 (및에 대해 홀수 사용 PlotPoints
, 기본값 = 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]
토론. 등고선 플로팅은 등고선 표면이 메쉬 요소를 통과하는시기를 결정하기 위해 이산 샘플링 및 중간 값 정리를 적용하여 수행됩니다. 표면을 근사화하는 상당히 거친 방법입니다. 표면의 단일 시트가 메쉬 요소를 통과 할 때 가장 잘 수행됩니다. 시트가 교차하거나 닿을 때 무슨 일이 일어나고 있는지 추론하기 어려울 때가 있습니다. 일반적인 접근 방식에는 증가 PlotPoints
(기본값 15) 또는 MaxRecursion
(기본값 2)가 포함됩니다. 이러한 접근 방식은 더 미세한 메쉬와 더 작은 구멍으로 이어집니다. 때때로 그들은 문제를 완전히 해결합니다. 위에서 우리는 표면에 대한 구체적인 지식을 적용 할 수있었습니다. 두 가지 중요한 점이 있었다면 위의 작업을 수행 할 수 없었을 것입니다.