introducción al octave-matlab

26
Computer-aided Chemical Engineering Curso de Introducción a Octave/Matlab para Ingenieros Químicos www.cacheme.org Introducc ión

Upload: maria-carbajal

Post on 09-Jul-2016

38 views

Category:

Documents


0 download

DESCRIPTION

Octave-Matlab, software,diseño de reactores

TRANSCRIPT

Page 1: Introducción al Octave-Matlab

Computer-aided Chemical Engineering

Curso de Introducción a Octave/Matlab para Ingenieros Químicos

www.cacheme.orgIntroducción

Page 2: Introducción al Octave-Matlab

cacheme.orgCAChemE• Asociación formada por ingenieros químicos

(profesionales, docentes y estudiantes) que pretende estimular las posibilidades de software en la ingeniería de procesos

• Promueve las ventajas de las nuevas herramientas de software libre disponibles y fomenta su uso en la universidad e industria

• Especialización en simulación y programación matemática (optimización)

2

Page 3: Introducción al Octave-Matlab

cacheme.org¿Quiénes somos?

3

Page 4: Introducción al Octave-Matlab

cacheme.orgActividades• Formación• Webinars• Desarrollo• ¡Podcast!

4

Page 5: Introducción al Octave-Matlab

cacheme.org¿Por qué Octave UPM?• Octave UPM es una adaptación de GNU Octave que se emplea para la

docencia de Informática en la Escuela de Ingenieros de Caminos, Canales y Puertos de la UPM y ha sido desarrollado por Israel Herraiz (@herraiz).

• Es altamente compatible con MATLAB• Es software libre y gratuito, disponible para Windows y Linux.

5

Interfaz de Octave UPM (v.8)

Nota: Octave fue creado originalmente para resolver problemas de reactores ingeniería química, su nombre viene en honor al profesor Octave Levenspiel (como el libro).

http://mat.caminos.upm.es/octave/

Page 6: Introducción al Octave-Matlab

cacheme.org“Requisitos” para este curso• Conocimientos básicos de programación y reactores químicos.

• Octave-MATLAB, guía de referencia rápida y principios de programación.• http://academic.macewan.ca/davisj80/files/2012/08/octave_qr.pdf• https://

mat.caminos.upm.es/wiki/Curso_de_Introducci%C3%B3n_a_la_Programaci%C3%B3n• http://iimyo.forja.rediris.es/

• Tiempo para practicar

6

“Ningún lenguaje se aprende por osmosis”Guillem Borrell

¡Ejemplos de este curso han sido tomados de aquí! Es material de formación libre y gratuito.

Page 7: Introducción al Octave-Matlab

7

cacheme.org

Buenas prácticas de programación(reaprendiendo MATLAB-Octave)

Dos PDFs que todo el mundo que trabaja con MATLAB-Octave debería conocer.

Page 8: Introducción al Octave-Matlab

8

cacheme.orgAlgunas buenas prácticas de programación

• % Añade comentarios (documentación)• Indenta (tabula) el código para diferenciar los bucles y

condicionales.• Evita poner números sin haberlos definido antes (magic

numbers)…• … y dales nombres más descriptivos a tus parámetros

(‘Diametro’ mejor que ‘D’)• Evita los bucles anidados (nested loops)…• … intentando vectorizar operaciones cuando sea posible.• Preasigna las matrices en memoria (matrix preallocation)• Si existen, utiliza las funciones ya implementadas en

lugar de escribirlas por ti mismo.

Page 9: Introducción al Octave-Matlab

Computer-aided Chemical Engineering

Sesión 1: Introducción a lenguaje Matlab - Octave

www.cacheme.orgIntroducción

Page 10: Introducción al Octave-Matlab

10

cacheme.orgObjetivos de la sesión1. Operaciones y comandos básicos con Matlab – Octave

2. Primeros programas• Área de una circunferencia• Sumatorio• Factorial• Números primos• Año bisiesto

3. Herramientas para resolver problemas de Reactores Químicos • Resolución de sistemas de ecuaciones diferenciales (ODE45)

• Ecuaciones diferenciales de 1er orden• Ecuaciones diferenciales de 2do orden• Modelo Epidemiológico • Modelo de Lokta-Volterra – Condiciones iniciales de Cauchy• Problema

Page 11: Introducción al Octave-Matlab

11

cacheme.org2. Operaciones y comandos básicos Matlab - Octave

Calculadora / Matrices / Representación 2D / Otros

Page 12: Introducción al Octave-Matlab

12

cacheme.org2. Primeros programasÁrea de un círculo

• Conocido ‘r’ obtener un programa que devuelva ‘A’.• Definir el problema Cálculo de A• Identificar entradas r• Identificar salidas A• Algoritmo transformación entradas en salidas A = π.r2

Page 13: Introducción al Octave-Matlab

13

cacheme.org2. Primeros programasSumatorio / Factorial / Sumatorio & Factorial

• Programa que devuelva el sumatorio de un número.

Ej: 6 0+1+2+3+4+5+6 =21

• Programa que devuelva el factorial de un número.

Ej: 6 6! = 1*2*3*4*5*6 = 720

• Programa que devuelva el sumatorio y factorial de un número.

