Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
98 views
ubuntu2004
Kernel: Octave

Trazo de Gráficas con Octave

Dr. Juliho Castillo Colmenares

En Octave, existen muchas forma de graficar en dos dimensiones. Aquí explicaremos la más sencilla:

  • Creamos un vector xx con los valores que evaluaremos sobre un intervalo dado.

  • Creamos un vector yy que son los valores evaluados en f(x)f(x).

  • Tabulamos los puntos (x,y)(x,y).

Ejemplo

Comenzaremos graficando sin(x)sin(x) en el intervalo [0,2π][0,2\pi]. Primero, vamos a crea un vector con los valores de xx

x = linspace(0,2*pi,50);

El comando linspace(a,b,n) crea un vector renglón de nn valores equiespaciados, comenzando en aa y terminando en bb.

Entre más valores agreguemos, la curva será más suave.

Ahora creamos el correspondiente vector yy:

y = sin(x);

Finalmente, para graficar la función, utilizamos el comando plot(x,y):

plot(x,y)
Image in a Jupyter notebook

Como puedes observar, la gráfica no es muy detallada. Por ejemplo, el eje xx llega más allá de 2π2\pi.

Podemos modificar nuestra gráfica a través de los parámetros del comando plot o agregando nuevos comandos.

Por ejemplo, podemos usar axis([xmin, xmax, ymin, ymax]) para ajustar la ventana:

plot(x,y) axis([0, 2*pi, -1, 1])
Image in a Jupyter notebook

Podemos realizar muchos más ajustes, por ejemplos cambiar el estilo de línea o el color:

plot(x,y,'r', 'linewidth', 10) % cambiamos el color a rojo ('r') y el ancho de línea a 10 grid on % activamos la cuadrícula xlabel("mi eje x") % le ponemos una etiqueta al eje x ylabel("mi eje y") % le ponemos una etiqueta al eje y title("mi primera gráfica") % le damos un título a la gráfica legend("y = sin(x)") % describimos la curva
ans = -7.7682
Image in a Jupyter notebook

Existen muchas otras maneras de personalizar la gráfica. Consulta https://octave.org/doc/v5.2.0/Two_002dDimensional-Plots.html.

Ahora intentaremos con puntos. El procedimiento es el mismo, pero usaremos marcadores tales como "o", "+" o bien \ast.

Ejemplo

Trazaremos el conjuntos de puntos {(1,1),(2,2),(3,5),(4,4)}\{(1,1), (2,2), (3,5), (4,4)\} usando círculos, y añadimos una regresión lineal.

clear; % removemos los nombres de las variables clf; % limpiamos las gráficas x = [1, 2, 3, 4]; % capturamos las coordenadas x y = [1, 2, 5, 4]; % capturamos las coordenadas y plot(x,y,'o') hold on plot(x, 1.2*x)
Image in a Jupyter notebook

De manera alternativa, podemos crear varias gráficas con una única instancia del comando plot:

clear; clf; x = [1, 2, 3, 4]; y1 = [1, 2, 5, 4]; y2 = 1.2*x; plot(x, y1, 'o', x, y2) axis([0,5,0,6]); grid on; legend('datos', 'regresión lineal');
Image in a Jupyter notebook
¡Importante!

Cuando creamos un vector xx, Octave lo sigue tratando como una matriz. Por ejemplo, el siguiente código generará un error, porque Octave tratará x^2 como una multiplicación de matrices:

x = linspace(-10,10,100); plot(x, x^2)
error: for x^y, only square matrix arguments are permitted and one argument must be scalar. Use .^ for elementwise power.

Si lo que buscamos graficar es la función f(x)=x2f(x) = x^2, entonces debemos usar la potencia punto a punto .^ que multiplica cada entrada por sí misma:

x = linspace(-10,10,100); plot(x, x.^2)
Image in a Jupyter notebook

Ejercicio

Traza la gráfica de f(x)=x2sin(x)f(x)=x^2sin(x).

x = linspace(-10,10,100); y = x^2*sin(x); plot(x,y)
error: for x^y, only square matrix arguments are permitted and one argument must be scalar. Use .^ for elementwise power. error: 'y' undefined near line 1, column 1

Recuerda que para operar punto a punto debes usar las versiones puntuales de las operaciones, tales como .+, .-, .* o .^.

x = linspace(-10,10,100); y = x.^2.*sin(x); plot(x,y)
Image in a Jupyter notebook

"Opciones"

Para guardar una imagen podemos usar el siguiente código:

x = linspace(-10,10,100); y = x.^2.*sin(x); plot(x,y); print nombre_de_archivo.png -dpng
Image in a Jupyter notebook

Las imágenes también se pueden guardar en formato jpg o eps.