Réponse courte: par défaut traçage de précision n'est pas suffisante pour que la fonction, afin de l'augmenter comme suit
Plot[Sin[x], {x, -42 Pi, 42 Pi}, PlotPoints -> 100]
Réponse longue: Plot
des œuvres de l'évaluation de la fonction en un ensemble fini de points, et en reliant ces points par des segments de droite. Vous pouvez voir les points utilisés par Plot
à l'aide de la commande suivante
Plot[Sin[x], {x, -42 Pi, 42 Pi}, Mesh -> All, PlotStyle -> None,
MeshStyle -> Black]
Vous pouvez voir que pour votre fonction, les points où la fonction a été évaluée "raté le pic" et introduit une grande erreur d'approximation. L'algorithme utilisé pour choisir les emplacements des points est très simple et cette situation peut se produire lorsque les deux pics sont espacés de plus étroitement que PlotRange/PlotPoints.
Plot
commence avec 50 points également espacés, puis y insère des points supplémentaires en MaxRecursion
étapes. Vous pouvez voir comment ce "trou" s'affiche si vous intrigue de la région pour les divers paramètres de l' MaxRecursion
.
plot1 = Plot[Sin[x], {x, -42 Pi, 42 Pi}, PlotPoints -> 100,
PlotStyle -> LightGray];
Table[plot2 =
Plot[Sin[x], {x, -42 Pi, 42 Pi}, Mesh -> All, MeshStyle -> Thick,
PlotStyle -> Red, MaxRecursion -> k];
Show[plot1, plot2, PlotRange -> {{-110, -90}, {-1, 1}},
PlotLabel -> ("MaxRecursion " <> ToString[k])], {k, 0,
5}] // GraphicsColumn
Selon Stan Wagon Mathematica livre, Plot
décide d'ajouter un point supplémentaire à mi-chemin entre deux points consécutifs si l'angle entre les deux nouveaux segments de ligne serait de plus de 5 degrés. Dans ce cas, la parcelle ai pas de chance avec les point initial de positionnement et de subdivision ne satisfont pas à ce critère. Vous pouvez voir que l'insertion d'une évaluation unique point dans le centre du trou de produire presque identique à la recherche de la parcelle.
La façon d'augmenter l'angle utilisé pour décider du moment de la subdiviser en utilisant Refinement
option (je l'ai eu à partir du livre, mais il ne semble pas être documentée dans le produit)
plot1 = Plot[Sin[x], {x, -42 Pi, 42 Pi}, PlotPoints -> 100,
PlotStyle -> LightGray];
Show[plot1,
Plot[Sin[x], {x, -42 Pi, 42 Pi}, Mesh -> All, MeshStyle -> Thick,
PlotStyle -> Red, MaxRecursion -> 3,
Method -> {Refinement -> {ControlValue -> 4 \[Degree]}}],
PlotRange -> {{-110, -90}, {-1, 1}}]
Ici, vous pouvez voir que de l'augmenter de 1 degré de défaut 5 fixe le trou.