You are on page 1of 40

Introducción a Octave y Matlab

Introducción a Octave y Matlab


Algunas Aplicaciones y Ejemplos

Jose Luis Castaño B

jose.castano00@usc.edu.co

Universidad Santiago de Cali


Facultad de Ingenierías

Cali 7th April 2018


Introducción a Octave y Matlab

Contenido

¿Qué es Octave y Matlab?

Empezando
Matrices en Octave y Matlab.

Gráficas en Octave y Matlab.


Ejemplos

Ecuaciones Diferenciales

Bibliografía
Introducción a Octave y Matlab
¿Qué es Octave y Matlab?

Outline

¿Qué es Octave y Matlab?

Empezando
Matrices en Octave y Matlab.

Gráficas en Octave y Matlab.


Ejemplos

Ecuaciones Diferenciales

Bibliografía
Introducción a Octave y Matlab
¿Qué es Octave y Matlab?

¿Qué es Octave y Matlab?

GNU Octave y Matlab son lenguajes de alto nivel interpretado,


usados principalmente para el cálculo numérico.
• Este permite soluciones numéricas de problemas lineales y no
lineales, con el fin de corroborar simulaciones y experimentos
numéricos.
• Permite la manipulación gráfica y la visualización de datos a
partir del análisis gráfico.
• Octave y Matlab son muy similares en su lenguaje.
• Matlab fue creado alrededor de 1950, mientras que Octave
fue creado en 1988.
Introducción a Octave y Matlab
¿Qué es Octave y Matlab?

Semejanzas y Diferencias entre Octave y Matlab.

Semejanzas
• Las matrices son el dato tratado y fundamental.
• Fueron construidos para soportar números complejos.
• Tienen amplios y potentes paquetes y librerias para la
manipulación matemática.
• Se pueden definir funciones por los usuarios extensiblemente.
• Octave es altamente compatible con Matlab.
Introducción a Octave y Matlab
¿Qué es Octave y Matlab?

Semejanzas y Diferencias entre Octave y Matlab.

Diferencias
• Claramente ciertas ordenes entre ambos lenguajes son
diferentes.
• Octave es un lenguaje abierto (Software libre), Matlab es de
pago
• Los paquetes de Matlab son amables con el usuario, en
Octave se tendrá que programar más.
• Los paquetes en octave pueden ser descargados mediante pkg
install (repositorio), en matlab hay que comprarlos.
Introducción a Octave y Matlab
¿Qué es Octave y Matlab?

Historia y Usos.
El nacimiento de Octave fue en el año de 1988. Fue creado
originalmente para un curso de diseño de reactores químicos para
los alumnos de ingeniería química de la Universidad de Texas y la
Universidad de Wisconsin-Madison. La versión 1.0 apareció en
Febrero de 1994.

Téngase en cuenta que hay otros programas análogos a Octave


como Matlab, Maple, Mathematica, Scilab, Euler, O-Matrix, R o S
caracterizados por ser lenguajes scripting.

Octave y Matlab posee una gran cantidad de herramientas que


permiten resolver problemas de algebra lineal, solución de
ecuaciones no lineales, integración de funciones ordinarias,
manipulación de polinomios, solución de ecuaciones diferenciales
ordinarias y ecuaciones diferenciales algebraicas.
Introducción a Octave y Matlab
Empezando

Outline

¿Qué es Octave y Matlab?

Empezando
Matrices en Octave y Matlab.

Gráficas en Octave y Matlab.


Ejemplos

Ecuaciones Diferenciales

Bibliografía
Introducción a Octave y Matlab
Empezando

Operaciones Ariméticas Básicas.

Operador Operación Ejemplo


+ Suma 3+2
- Resta 40 − 38
* Multiplicación 40 ∗ 65
/ División 12/46
ˆ Potencia 4(3/2)
Rem Residuo División Rem(10, 3)
Introducción a Octave y Matlab
Empezando

Proceso de Trabajo

Edición
.m
Archivo
Introducción a Octave y Matlab
Empezando

Proceso de Trabajo

Edición Octave ¿Algún


