8 8.1. Gráficas Lo básico La gráfica de sen(x) en el intervalo [0, 2π]. Ξ Plot[Sin[x], {x, 0, 2Pi}] Una función con discontinuidades. Ξ Plot[Tan[x], {x, -3, 3}] Las gráficas de varias funciones. Ξ Plot[{Sin[x], Sin[2x], Sin[3x]}, {x, 0, 2Pi}] Para dibujar el grafo de una o varias funciones, Mathematica evalúa la expresión en un cierto número de valores numéricos. Esto tiene la ventaja de mejorar la velocidad de ejecución, pero es inadecuado en ciertas ocasiones. Un caso típico ocurre cuando la expresión contiene alguna orden que debe ser evaluada de forma simbólica antes de comenzar a dibujar. Esto define la función f y la dibuja en el intervalo [0, 10]. Ξ f[x_]:= BesselJ[0, x] Ξ Plot[f[x], {x, 0, 10}] Un intento fallido de dibujar la derivada de f . Ξ Plot[D[f[x],x], {x, 0, 10}] La forma correcta de hacerlo: la derivada de la función f debe ser evaluada antes del cálculo de la expresión para valores particulares de x. Ξ Plot[Evaluate[D[f[x],x]], {x, 0, 10}] Otro caso frecuente es generar la gráfica de una tabla de funciones. Primero ha de generarse la tabla y entonces evaluar las funciones para valores concretos de la variable. Con esto se obtiene un error (la causa es técnica, pero puede descubrirse con un poco de reflexión). Ξ Plot[Table[BesselJ[n, x], {n, 4}], {x, 0, 10}] 33 La orden correcta. La orden Evaluate instruye a Mathematica para que haga primero la tabla de funciones, y sólamente entonces las evalúe para valores particulares de x. Ξ 8.2. Plot[Evaluate[Table[BesselJ[n, x], {n, 4}]], {x, 0, 10}] Modificación del aspecto de las gráficas Cuando Mathematica dibuja una gráfica ha de tomar ciertas decisiones: qué escala usar, dónde situar los ejes, etc. En la mayoría de las ocasiones Mathematica hace buenas elecciones; otras veces, sin embargo es necesario ayudar en la elección para obtener las gráficas más adecuadas. Esta es una gráfica con las opciones por defecto. Ξ Plot[Sin[x^2], {x, 0, 3}] Un marco alrededor de la gráfica. Ξ Plot[Sin[x^2], {x, 0, 3}, Frame->True] Pueden darse varias opciones en la misma orden (el orden en que se dan no importa). Ξ Plot[Sin[x^2], {x, 0, 3}, Frame->True, GridLines->Automatic] La proporción de la gráfica se define por defecto como el inverso de la razón áurea (supuestamente la proporción más bella, según los artistas), pero este comportamiento puede cambiarse si se desea. Ξ Plot[Sin[x^2], {x, 0, 3}, AspectRatio->1] Mathematica siempre intenta escalar los ejes de forma que se muestre la parte interesante de la gráfica, pero también se puede controlar la ventana a mostrar Ξ 8.3. Plot[Sin[x^2], {x, 0, 3}, PlotRange->{0, 1.2}] Combinación de gráficas En Mathematica las gráficas son como cualquier otro objeto. Una gráfica que se asigna a una variable. Ξ gpc = Plot[ChebychevT[7,x], {x, -1, 1}] Mostrar la gráfica de nuevo. Ξ Show[gpc] 34 Con la orden Show se pueden cambiar las opciones de una gráfica. Ξ Show[gpc, PlotRange->{-2,2}] La orden Show sirve también para combinar de forma adecuada varias gráficas (no importa la escala original). Una gráfica muy elegante. Ξ gJ = Plot[BesselJ[0, x], {x, 0, 10}, PlotStyle -> RGBColor[1,0,0]] Y otra más. Ξ gY = Plot[BesselY[1, x], {x, 1, 10}, PlotStyle -> RGBColor[0.5,1,0]] Las dos gráficas juntas. Ξ gJY = Show[gJ, gY] Y ahora las tres a la vez, pero por separado. Ξ 8.4. Show[GraphicsArray[{gJ, gY, gJY}], Frame->True] Dibujando datos Una tabla de datos. Ξ t = Table[Sin[x^2], {x, 0.0, 2.0, 0.1}] Dibujo de la tabla de valores. Ξ ListPlot[t] Dibujo con los puntos unidos con segmentos de recta. Ξ ListPlot[t, PlotJoined->True] Una tabla de puntos (pares (x, y)). Ξ tp = Table[{x, Sin[x^2]}, {x, 0.0, 2.0, 0.1}] Dibujo de los puntos (observa la diferencia con la gráfica anterior). Ξ ListPlot[tp, PlotJoined -> True, PlotStyle -> RGBColor[0,0,1]] 35 8.5. Curiosidades Una superficie. Ξ Plot3D[Sin[x y], {x, -5, 5}, {y, -5, 5}, PlotPoints -> 100, Ticks -> None] ¿Qué podría ser esto? Ξ ParametricPlot[{Sin[5t]Cos[2t], Sin[3t]Sin[2t]}, {t, 0, 2Pi}, Ticks -> None, Axes -> None] Una mariposa. Ξ PolarPlot[Exp[Sin[t]] - 2Cos[4t] + Sin[t/12]^5, {t, 0, 24Pi}, PlotPoints -> 200, Ticks -> None] Curvas de nivel para un mapa. Ξ ContourPlot[3 x Exp[y] - x^3 - Exp[3y], {x, -2, 2}, {y, -2, 2}, PlotPoints->60, Contours->{-60, -40, -20, -10, 0, 0.2, 0.4, 0.6, 0.8, 0.9}] Lo que deberías saber sobre gráficas es... ...dibujar gráficas de funciones con la orden Plot; ...modificar el aspecto de las gráficas con el uso de opciones; ...usar la orden Show para redibujar y para combinar gráficas. 36