Sie sind auf Seite 1von 12

UNIVERSIDAD DE EL SAVADOR ANALISIS NUMERICO - ANN115 M.SC. E ING.

WILBER CALDERON
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA ELECTRICA

Guia de laboratorio # 1
Introduccion a octave

Objetivo general

 Familiarizarse con la sintaxis y entorno de octave.

Objetivos especificos

 Aplicar de forma adecuada funciones para diseño de gráficos.


 Desarrollar habilidades de programación para realizar funciones.

Introduccion

GNU Octave es un lenguaje de alto nivel destinado para el cálculo numérico. Provee una interfaz
sencilla, orientada a la línea de comandos (consola), que permite la resolución de problemas numéricos,
lineales y no lineales, además permite la ejecución de scripts y puede ser usado como lenguaje
orientado al procesamiento por lotes.

El uso de octave como herramienta de trabajo supone una mejora significativa en comparación con los
lenguajes de programación tradicionales, tiene la capacidad de correr en plataformas Linux y Windows,
es un lenguaje pensado para trabajar con matrices y nos ofrece mucha funcionalidad para trabajar con
ellas y al ser licencia GNU General Public License, puede ser utilizado libremente.

GUIA DE LABORATORIO 1: INTRODUCCION A OCTAVE


UNIVERSIDAD DE EL SAVADOR ANALISIS NUMERICO - ANN115 M.SC. E ING. WILBER CALDERON
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA ELECTRICA

Vector
En Octave los vectores se pueden crear introduciendo una lista de valores separados por espacios o
comas y encerrados entre corchetes.

