Graficador de funciones matemáticas gnuplot

En el artículo anterior consideré el uso de kmplot como un trazador de funciones matemáticas muy intuitivo y que me permitía obtener los resultados esperados para la graficación de curvas paramétricas en el plano. Sin embargo, no grafica en 3D. Lo que me hizo descartar inicialmente gnuplot es que no lograba graficar curvas complejas como:

    x = 1.5.cos(t)-cos(30t)
    y = 1.5.sin(t)-sin(30t)

mientras que kmplot si lo hacia. El resultado era éste:

gnuplot

pero con maxima, que usa gnuplot para sus gráficos, se obtenía esto:

gnuplot2

que es el resultado esperado. Usar gnuplot directamente y no maxima estriba en que el primero permite una automatización de procesos mediante scripts en texto plano, al estilo python, mientras que maxima es un poco más dificil de programar. Después de probar con los nticks de maxima, me di cuenta que tenía que encontrar su equivalente en gnuplot para resolver el problema. Luego de investigar un poco, la solución estaba en set samples. Este pequeño script (grabado como parametrica):

#!/usr/bin/gnuplot

set terminal wxt persist
set parametric

#definicion de funciones parametricas
fx(t)=1.5*cos(t)-cos(30*t)
fy(t)=1.5*sin(t)-sin(30*t)

#rango de t
set trange [-pi:pi]

set samples 2000
set xtics 1
set ytics 1

#grafico de funcion
plot fx(t),fy(t)

y ejecutado en cónsola con gnuplot parametrica provocó el resultado deseado:

gnuplot3

Ahora solo resta usar el script como plantilla para ir mejorando las salidas al consultar los diferentes manuales de gnuplot. Por ejemplo, la curva paramétrica considerada en el artículo anterior se ejecuta con:

#!/usr/bin/gnuplot

set terminal wxt persist
set parametric

#definicion de funciones parametricas
fx(t)=cos(t)**2
fy(t)=1-sin(t)

#rango de t
set trange [0:pi/2]

set samples 2000

set title 'Curva parámetrica de y = 1 - sqrt(1-x) para 0<x<1'
set xlabel 'cos(t)**2'
set ylabel '1-sin(t)'

#grafico de funcion
plot fx(t),fy(t)

donde ya le he puesto título al gráfico y nombre a los ejes:

gnuplot4

Para finalizar un compendio de las funciones matemáticas soportadas en gnuplot:

gnuplot

Esta entrada fue publicada en Software Libre y etiquetada , . Guarda el enlace permanente.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

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