.m
Archivo Error?
Introducción a Octave y Matlab
Empezando

Proceso de Trabajo

Edición Octave ¿Algún


.m
Archivo Error?

Si
Introducción a Octave y Matlab
Empezando

Proceso de Trabajo

Edición Octave ¿Algún No


.m Resultado
Archivo Error?

Si
Introducción a Octave y Matlab
Empezando

Proceso de Trabajo

Edición Octave ¿Algún No ¿Algún


.m Resultado
Archivo Error? Cambio?

Si
Introducción a Octave y Matlab
Empezando

Proceso de Trabajo

Edición Octave ¿Algún No ¿Algún


.m Resultado
Archivo Error? Cambio?

Si
Si
Introducción a Octave y Matlab
Empezando

Proceso de Trabajo

Edición Octave ¿Algún No ¿Algún No


.m Resultado Listo
Archivo Error? Cambio?

Si
Si
Introducción a Octave y Matlab
Empezando

Vectores y Matrices

Hay Vectores fila y vectores columna. Los vectores se definen por


corchetes [] (Recuerde, el punto y coma al final de cada línea es
una orden para no mostrar el resultado ejecutado).

Ejemplo vector fila: Se pueden crear vectores


A = [10 20 30 40 50 60 70 80 90] contadores sin necesidad de
Ejemplo vector Columna: ingresar datos individuales:
B=[1;2;3;4]
Se pueden generar vectores linspace(inicio,limite,N),
contadores. logspace(inicio,limite,N), hace
Ejemplo de Vectores contadores: saltos logarítmicos.
v = [1:8] Ejemplo linspace:
v = [2:.25:4] linspace(0,10,11)
Introducción a Octave y Matlab
Empezando

Ejercicios

Ejercicio 1
1. Define tres variables con los siguientes valores: a = 1.5, b =
3.4 y c = 5.2. Calcule el valor de d para
a
d= b c
ca − ba

2. En un Congreso Internacional de Matemáticas se votó como


la ecuación más bella eiπ = −1. Compruebe en Octave el
resultado de esta ecuación. Deberá utilizar la constante π.
Introducción a Octave y Matlab
Empezando

Operaciones Polinómicas en Octave y Matlab.


Se puede generar también un polinomio tomando sólo sus
coeficientes y convirtiéndolo en un vector.

Ejemplo
Tómese la ecuación polinómica de la forma

x3 − x + 1 = 0

p=[1, 0, -1, 1];

El comando polyval evalúa el polinomio en un punto, véase


polyval(p,3)

La operación roots(p) Calcula las raíces del polinomio p.


Introducción a Octave y Matlab
Empezando

La operación residue(p, q), calcula la descomposición en fracciones


parciales del cociente de dos polinomios p y q donde el primero es
el numerador y el segundo el denominador.
Ejemplo:
b=[1, 1, 1];
a = [1, -5, 8, -4];
help residue
[r,p,k,e] = residue(b,a)
r= -2.0000, 7.0000, 3.0000
p=2.00000,2.00000,1.00000
e=1,2,1
¿Cómo se traduce este resultado?

s2 + s + 1 −2 7 3
= + +
s3 − 5s2 + 8s − 4 s − 2 (s − 2)2 s − 1
Introducción a Octave y Matlab
Empezando
Matrices en Octave y Matlab.

Operaciones Matriciales
zeros(...) Crea una matriz con las medidas solicitadas llena de
ceros.

Ejemplo:
zeros(1,3)
zeros(3,1)

ones(...) Crea una matriz con las medidas solicitadas llena de


unos. Su funcionamiento es análogo al de zeros
eye(...) Crea una matriz con unos en la diagonal principal y ceros
en el resto de sus elementos. Su funcionamiento es análogo al de
zeros.
rand(...) Crea una matriz cuyos elementos son números aleatorios.
Su funcionamiento es análogo al de zeros.
Introducción a Octave y Matlab
Empezando
Matrices en Octave y Matlab.

Los operadores de suma, resta, multiplicación, división y potencia