Page 14: Introducción al Octave-Matlab

14

cacheme.org2. Primeros programasNúmero primo / Año bisiesto

• Programa que devuelva si un número es primo o no es primo.

Recordatorio… ¿Número primo?Únicamente divisible por 1 y por él mismo

• Programa que devuelva si un año es bisiesto o no es bisiesto.

Recordatorio… ¿Año bisiesto?Es bisiesto si es:• Divisible por 4

• Salvo si es divisible por 100• Excepto si divisible por 400

Page 15: Introducción al Octave-Matlab

15

cacheme.org

• Ecuación que involucra derivadas de la función desconocida• ¿Por qué numéricamente? Sólo las ecuaciones diferenciales más sencillas

admiten soluciones dadas por fórmulas explícitas (analíticas)

3. Herramientas para resolver problemas de RQEcuación diferencial de primer orden

pkg load odepkg % Pon esto en la consola para cargar la librería en Octave UPM

𝑑𝑦 (𝑡 )𝑑𝑡 =−5 𝑦 (𝑡)

Page 16: Introducción al Octave-Matlab

16

cacheme.org

• Ej: E.D. 2o orden𝑑2𝜃𝑑𝑡 2

=−𝜔2sin (𝜃)

𝑑 𝑦1𝑑𝑡 =𝑦 2

𝑑 𝑦2𝑑𝑡 =−𝜔2 sin (𝑦1)

3. Herramientas para resolver problemas de RQEcuación diferencial de segundo orden

Page 17: Introducción al Octave-Matlab

17

cacheme.org

• lsode: Interfaz de Octave a odepack• ode45: Es un Runge-Kutta de paso variable y 4º

orden. La primera opción• ode113: Esquema Adams multipaso• ode23s: Esquema para problemas stiff (rígidos)

• Se dice que un problema es rígido (stiff) cuando el paso temporal de integración viene determinado por la estabilidad del esquema, no por la precisión

• Suelen relacionarse con funciones que introducen fuertes gradientes o condiciones de contorno restrictivas

• Suelen asociarse a problemas no lineales y requieren esquemas de integración temporal implícitos

pkg load odepkg para cargar la librería en Octave UPM

(cc) Guillem Borrell

3. Herramientas para resolver problemas de RQResolución numérica de sistemas de ecuaciones diferenciales

Page 18: Introducción al Octave-Matlab

18

cacheme.org3. Herramientas para resolver problemas de RQ

Modelo Epidemiológico

(cc) MateWiki (UPM)

Page 19: Introducción al Octave-Matlab

19

cacheme.org3. Herramientas para resolver problemas de RQ

Modelo Epidemiológico

(cc) MateWiki (UPM)

Page 20: Introducción al Octave-Matlab

20

cacheme.org

• El crecimiento de la población R(t) (Rabbits, en adelante simplemente R) de presas en ausencia de predadores es proporcional a la población R. Siendo a la diferencia entre las tasas de natalidad y mortalidad de la presa:

• El crecimiento de la población R se ve afectado por la acción de los depredadores. Esta acción es proporcional a la cantidad de interacciones FR entre la población R de presas y la población F(t) (Foxes, en adelante simplemente F) de predadores. El factor de proporcionalidad c indica el grado de efectividad del proceso.

• Este mismo factor afecta de forma positiva al crecimiento de la población F de predadores, que se ven beneficiados por la caza. El factor de proporcionalidad d indica el grado en que afecta el éxito en la caza al crecimiento de la población de predadores.

• Por último, la competitividad asociada al crecimiento excesivo de la población de predadores F resulta perjudicial para el crecimiento de esta población. El grado en que esto afecta al crecimiento de la población se representa a través del parámetro c.

(cc) MateWiki (UPM)

3. Herramientas para resolver problemas de RQModelo de Lokta-Volterra – Condiciones iniciales de Cauchy

Page 21: Introducción al Octave-Matlab

21

cacheme.org

• La expresión final del modelo se puede expresar a través del problema de condiciones iniciales o de Cauchy:

 

• Resolver para población inicial de Presas y de Predadores • En un intervalo y para los valores .• Intervalo de tiempo de 0 a 100 con 1000 iteraciones.

(cc) MateWiki (UPM)http://jsxgraph.uni-bayreuth.de/wiki/index.php/Lotka-Volterra_equations

3. Herramientas para resolver problemas de RQModelo de Lokta-Volterra – Condiciones iniciales de Cauchy

Page 22: Introducción al Octave-Matlab

22

cacheme.org3. Herramientas para resolver problemas de RQ

Modelo de Lokta-Volterra – Condiciones iniciales de Cauchy

Page 23: Introducción al Octave-Matlab

23

cacheme.org3. Herramientas para resolver problemas de RQProblema

Page 24: Introducción al Octave-Matlab

24

cacheme.org3. Herramientas para resolver problemas de RQProblema

Page 25: Introducción al Octave-Matlab

Computer-aided Chemical Engineering

Curso de Introducción a Octave/Matlab para Ingenieros Químicos

www.cacheme.orgIntroducción

Page 26: Introducción al Octave-Matlab

@[email protected]

www.cacheme.org

26