이 함수에 대한 RegionPlot 결과의 정밀도를 높이려면 어떻게해야합니까?
이 기능이 있습니다
f := 1024 (1 - (9 x^2)/4)^2 Cosh[(π x)/
3]^2 Sinh[π x]^2 (8 (16 - 216 x^2 +
81 x^4 + (4 + 9 x^2)^2 Cosh[(2 π x)/3]) Sinh[π x]^2 -
1/256 ((4 + 9 x^2)^2 Sinh[x (2 π - y)] +
2 (64 - 144 x^2 + (4 + 9 x^2)^2 Cosh[(2 π x)/3]) Sinh[
x y] - 9 (4 - 3 x^2)^2 Sinh[x (2 π + y)])^2);
어떤 범위의 변수에서이 함수가 음수인지보고 싶습니다. RegionPlot 사용
RegionPlot[ f < 0, {y, 2, 2.25}, {x, 1.15, 1.17},
WorkingPrecision -> 30, PlotPoints -> 50]
이 줄거리를 얻습니다
그런 다음 범위를 다음과 같이 줄이면
RegionPlot[
f < 0, {y, Rationalize[2.1299849, 0], Rationalize[2.1299855, 0]}, {x,
Rationalize[1.15970110, 0], Rationalize[1.15970113, 0]},
WorkingPrecision -> 90, PlotPoints -> 150]
나는 얻는다
여기에서는 파란색 부분이 접촉하는지 여부가 명확하지 않습니다. 파란색 부분이 연속적인지 여부를 자세히 알아 보려면 어떻게해야합니까?
답변
3 MichaelE2
가장 간단한 플로팅 솔루션
ContourPlot[f,
{y, Rationalize[2.1299849, 0], Rationalize[2.1299855, 0]},
{x, Rationalize[1.15970110, 0], Rationalize[1.15970113, 0]},
ContourShading ->
{RGBColor[0.368417, 0.506779, 0.709798, 0.4], None},
Contours -> {{0}},
PlotPoints -> 25, WorkingPrecision -> 32,
Method -> {"TransparentPolygonMesh" -> True}
]
그러나 플롯이 항상 그다지 설득력있는 것은 아니며, 무슨 일이 일어나고 있는지 대략적인 아이디어 만 제공하도록 설계되었습니다.
분석 솔루션
비슷한 질문에 대한이 답변 에서 보여 주었 듯이 , 우리는 노드가 있다는 것을 분석적으로 보여줄 수 있습니다.
jac = D[f, {{x, y}}];
cpsol = FindRoot[jac == {0, 0}, {{x, 1.15}, {y, 2.13}},
WorkingPrecision -> 50];
cpt = {x, y} /. cpsol
f /. cpsol (* shows cpt is on curve *)
f /. N[cpsol] (* show numerical noise at cpt is substantial *)
(* {1.1597011139328870007473930523093558428367204499142, 2.1299852028277681162523681416937176426970454505325} 0.*10^-36 0.0119859 *)
길들이기 RegionPlot
RegionPlot
Region
기능 이 도입 된 이후로 발전해 왔습니다 . RegionPlot
이 기능을 사용하여 플롯을 생성하는 것으로 보이며 WorkingPrecision
수치 노이즈에서 분명한 옵션을 무시합니다 . 지역 기능은 기계 정밀도에서만 사용할 수있는 FEM 기능을 기반으로합니다. (마찬가지로 옵션 MaxRecursion
이 없어 보입니다.)
다음은 작업 정밀도를 제어하는 방법입니다.
ClearAll[fff];
fff[x0_Real, y0_Real] :=
Block[{x = SetPrecision[x0, Infinity],
y = SetPrecision[y0, Infinity]},
N[
1024 (1 - (9 x^2)/4)^2 Cosh[(π x)/
3]^2 Sinh[π x]^2 (8 (16 - 216 x^2 +
81 x^4 + (4 + 9 x^2)^2 Cosh[(2 π x)/
3]) Sinh[π x]^2 -
1/256 ((4 + 9 x^2)^2 Sinh[x (2 π - y)] +
2 (64 - 144 x^2 + (4 + 9 x^2)^2 Cosh[(2 π x)/3]) Sinh[
x y] - 9 (4 - 3 x^2)^2 Sinh[x (2 π + y)])^2),
$MachinePrecision]
];
RegionPlot[
fff[x, y] < 0,
{y, Rationalize[2.1299849, 0], Rationalize[2.1299855, 0]},
{x, Rationalize[1.15970110, 0], Rationalize[1.15970113, 0]},
PlotPoints -> 100]
그러나 하나의 제비는 여름을 만들지 않습니다.
2 Hausdorff
두 지역이 만나는 지 여부에 관심 ContourPlot
이 있으므로 좀 더 안정적인 것처럼 보이는을 사용할 수도 있습니다 .
ContourPlot[f == 0, {y, 2.1299849, 2.1299855}, {x, 1.15970110, 1.15970113},
WorkingPrecision -> 40, MaxRecursion -> 6]