Está en la página 1de 23

Departamento de

Ingeniería Química y
Bioprocesos

Ayudantía 01 – Introducción a Matlab

Ayudante Catedra: Fernando Martínez (ftmartinez1@uc.cl)

Ayudante Talleres Computacionales: Andrés Arroyo (afarroyo@uc.cl)

Este material fue generado en base a “Introduction to Matlab” del profesor Ricardo Pérez .
Matlab
• Herramienta científica – computacional

• Tiene su propio lenguaje de programación

• Soluciones algebraicas a sistemas de ecuaciones

DIQB
Lugar de Trabajo
• Ventana de comandos → Escritura de código y datos / Resultados Numéricos

• Ventana de gráficos → Resultados gráficos

• Ventana de editor → Ventana de archivos para escribir macos “scripts” / “M files”

DIQB
Variables
• Pueden ser escalares – vectores – matrices

• Quedan registradas en la memoria del software una vez ejecutadas

• Ans → Entregara la ultima variable guardada

• Siempre parten con una letra pero pueden contener


números, letras y el símbolo “_”

• % permite hacer comentarios y %% crea secciones de


código

DIQB
Formatos
• Las variables son guardadas con 16 dígitos pero pueden ser mostradas
con diferentes formatos:

5 Dígitos 15 Dígitos 5 Dígitos y 10 elevado a un


asdasdsadddddddddddddddddddddddddddddddddddddddddddddddddddddddsadmúltiplo de 3

DIQB
Arrays – Vectores – Matrices
• Son creados con “[]”

• Una fila es escrita con elementos separados por espacios o “,”

• Las columnas son separadas por “;”

• Trasponer Arrays se realiza con el símbolo “ ‘ “

DIQB
Acceso a elementos
• Se puede ocupar el formato (n,m) o un valor absoluto que ira de arriba hacia abajo contando (n)

DIQB
Creación de Matrices / Vectores
• Para crear matrices existen funciones base de Matlab:

• Zeros (r,c)
• Zeros (n)
• Ones (r,c)
• Ones (n)

• Para crear vectores existen:

• Linspace (x1,x2,n)
• Logspace(x1,x2,n)

DIQB
Elementos computacionales de Matlab
• Cálculos de Matrices – Vectores • Cálculos de Matrices – Vectores por elemento

• El símbolo “ * “ es de multiplicación y • El símbolo “ .* “ es de multiplicación y


debe cumplirse la constancia de dimensiones debe cumplirse la constancia de dimensiones
en la operación en la operación

• El símbolo “ ^ ” es para elevar matrices, ósea, • El símbolo “ .^ ” es para elevar matrices, ósea,
multiplicarse por si misma (Matrices cuadradas) multiplicarse por si misma (Matrices cuadradas)

DIQB
Gráficos
• Los gráficos generados por Matlab son de alta calidad y versátiles.

• El comando utilizado para graficar es “plot”

DIQB
Gráficos
• Los comandos “hold on” y “hold off” sirven para que se mantenga el gráfico “abierto” para adicionar mas
información

• El comando “subplot (m,n,p)” sirve para crear un conjunto de gráficos en formato matriz

DIQB
Funciones
• Una función acepta un input de valores y entrega valores de salida

• Las variables creadas dentro de un archivo de función no afecta la ventana de comandos, a menos que se
utilice un código para lograrlo

DIQB
Estructura del Código
• Existen diferentes estructuras que permiten tomar decisiones en el flujo del código

• Un ejemplo de ello son los comandos de “if”, “if..else” and “if..elseif”

• De igual forma se pueden ocupar “for” y “while”

Operator Meaning Example


== equal x == 0 Logic connectors Meaning Result
~= not equal unit ~= 'm' ~x no true if x is false
< lower than a<0
x&y and true if x and y are true
> larger than s>t
<= lower or equal to 3.9 <= a/3 x|y or true if x or y are true
>= larger or equal to r >= 0

DIQB
Funciones Anónimas
• Es una función escrita en una liena de código y tienen como estructura:
variable = @(argumentos) expresión

