wolfram mathematica - tutorial - Gráfico Strange Sin[x] en Mathematica
wolfram mathematica online (1)
Respuesta corta: la precisión de trazado predeterminada no es suficiente para esa función, por lo tanto, increméntela de la siguiente manera
Plot[Sin[x], {x, -42 Pi, 42 Pi}, PlotPoints -> 100]
Respuesta larga: el Plot
funciona evaluando la función en un conjunto finito de puntos y conectando esos puntos con líneas rectas. Puedes ver los puntos usados por Plot
usando el siguiente comando
Plot[Sin[x], {x, -42 Pi, 42 Pi}, Mesh -> All, PlotStyle -> None,
MeshStyle -> Black]
Puede ver que, para su función, los puntos donde se evaluó la función "perdieron 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 equiespaciados y luego inserta puntos extra en las etapas de MaxRecursion
. 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 de Mathematica de Stan Wagon, Plot
decide si agregar un punto extra a medio camino 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 forma de aumentar el ángulo utilizado para decidir cuándo subdividir utilizando la opción Refinement
(lo obtuve del libro, pero no parece estar documentado 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í puede ver que aumentarlo en 1 grado desde el valor predeterminado 5 soluciona el agujero.
Alineé aleatoriamente una función Sin [x] en Mathematica 7 y esto es lo que muestra:
Tenga en cuenta el defecto visible a aproximadamente x = -100
.
Aquí hay un zoom de la parte del defecto, que muestra claramente que Mathematica por alguna razón usa una resolución mucho menor entre los puntos allí:
¿Alguien sabe por qué sucede esto y por qué solo en x = -100
?
Nota: lo mismo sucede en Wolfram Alpha , por cierto.