viernes, octubre 12, 2007

Graficando con octave y gnuplot

Si hay que visualizar una gráfica a partir de su función, lo que tal vez se intente es abrir una hoja de cálculo, poner números seguidos (que representan a los valores de x), y en la celda contigua poner una formúla que calcule el valor de cada punto x para generar los datos de la función.

Después tal vez, al asistente de gráficos, pedir una gráfica xy dispersión, seleccionar los valores y listo, ya está la gráfica.

Pero es mucho más simple si está instalado octave y gnuplot.

El programa octave es una aplicación orientada a cálculo numérico, muy parecido a Matlab, mientras que gnuplot es una aplicación cuyo único propósito en la vida es graficar; y octave se ayuda de éste para desplegar los datos de manera visual.

Para poder hacer gráficas de funciones con estas dos herramientas se realiza lo siguiente

Se invoca octave
>$ octave
que genera su propio prompt de ejecución, donde se escriben los comandos para octave.

Teniendo ya el prompt de octave, se define los datos de x, y por supuesto, los datos de f(x).

octave> x = -0.99:0.1:5

Esto genera un vector de datos que comienza en -0.99 y que va de 0.1 en 0.1 hasta 5

ocvave> y=(log((x+1)/e)).^2

Y lo anterior genera los datos de y, que es el cuadrado del logaritmo natural de la división de x más uno entre el valor del número e.

Para calcular el cuadrado de cada uno de los elementos de un vector, hay que anteponer un punto antes del circunflejo, o marcará error. No va presedido de punto si la variable contiene solo un escalar.

Y para graficar simplemente

octave> plot(x,y)

que genera una gráfica de dos dimensiones con los valores de x y de f(x).

Etiquetas:

9 Comentarios:

Anonymous Anónimo dijo...

y si tengo los datos en un archivo?

11:37 a.m.  
Blogger César dijo...

Saludos, se pueden cargar los datos de un archivo, si estos están en alguna forma simple, de igual forma que lo se hace en Matlab, (solo que no recuerdo como se abre un archivo, en cuanto sepa, lo publico).

Y lo que se hace, es guardar los datos en un arreglo de una dimensión, o de dos dimensiones.

He gráficado imágenes como si fueran datos de relieve en 3D. Creo que esa entrada la publiqué ya.

Debe ser el mismo caso para un archivo ascii, solo cambiando la instrucción para abrir el archivo.

9:45 p.m.  
Blogger Bones dijo...

Una gran pregunta: como puedo graficar...?
y=1/sqrt(abs(x-1))
me marca error.....

5:34 p.m.  
Anonymous Anónimo dijo...

@Bones: Tienes que usar "plot 1/sqrt(abs(x-1))"

6:18 a.m.  
Anonymous Anónimo dijo...

Bueno soy muy nuevo en esto, y me preguno como puedo graficar una funcion simple como x**2

10:26 a.m.  
Blogger César dijo...

Saludos

Para graficar x**2, se procede de la siguiente forma:
octave> x=[-2:0.1:2]; # crea el vector x de -2 a 2 en intervalos de 0.1
octave> y=x.**2; # crea el vector y con los cuadrados de los elementos de x
octave> plot(x,y) # solo grafica "X" vs "Y"

1:03 p.m.  
Blogger Unknown dijo...

tengo la funcion 3x+5x-22=0 despejando keda y=(22-3x)/5, para graficar uso:
1>x=[-10:.1:10];
2>y=22-3x./5
3>plot(x,y)
pero me marca error en : 2> y=22-3x./5
^
DONDE ESTA LA ^, ES DECIR EN EL 3 Y ASI ME PASA CON TODO A QUE SE DEBE??? (lo podria poner asi y=22-(x+x+x)./5 pero creo k no es lo idoneo).

5:48 p.m.  
Blogger Unknown dijo...

a ya esk le ponia 3x en ves de 3*x jejej la costumbre

6:32 p.m.  
Anonymous Roberto A. dijo...

como puedo graficar la señal pulso unitario x(t) = e-5tu[t+2]-e5tu[-+2];
lo he intentado pero no he podido lograrlo; sucede que no domino el software. muchas gracias

5:29 p.m.  

Publicar un comentario

Suscribirse a Comentarios de la entrada [Atom]

<< Página Principal