Gráficas de curvas y superficies en 3D con Gnuplot

Gnuplot es un robusto programa para hacer todo tipo de gráficas, entre otras cosas. Es software libre, lo podemos bajar de internet e instalarlo sin ningún problema. Lo que nos interesa en esta ocasión es utilizarlo para graficar curvas y superficies en el espacio tridimensional.

Toda la información está en el sitio web de Gnuplot, de donde podemos bajar el programa para diferentes sistemas operativos. La versión para Windows la podemos obtener de sourceforge, haciendo click donde dice Download gp460-win32-setup.exe (9.9 MB)

En este tutorial utilizaremos la versión para Windows, dado que es el sistema operativo instalado en la mayoría de computadoras. Sin embargo las instrucciones son válidas para otros sistemas.

Después de bajar e instalar el programa (las opciones por default funcionan bien) vamos al menú principal y abrimos Gnuplot. Lo que nos sale en pantalla es lo que llamaremos la ventana principal, como se muestra en la figura de abajo.

Ventana principal

Aquí es donde escribiremos las instrucciones que generan las gráficas que nos interesen.

Curvas en 3D

Para graficar curvas en 3D necesitamos decirle a Gnuplot que vamos a utilizar ecuaciones en forma paramétrica. Esto lo hacemos escribiendo

set parametric

en la línea de comandos de la ventana principal y presionamos la tecla “Enter”. Esa es la forma en la que Gnuplot procesa las instrucciones que le damos. Cada vez que presionamos “Enter” nos sale una línea nueva en la ventana principal.

Tomemos como ejemplo la ecuación de la espiral a lo largo del eje z

\displaystyle \vec{r}(t) = \langle \cos t, \sin t, t \rangle.

Para graficar esta función, en la ventana principal escribimos

splot cos(u),sin(u),u

Es crucial utilizar como parámetro de la curva la variable “u”. De lo contrario Gnuplot no procesara apropiadamente el comando que escribimos. El resultado lo vemos en una ventana diferente, tal como se muestra en la figura

Podemos cambiar la orientación de la figura presionando el botón izquierdo del mouse y moviendo el cursor sobre la gráfica. Esto hará que podamos ver la figura desde el ángulo que queramos.

Para que la espiral dé más vueltas, necesitamos modificar el rango de la variable “u”. Por default, el intervalo es de -10 a 10. Esto lo podemos ver escribiendo en la ventana principal

show urange

Para modificar el intervalo, digamos de 0 a 10 pi, escribimos.

set urange [0:10*pi]

y redibujamos la gráfica, lo cual lo podemos hacer ya sea escribiendo de nuevo el comando “splot cos(u),sin(u),u” o haciendo click en el botón que dice replot, localizado en la ventana principal arriba a la izquierda. El resultado es

Notamos que la curva tiene pequeños quiebres, que no es del todo suave. Eso se debe al numero de puntos que Gnuplot utiliza para dibujar la curva. Para que se vea totalmente suave tenemos que incrementar ese número de puntos. Por default, Gnuplot utiliza 100 puntos a lo largo de la curva, lo cual podemos verificar escribiendo

show samples

Usemos ahora 200 puntos para graficar la espiral. Escribimos entonces

set samples 200

Click en “replot” y ahora vemos que la espiral es una curva más suave que la anterior.

Superficies

Para graficar superficies nos tenemos que salir del modo para ecuaciones paramétricas. Lo más fácil es cerrar Gnuplot y volverlo a abrir. Una vez que hayamos arrancado el programa de nuevo tomemos como ejemplo la gráfica de la función

\displaystyle f(x,y)=x^2-y^2.

Nos vamos a la ventana principal en Gnuplot y escribimos

splot x**2-y**2

Noten que en Gnuplot el símbolo para elevar a una potencia es el doble asterisco. Una vez graficada la superficie la podemos rotar y verla desde diferentes ángulos, tal como lo hicimos con las curvas en 3D. Una de las posibles vistas se muestra en la gráfica siguiente