Los vectores pueden cambiar de orientación con el operador (') de horizontal a vertical y viceversa.

x = [1,2,3,4,5] %disponiendo los datos de una manera horizontal


(para esto se puede utilizar comas o espacios como separador)

y = [1;2;3;4;5] %disponiendo los datos de una manera vertical (para


esto se utiliza punto y coma como separador)

z = [1:5] %de esta manera se crea un vector horizontal con


inicio 1 y final 5 con intervalo de 1 también conocido como rango

x'

y'

un vector también se puede hacer con espaciados diferentes de la siguiente manera.

v = [1:0.5:5] % significando los términos lo siguiente [límite


inferior: espaciado: límite superior]

w = linspace(1,5,9) % significado de los términos de la función (límite


inferior, límite superior, cantidad de elementos-1)

Matrices
A simple vista de una matriz podemos observar que es un arreglo de filas y columnas, debido a eso
la sintaxis para poder llenar una matriz de manera que separaremos varios vectores filas
horizontales por punto y comas de la siguiente manera.

En el caso de las matrices estas también pueden ser transpuestas con el mismo operador que en los
vectores (').

a = [7,8,9;4,5,6;1,2,3] %ordenando los datos en una matriz similar a un


teclado matricial numérico

a' %cambiando así filas por columnas y viceversa

GUIA DE LABORATORIO 1: INTRODUCCION A OCTAVE


UNIVERSIDAD DE EL SAVADOR ANALISIS NUMERICO - ANN115 M.SC. E ING. WILBER CALDERON
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA ELECTRICA

Estos elementos pueden ser operados entre ellos tomando en cuenta las limitaciones matemáticos
con los siguientes operadores:

(+) suma (^) potenciación


(-) resta (.*) producto elemento por elemento
(*) multiplicación (./) división elemento por elemento
(‘) transposición (.^) potenciación elemento por elemento
Tabla1 operaciones matemáticas a utilizar con vectores y matrices

Graficas
Con el uso de los vectores podemos recrear graficas en 2D y 3D

El primer paso es crear un vector que delimite el inicio y fin del eje X y otro que corresponda a la
función en el eje Y.
x = [0:0.1:2*pi]; %vector correspondiente a x

y1 = 3+sin(x); %función y1 dependiente de x

y2 = 3+cos(x); %función y2 dependiente de x

Después de tener la función que queremos graficar expresada en vectores con la suficiente cantidad
de puntos, designamos la figura donde se graficara usando el comando figure(#figura), después con
los comandos plot(ejex, ejey, formato) y subplot(filas, columnas, posición), etiquetaremos los ejes
de la grafica y le pondremos titulo con los comandos xlabel(), ylabel() y title()

figure(1) %definimos en que ventana se graficara

plot(x,y1,"r-s",x,y2,"b:+") %graficamos ambas funciones y definimos


formatos con estilo de linea, marcadores y colores

grid on %agregamos cuadricula

xlabel("eje x") %nombramos el eje x

ylabel("eje y") %nombramos el eje y

title("Funciones Y1 y Y2") %ponemos título a la grafica

%utilizando el comando subplot para dividir la figura subplot tiene los


términos (filas, columnas, posición)

figure(2) %definimos en que ventana se graficara

subplot(2,2,1)

plot(x,y1,"r-s",x,y2,"b:+") %graficamos ambas funciones y definimos


formatos con estilo de línea, marcadores y colores

GUIA DE LABORATORIO 1: INTRODUCCION A OCTAVE


UNIVERSIDAD DE EL SAVADOR ANALISIS NUMERICO - ANN115 M.SC. E ING. WILBER CALDERON
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA ELECTRICA

grid on %agregamos cuadricula

xlabel("eje x") %nombramos el eje x

ylabel("eje y") %nombramos el eje y

title("Funciones Y1 y Y2") %ponemos título a la grafica

subplot(2,2,2)

plot(x,y1,"r-s") %graficamos la función Y1 y definimos


formatos con estilo de línea, marcadores y colores

grid on %agregamos cuadricula

xlabel("eje x") %nombramos el eje x

ylabel("eje y") %nombramos el eje y

title("Funcion Y1") %ponemos título a la grafica

subplot(2,2,3)

plot(x,y2,"b:+") %graficamos la función Y2 y definimos


formatos con estilo de línea, marcadores y colores

grid on %agregamos cuadricula

xlabel("eje x") %nombramos el eje x

ylabel("eje y") %nombramos el eje y

title("Funcion Y2") %ponemos título a la grafica

También podemos dar formato a los gráficos de manera mas especifica con el comando set,
declarando anteriormente el grafico y el titulo en una variable.

Ademas exportaremos el grafico que realizaremos, hay que tener en cuenta que se exportara la
ultima figura abierta y lo haremos con el siguiente comando:

print('nombre.formato','-dformato')

subplot(2,2,4) %misma grafica pero personalizada con


otros comandos

graph = plot(x,y2); %graficamos la función Y2 y definimos


formatos posteriormente

grid on %agregamos cuadricula

set(graph,"linewidth",3) %declaramos grosor de línea

set(graph,"marker","h") %marcador de linea

GUIA DE LABORATORIO 1: INTRODUCCION A OCTAVE


UNIVERSIDAD DE EL SAVADOR ANALISIS NUMERICO - ANN115 M.SC. E ING. WILBER CALDERON
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA ELECTRICA

set(graph,"markersize",10) %tamanio del marcador

set(graph,"markerfacecolor","b") %color interior del marcador

set(graph,"markeredgecolor","g") %color exterior del marcador

tit=title("Funcion Y2"); %nombramos la grafica

set(tit,"fontsize",12) %tamanio fuente del titulo

set(tit,"color","r") %color del titulo

print('grafico.jpg','-djpg') %exportamos el grafico (nombre del


archivo,-d"formato")

Figura1 figuras 1 y 2 obtenidas

Estilo de linea Estilo del marcador Color


‘-’ Usar líneas solidas (por ‘+’ signo mas ‘K’ negro
defecto) ‘o’ circulo ‘r’ rojo
‘--’ Usar líneas discontinuas ‘*’ asterisco ‘g’ verde
‘:’ Usar líneas punteadas ‘.’ Punto ‘b’ azul
‘-.’ Combina puntos con ‘x’ cruz ‘m’ magenta
guiones ‘s’ cuadrado ‘c’ cyan
‘d’ rombo ‘w’ blanco
‘^’ triángulo hacia arriba
‘v’ triángulo hacia abajo
‘>’ triángulo hacia la derecha
‘<’ triángulo hacia la izquierda
‘p’ pentagrama
‘h’ hexagrama

Tabla2 formatos aplicables a los graficos

GUIA DE LABORATORIO 1: INTRODUCCION A OCTAVE


UNIVERSIDAD DE EL SAVADOR ANALISIS NUMERICO - ANN115 M.SC. E ING. WILBER CALDERON
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA ELECTRICA

Graficos no lineales

En estos gráficos podemos encontrar:

 Gráficos semilogarítmicos
semilogx(x, y, fmt); %produce una gráfica 2D utilizando una escala
logarítmica para el eje X.

semilogy(x, y, fmt); %produce una gráfica 2D utilizando una escala


logarítmica para el eje Y.

 Gráficos logarítmicos
loglog(x, y, fmt); % produce una gráfica en 2D en escala logarítmica para
ambos ejes.

 Gráficos de barras
bar(x, y): % produce un gráfico de barras a partir de dos vectores de datos
X-Y.

 Gráficos polares
polar(theta, rho, fmt); %Crea un trazo 2D a partir de coordenadas polares
THETA y RHO.

 Gráficos en 3D

Utilizando la función mesh se logran dibujar gráficos de malla en la forma Z=f(X,Y), tomando la Z
como elevación y haciendo el color del mallado proporcional al valor de Z.

mesh( Z): dibuja el gráfico de malla 3D correspondiente a Z = Z(x ,y) haciendo x = 1 : m e y = 1:n con
[m, n] = size(Z). El color es proporcional al valor de Z.

mesgrid(x,y): Dados dos vectores de coordenadas x e y, la función meshgrid() devuelve una pareja
de matrices Mx, My que se corresponden con la red de puntos de intersección de las dos series x e
y.
[xx,yy]=meshgrid(x,x)

z=function(xx,yy)

mesh(x,x,z)

GUIA DE LABORATORIO 1: INTRODUCCION A OCTAVE


UNIVERSIDAD DE EL SAVADOR ANALISIS NUMERICO - ANN115 M.SC. E ING. WILBER CALDERON
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA ELECTRICA

Se ilustra un ejemplo hacienda uso de las funciones:


subplot(2,3,1); %definimos con los primeros parámetros tamaño y
forma en la que se coloca la gráfica con el tercer argumento el
lugar donde se ubicara

#plano cartesiano

x=[0:0.01:2*pi]; % define el ancho del eje x

y=sin(x); %y será la función seno en términos de x

plot(x,y,"*k"); %se plotea primer argumento el eje x, segundo la


función y el tercero estilo del marcador

title("plano cartesiano")%Se titula el grafico

ylabel("y"); %título de eje y

xlabel("x"); %título de eje x

grid; %muestra una malla en la figura

subplot(2,3,2); %definimos con los primeros parámetros tamaño y


forma en la que se coloca la gráfica con el tercer argumento el lugar donde
se ubicara.

#Semilogaritmico

x=[1:100:1E6]; % define la longitud del vector (eje x)

y=log10(x); %y será la función seno en términos de x

semilogx(x,y,"+c"); %se plotea primer argumento el eje x, segundo la


función y el tercero estilo del marcador

title("Semilogaritmico x")%título del grafico

ylabel("y"); %título eje y

xlabel("log10(x)"); %título eje x

grid;

subplot(2,3,3);

#Semilogaritmico Y

x=[1:1:100]; %longitud del vector x

y=1E4.*x; %función dependiente de x

semilogy(x,y,"og"); % graficando la función semilogarítmica con x e y

title("Semilogaritmico Y")

ylabel("log10(y)"); %titulo eje y

xlabel("x"); %titulo eje x

grid;

GUIA DE LABORATORIO 1: INTRODUCCION A OCTAVE


UNIVERSIDAD DE EL SAVADOR ANALISIS NUMERICO - ANN115 M.SC. E ING. WILBER CALDERON
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA ELECTRICA

subplot(2,3,4)% posición que ocupara la gráfica en la figura

#ejes logaritmicos

x=[1:100:1E6];%longitud del vector x desde 1 en incrementos de 100 a 1E6

y=10*x;%y sera una funcion en terminos de x

loglog(x,y,"+m");

title("ambos ejes logaritmicos")

ylabel("log10(y)");

xlabel("log10(x)");

grid;

subplot(2,3,5);

#grafico de barras

x=[1:5]; % tamano del vector eje x

y=[8,2,5,8,9];% define los valores de las graficas

bar(x,y,"b");

title("Grafico de barras")

grid;

subplot(2,3,6);

#grafico polar

theta=[0:0.01:2*pi];%definimos la longitud de theta iniciando en 0 con


incrementos de 0.01 hasta 2*pi

ro=5.*(1-sin(theta));%ro es la funcion que estará en términos de theta

polar(theta,ro,"*r");%se plotea la figura

title("Polar")

grid;

figure(2)

#figura en 3D

x=[-10:0.5:10]; %vector que contiene los valores de la variable x

[xx,yy]=meshgrid(x,x);% corresponde a la red de puntos de intersección de


las dos series x e x.

z=xx.^2 - yy.^2;% se genera el valor de los puntos en el eje z

mesh(x,x,z);% realiza el grafico con los tres argumentos

title("Grafica 3D")% titulamos el grafico

grid;

GUIA DE LABORATORIO 1: INTRODUCCION A OCTAVE


UNIVERSIDAD DE EL SAVADOR ANALISIS NUMERICO - ANN115 M.SC. E ING. WILBER CALDERON
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA ELECTRICA

Los resultados se muestran en la figura 1 y 2:

Figura 2 Resultado de ejemplo de gráficos no lineales se hace uso de función la subplot para obtener los diferentes gráficos en una sola
figura.

Figura 3 Resultado de ejemplo de gráficos no lineales para grafico en 3D utilizando función mesh.

Funciones
Una función es una entidad que recibe una serie de argumentos como entradas, opera sobre ellos y
luego devuelve ciertos resultados. Las funciones cumplen un rol fundamental: encapsulan tareas. Al
encapsular tareas, en especial aquellas que se repiten seguido, nuestros programas son más fáciles
de leer y más eficientes.

GUIA DE LABORATORIO 1: INTRODUCCION A OCTAVE


UNIVERSIDAD DE EL SAVADOR ANALISIS NUMERICO - ANN115 M.SC. E ING. WILBER CALDERON
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA ELECTRICA

Para poder ejecutar estas funciones en la ventana de comandos, debe correrse antes el script en
esta misma.

Las funciones se declaran de la siguiente manera:

function nombredelafuncion(variables)

estructura del programa

estructura del programa

estructura del programa

endfunction
Ejemplo de funcion que grafica una funcion cuadrática con intercepto

function grafcuad(inf,sup,inter) %declaracion de la funcion

ejex=linspace(inf,sup,100); %se genera el eje x con los


limites puestos en la funcion

ejey=ejex.^2+inter; %se genera el eje y


cumpliendo una funcion cuadratica con intercepto

figure(1) %se usa la figura 1

plot(ejex,ejey,"-.ob") %se grafica

grid on %cuadricula encendida

xlabel("eje x") %etiqueta eje x

ylabel("eje y") %etiqueta eje y

title(strcat("x^2 + ",mat2str(inter,[2,2]))) %titulo de la grafica

endfunction

GUIA DE LABORATORIO 1: INTRODUCCION A OCTAVE


UNIVERSIDAD DE EL SAVADOR ANALISIS NUMERICO - ANN115 M.SC. E ING. WILBER CALDERON
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA ELECTRICA

Asignaciones de laboratorio

 Desarrolle contenido de la guía.


 Graficar en octave haciendo uso de la función subplot y hold dos gráficos en un misma figura
uno con x=sin(t) (color ‘*b’) y agregar un gráfico con valor xx=0.5*sin(10.*t) (color ‘+k’) y para el
segundo subplot y=cos(t) (color ‘-r’) y agregando el grafico yy=0.5*cos(10.*t) (color ‘dg’) donde
t=0:0.01:4*pi.
Grupos 1 y 2: usar colores especificados.
Grupos 3 y 4: invertir colores.
La figura quedara de la siguiente manera:

 Desarrollar mediante el uso del conocimiento adquirido en clase de funciones recursivas la


siguiente serie:

x xln(a) (xln (a))2 ( xln(a))3


a =e =1+ xln ( a ) + + +…
2! 3!
Asignaciones ex aula

Haciendo uso de las funciones desarrolladas en clase y laboratorio factorial y potencia


respectivamente desarrollar las siguientes series mediante una función recursiva:

x 3 x5 x 7
sen ( x ) =x− + − +…
3! 5! 7!

Desarrollar la función tangente:

GUIA DE LABORATORIO 1: INTRODUCCION A OCTAVE


UNIVERSIDAD DE EL SAVADOR ANALISIS NUMERICO - ANN115 M.SC. E ING. WILBER CALDERON
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA ELECTRICA

x3 2 x 5 17 x 7 22 n (22 n−1)Bn x 2 n−1


tan ( x )=x + + + +⋯
3 15 315 3

Donde Bn es el número de Bernoulli y su serie es:

( 2 n) ! 1 1
B n= 2 n−1 2n
{1+ 2 n + 2 n + ⋯ }
2 π 2 3

GUIA DE LABORATORIO 1: INTRODUCCION A OCTAVE

Das könnte Ihnen auch gefallen