también funcionan con matrices siempre que sean del mismo
tamaño. También es posible aplicar las funciones elementales a
matrices, lo que dará el mismo resultado que si hubiéramos
aplicado la función a cada uno de los elementos.
Por ejemplo:
exp(rand(4))
Además recuérdese que también es posible multiplicar matrices:
x=rand(3);
y = rand(3);
x*y
Pero es completamente diferente a x.*y
¡Multiplique dos matrices grandes! Observe los resultados con
ambas operaciones.
Introducción a Octave y Matlab
Empezando
Matrices en Octave y Matlab.

Más Ejemplos:

Otras matrices y más operaciones:

Matriz diagonal:
X= [4 3 2 1];
Y = diag(X)

Transposición: Y’=Z

Determinante: det(rand(5))=D

Inversa: Inv(D)
Introducción a Octave y Matlab
Empezando
Matrices en Octave y Matlab.

Ejercicio
Tres planos en el espacio tridimensional tienen las siguientes
ecuaciones.


x−y+z = 2

y+z = 1+ 2

x+y = 1+ 2

Demostrar que tienen un único punto de intersección y encontrarlo


resolviendo el sistema de ecuaciones.
Introducción a Octave y Matlab
Empezando
Matrices en Octave y Matlab.

Ejercicio
Tres planos en el espacio tridimensional tienen las siguientes
ecuaciones.


x−y+z = 2

y+z = 1+ 2

x+y = 1+ 2

Demostrar que tienen un único punto de intersección y encontrarlo


resolviendo el sistema de ecuaciones.

Solución
La solución estará definida por la solución

X = A−1 · B
Introducción a Octave y Matlab
Gráficas en Octave y Matlab.

Outline

¿Qué es Octave y Matlab?

Empezando
Matrices en Octave y Matlab.

Gráficas en Octave y Matlab.


Ejemplos

Ecuaciones Diferenciales

Bibliografía
Introducción a Octave y Matlab
Gráficas en Octave y Matlab.

Gráficas

La instrucción plot(x,y,’cts’), dibuja los pares de puntos (x, y)


unidos por líneas, donde c es el color de las líneas, t el tipo de línea
y s el símbolo que usa OCTAVE para dibujar los puntos.

Opciones:

title(....)
Añade un título a la figura activa
xlabel(....)
Añade una etiqueta al eje x de la ventana activa
ylabel(...)
Añade una etiqueta al eje y de la ventana activa
Introducción a Octave y Matlab
Gráficas en Octave y Matlab.
Ejemplos

Ejemplo Gráfico

Ejemplo
Gráficos múltiples en la misma ventana:
x=0:0.1:2*pi;
y1=sin(x); y2=sin(0,5*x); y3=sin(2*x);
plot(x,y1,x,y2,’–’,x,y3,’.’)
title(’Funciones Senoidales’)
xlabel(’T’)
ylabel(’Amplitud’)
Introducción a Octave y Matlab
Gráficas en Octave y Matlab.
Ejemplos

Ejemplo Gráfico

plot3(): La función plot3() dibuja curvas en tres dimensiones, o


ternas de valores arbitrarios sin necesidad de que formen una
superficie. Por ejemplo, el código siguiente dibuja una espiral en
tres dimensiones:

Ejemplo

t = 0:0.1:10*pi;
r = linspace (0, 1, length(t));
z = linspace (0, 1, length(t));
plot3(r.*sin(t),r.*cos(t),z,’linewidth’,2);
Introducción a Octave y Matlab
Gráficas en Octave y Matlab.
Ejemplos

Más Comandos
El comando mesh(x,y,z) hace una representación tridimensional
dado dos vectores x e y, y una matriz bi-dimensional z.
Generalmente se usa el comando meshgrid para generar los datos
que usará ‘mesh’ para para representar los ejes x e y.

Ejemplo

tx= linspace (-8, 8, 41)’;


ty = linspace (-8, 8, 41)’;
[xx, yy] = meshgrid (tx, ty);
r = sqrt (xx.^ 2+yy.^ 2)+eps;
tz =sin(r)./r;
mesh (tx, ty, tz)
meshc(tx, ty, tz)
Introducción a Octave y Matlab
Gráficas en Octave y Matlab.
Ejemplos

