Respuesta corta: default trazado de precisión no es suficiente para esa función, por lo que aumenta la siguiente manera
Plot[Sin[x], {x, -42 Pi, 42 Pi}, PlotPoints -> 100]
Respuesta larga: Plot
obras de la evaluación de la función en un conjunto finito de puntos, y la conexión de los puntos de lineas rectas. Se puede ver los puntos utilizados por Plot
con el siguiente comando
Plot[Sin[x], {x, -42 Pi, 42 Pi}, Mesh -> All, PlotStyle -> None,
MeshStyle -> Black]
Se puede ver que para su función, los puntos en los que se evaluó la función "se perdió el pico" e introdujeron un gran error de aproximación El algoritmo utilizado para elegir ubicaciones de puntos es muy simple y esta situación puede ocurrir cuando dos picos están espaciados más estrechamente que PlotRange/PlotPoints.
Plot
comienza con 50 puntos igualmente espaciados y luego inserta puntos extra en hasta MaxRecursion
etapas. Puede ver cómo aparece este "agujero" si traza la región para varias configuraciones de 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
Según el libro Mathematica de Stan carro, Plot
decide si desea añadir un punto intermedio adicional entre dos puntos consecutivos si el ángulo entre dos nuevos segmentos de línea sería más de 5 grados . En este caso, la trama no tuvo suerte con el posicionamiento inicial del punto y la subdivisión no cumple ese criterio. Puede ver que al insertar un único punto de evaluación en el centro del orificio se obtendrá un plano de aspecto casi idéntico.
La manera de aumentar el ángulo utilizado para decidir cuándo subdividir utilizando Refinement
opción (Me lo dio el libro, pero no parece ser documentados en el producto)
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}}]
Aquí se puede ver que aumentarlo en 1 grado desde el valor predeterminado 5 soluciona el agujero.
Parece un simple aliasing para mí. ¿Realmente crees que Mathematica tendría un error en algo tan fundamental como esto? –
No, es por eso que estaba tan sorprendido. Si fuera un aliasing, ¿no tendrían tendencia a aparecer más si el intervalo se hiciera más grande? Si cambio xmin, xmax por -60 Pi/60 Pi, por ejemplo, desaparece. – houbysoft
@houbysoft No tengo Mathematica, de hecho no sé nada al respecto, pero sugiero que intente variar los valores de la opción PlotPoints –