DIQB
Sistema de ecuaciones
• Ecuaciones lineales se pueden resolver con el uso de matrices

DIQB
Sistema de ecuaciones
• Ecuaciones no lineales es posible ocupar el comando “fsolve” que permite resolver un sistema de ecauciones
igualadas a 0

x2 − 2 = 0
y2 − 5 = 0

DIQB
Ecuaciones diferenciales ordinarias
• Muchos modelos y dinámicas funciones con ecuaciones diferenciales.

• Muchos pueden quedar representados así:

𝐹 𝑡, 𝑦 ′ , 𝑦 ′′ , … , 𝑦 𝑛 = 0

• Tenemos 2 casos:

• Problemas de valor inicial

• Problemas de valores de borde

DIQB
Ecuaciones diferenciales ordinarias
𝑦𝑖′ 𝑥 = 𝑓𝑖 𝑡, 𝑦1 , 𝑦2 , … , 𝑦𝑛 ; 𝑦𝑖 𝑡0 = 𝑦𝑖,0 , 𝑖 = 1,2, … , 𝑛

[T,Y] = ode15s(@fun, [ti tf], 𝑦0 )

Initial value Problems

DIQB
Ecuaciones diferenciales ordinarias
Existen varios comandos que pueden resolver este tipo de problemas:

DIQB
Ecuaciones diferenciales ordinarias
• Problemas de valor inicial:

𝑑𝒚
𝒚′ = = 𝒇 𝑡, 𝒚 ; 𝒚 𝑡 = 0 = 𝐲𝟎
𝑑𝑡

• La sintaxis para resolver estos problemas sería:

[T,Y] = odexxx(@fun, [ti tf], y0)

• @fun es la llamada a la función ya creada un su propio archivo

DIQB
Ecuaciones diferenciales ordinarias
• El código sería: [T,Y] = odexxx(@fun, [ti tf], y0)

function yp = fun(t, y) • Al ejecutar el comando nos entregara T e Y:


yp(1) = % first ode
yp(2) = % second ode • T: Es un vector de M filas de tiempos discretos
… con T(1) igual a “ti” y T(M) igual a “tf”
yp(n) = % nth ode
yp=yp(:); % transform yp into a column vector • Y: Una matriz de N columnas iguales a la
end cantidad de variables envueltas y M filas iguales
a la cantidad de M tiempos discretos

DIQB
Ejercicios
Representación del producto de la circunferencia de las funciones:
𝑦 = cos 𝑡
𝑥 = sin 𝑡 , −𝜋 ≤ 𝑡 ≤ 𝜋
i. Gráficos de las ecuaciones en función del tiempo:
ii. Graficar la función y vs. x.

DIQB
Ejercicios
Las oscilaciones de un péndulo pueden simularse utilizando el siguiente modelo no lineal:
𝑑2𝜃 𝑔
+ sin(𝜃) = 0
𝑑𝑡 2 𝑙
𝑚
Dónde 𝜃 es el ángulo de desplazamiento en radianes, 𝑔 = 9.81 𝑠2 la constante gravitacional, y 𝑙 el largo del
péndulo. Para pequeños desplazamientos angulares, sin 𝜃 ~ 𝜃 y el modelo puede ser linealizado como
𝑑2𝜃 𝑔
+ 𝜃=0
𝑑𝑡 2 𝑙
Utilice ode45 para encontrar el desplazamiento angular 𝜃 en función del tiempo para el modelo lineal y no
lineal, donde 𝑙 = 0.6𝑚. Primero, resuelva para el caso en que la condición inicial es un desplazamiento pequeño
𝑑𝜃 𝜋 𝑑𝜃
( 𝜃 = 0.8 𝑦 𝑑𝑡 = 0). Luego, repita el cálculo para desplazamientos grandes ( 𝜃 = 2 , 𝑑𝑡 = 0) . Para cada caso,
grafique las simulaciones lineales y no lineales en el mismo gráfico utilizando el comando subplot.

DIQB

También podría gustarte