Ejemplo

Graficar la función:

(x, y) = sin(x) · cos(y)

[x,y]= meshgrid (-pi :0.1: pi , -pi :0.1: pi);


z=sin(x).* sin(y);
mesh (x,y,z);
Ejercicio

Considere la siguiente señal dada por la ecuación:

f (t) = eαt · sin 2πf t


Con f = 10 Hz y t = [0, 2]. EL valor de α cámbielo por tres
valores entre[0.01, 3]

Encuentre:

• La representación gráfica y ponga etiquetas los ejes


• Represente la misma señal sin amortiguamiento
Introducción a Octave y Matlab
Ecuaciones Diferenciales

Outline

¿Qué es Octave y Matlab?

Empezando
Matrices en Octave y Matlab.

Gráficas en Octave y Matlab.


Ejemplos

Ecuaciones Diferenciales

Bibliografía
Introducción a Octave y Matlab
Ecuaciones Diferenciales

Resolución de Ecuaciones Diferenciales


La función lsode (Livermore Solver for Ordinary Differential
Equations) es utilizada como método multi-paso para resolver
ecuaciones diferenciales en Octave.
Se define una función f que toma dos argumentos:x y t t =
linspace (0, 7, 100); %crea un vector con 100 componentes
function xpunto = f (x, t); función;
endfunction %Devuelve xpunto, un vector con las derivadas
de cada una de las posiciones.
y = lsode ("f", x0, t);%resuelve un sistema de ecuaciones
lineales de primer orden.
x0 es el vector inicial y t es un vector con valores discretizados. Al
final,y es una matriz con tantas filas como variables tenga el
sistema que se resuelve.
plot (t, y);
Introducción a Octave y Matlab
Ecuaciones Diferenciales

Ejemplo

Solución a la ecuación diferencial


2
ẋ = −ex ∗ x2 ∗ sin 0.1 · t

x0=1;
Tend=200;
n=10000;
function xdot = f(x,t)
xdot=(-exp(x^2))*x^2 *sin(0.1*t);
endfunction
T = linspace (0,Tend,n);
X = lsode (’f’,x0,T);
plot(T,X)
Ejercicio

Atractor de Lorentz
Resolver el sistema de ecuaciones diferenciales

ẋ = a(y − x)
ẏ = x(b − z) − y
ż = xy − cz

Con a = 10, b = 28 y c = 83 .

Representar la solución gráficamente.


Introducción a Octave y Matlab
Ecuaciones Diferenciales

Solución
x=0;
function xpunt=func(x,t)
a=10;b=28;c=8/3;
xpunt(1,1)=a*(x(2)-x(1));
xpunt(2,1)=x(1)*(b-x(3))-x(2);
xpunt(3,1)=x(1)*x(2)-c*x(3);
end
x0=[1;1;1];
t=linspace(0,50,5000);
tic;
x=lsode(’func’,x0,t);
toc
plot3(x(:,1),x(:,2),x(:,3))
Ejercicio

Oscilador Amortiguado
La siguiente función describe una oscilación amortiguada que parte
del instante t = 0
f (t) = cos ωo t e−γ·t
Encuentre la transformada de Fourier de la función y grafíquela
Introducción a Octave y Matlab
Bibliografía

Outline

¿Qué es Octave y Matlab?

Empezando
Matrices en Octave y Matlab.

Gráficas en Octave y Matlab.


Ejemplos

Ecuaciones Diferenciales

Bibliografía
Introducción a Octave y Matlab
Bibliografía

Para saber más y Bibliografía

• Internet y guías de usuario universidades


• Ganas y tiempo... mucho tiempo
• Schmidt Hansen, Jesper. GNU Octave Beginner’s Guide.
Packt Publishing Ltd. 2011
• Quarteroni, Alfio & Saleri, Fausto . Scientific Computing with
MATLAB and Octave. Springer. 2006

You might also like