Opciones utiles

Quitar la transparencia de la gráfica. Al rotar la figura notamos que la superficie es transparente. Para hacer que no lo sea escribimos en la ventana principal

set hidden

y hacemos click en el botón de “replot”. El resultado se ve así

Al rotar de nuevo la figura vemos que lo que queda en el primer plano oculta lo que queda detrás.

Intevalo de “x” e “y”. El intervalo para cada variable lo podemos modificar utilizando el comando “set xrange” y “set yrange”. En la ventana principal escribimos

set xrange [-5:5]
set yrange [-1:1]

con el cuidado de presionar la tecla “Enter” después de cada línea. Noten que para ver el efecto de los cambios siempre hay que dibujar de nuevo la gráfica, ya sea mediante el comando “splot x**2-y**2” o haciendo click en el botón de “replot”. Gnuplot almacena las instrucciones que le hemos dado, si no queremos escribirlas de nuevo, podemos usar las fechas “arriba” y “abajo” del cursor para ver el historial de instrucciones.

No es necesario utilizar ambos “xrange” y “yrange”, basta con escribir únicamente el rango de la variable que queremos modificar.

Resolución de la gráfica. En algunos casos puede que necesitemos agregar más resolución a la superficie para apreciar todos sus detalles. Esto lo hacemos con la opción “isosamples”. Por default, el programa usa 10 curvas tanto en “x” como “y” para representar la superficie. Para cambiar ese número escribimos

set isosamples 20,20

El resultado es un incremento en la cantidad de curvas que representan la superficie

Curvas de nivel

Gnuplot también puede graficar curvas de nivel. Para activarlas escribimos en la ventana principal

set contours

seguido de “splot” con la función que queremos graficar, o si ya la habíamos graficado, click en “replot”. Eso nos mostrará algunas curvas de nivel.

Si queremos cambiar el número de curvas de nivel mostradas, lo hacemos fijando la opción “cntrparam”. Por ejemplo, si queremos unas 10 curvas de nivel, escribimos

set cntrparam levels 10

y redibujamos la figura, click en “replot”.

Veamos otro ejemplo. Utilicemos Gnuplot para generar la gráfica de

\displaystyle f(x,y) = \sin x + \cos y.

Ahora escribimos en la ventana principal la instrucción

splot sin(x)+cos(y)

El resultado será una gráfica como esta

Notamos que la gráfica se vería mejor si la superficie tuviera más resolución, es decir, si utilizamos más curvas para representarla. Ahora ya sabemos qué tenemos que escribir en la ventana principal. Podemos aumentar el número de isosamples, digamos a 40

set isosamples 40,40

y de nuevo, click en “replot”. Ahora nuestra gráfica con todo y curvas de nivel se verá así

La sugerencia de aquí en adelante es probar todo lo anterior con otras funciones. Si las cosas no salen a la primera, no se decepcionen, es normal. Lo importante es seguir intentando hasta que las cosas funcionen. Los menús en las ventanas de Gnuplot tienen muchas más opciones que aquí no mencionamos y que agregan más características a las gráficas. Si hay algo que no saben o no encuentran cómo hacer, recuerden buscar en la ayuda o en el mismo Google.

Anuncios
Esta entrada fue publicada en Matemática, Uncategorized y etiquetada , . Guarda el enlace permanente.

4 respuestas a Gráficas de curvas y superficies en 3D con Gnuplot

  1. Eli dijo:

    Gracias 😉

  2. abrica dijo:

    Mil gracias, me ha sido de gran ayuda. Una pregunta: ¿como graficar en 3d, curvas en planos paralelos? el resultado que deseo es ver en cada plano, la curva dado desde un archivo de datos.
    Gracias

  3. Fremencl dijo:

    Te pasaste, muchas gracias desde Chile!!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s