MATLAB. Curso Agosto de 2008.

122
Universidad Técnica de Loja Escuela de Ingeniería Química MATLAB

description

TLAB. Curso Agosto de 2008.

Transcript of MATLAB. Curso Agosto de 2008.

Page 1: MATLAB.  Curso Agosto de 2008.

Universidad Técnica de LojaEscuela de Ingeniería Química

MATLAB

Page 2: MATLAB.  Curso Agosto de 2008.

Temario

1. Generalidades.2. Manipulación de matrices.3. Gráficas en 2D y 3D.4. Programación.5. Métodos numéricos.6. Matemáticas simbólicas.7. Creación de GUIs8. Simulink.

Page 3: MATLAB.  Curso Agosto de 2008.

1. Generalidades

Desarrollado a finales de los setenta (Universidades deNew Mexico y Stanford)

En la actualidad ampliamente difundido en la Universidad yla Industria.

Núcleo básico del programa: Cálculo numérico basado enmatrices. Matlab = Matrix Laboratory.

Módulos adicionales. Simulink, MatLab SymbolicToolbox (núcleo del programa Maple), etc.

Page 4: MATLAB.  Curso Agosto de 2008.

2. Manipulación de Matrices

Page 5: MATLAB.  Curso Agosto de 2008.

>> A=[1 2 3; 4 5 6; 7 8 9]

La respuesta del programa es la siguiente:A =

1 2 3

4 5 6

7 8 9

Page 6: MATLAB.  Curso Agosto de 2008.

Una sencilla operación con A es hallar su matriz traspuesta.En MATLAB el apóstrofo (') es el símbolo de trasposiciónmatricial. Para calcular A' (traspuesta de A) basta teclear losiguiente

>> A'

ans =

1 4 7

2 5 8

3 6 9

Page 7: MATLAB.  Curso Agosto de 2008.

La variable ans puede ser utilizada como operando en la siguienteexpresión que se introduzca. También podría haberse asignado elresultado a otra matriz llamada B:

>> B=A'

B =

1 4 7

2 5 8

3 6 9

Page 8: MATLAB.  Curso Agosto de 2008.

Ahora ya están definidas las matrices A y B, y es posible seguiroperando con ellas. Por ejemplo, se puede hacer el producto B*A(deberá resultar una matriz simétrica):

>> B*A

ans =

66 78 90

78 93 108

90 108 126

Page 9: MATLAB.  Curso Agosto de 2008.

En MATLAB se accede a los elementos de un vector poniendo elíndice entre paréntesis (por ejemplo x(3) ó x(i)). Los elementos de lasmatrices se acceden poniendo los dos índices entre paréntesis,separados por una coma (por ejemplo A(1,2) ó A(i,j)). Las matrices sealmacenan por columnas (aunque se introduzcan por filas, comose ha dicho antes), y teniendo en cuenta esto puede accederse acualquier elemento de una matriz con un sólo subíndice. Por ejemplo,si A es una matriz (3x3) se obtiene el mismo valor escribiendo A(1,2)Que escribiendo A(4).

Page 10: MATLAB.  Curso Agosto de 2008.

Invertir una matriz es tan fácil como trasponerla. A continuación seva a definir una nueva matriz A -no singular- en la forma:

>> A=[1 4 -3; 2 1 5; -2 5 3]

A =

1 4 -3

2 1 5

-2 5 3

Page 11: MATLAB.  Curso Agosto de 2008.

Ahora se va a calcular la inversa de A y el resultado se asignará a B.Para ello basta hacer uso de la función inv( )

>>B=inv(A)

B =

0.1803 0.2213 -0.1885

0.1311 0.0246 0.0902

-0.0984 0.1066 0.0574

Page 12: MATLAB.  Curso Agosto de 2008.

Para comprobar que este resultado es correcto basta con multiplicar Apor B

>> B*A

ans =

1.0000 0.0000 0.0000

0.0000 1.0000 0.0000

0.0000 0.0000 1.0000

Page 13: MATLAB.  Curso Agosto de 2008.

De forma análoga a las matrices, es posible definir un vector fila x enla forma siguiente (si los tres números están separados por blancos ocomas, el resultado será un vector fila):

>> x=[10 20 30] % vector fila

x =

10 20 30

MATLAB considera comentarios todo lo que va desde el caráctertanto por ciento (%) hasta el final de la línea.

Page 14: MATLAB.  Curso Agosto de 2008.

Si los números están separados por intros o puntos y coma (;)se obtendrá un vector columna:

>> y=[11; 12; 13] % vector columna

y =

11

12

13

Page 15: MATLAB.  Curso Agosto de 2008.

MATLAB tiene en cuenta la diferencia entre vectores fila y vectorescolumna. Por ejemplo, si se intenta sumar los vectores x e y seobtendrá el siguiente mensaje de error:

>> x+y

??? Error using ==> +

Matrix dimensions must agree.

Page 16: MATLAB.  Curso Agosto de 2008.

Estas dificultades desaparecen si se suma x con el vector traspuestode y:

>> x+y'

ans =

21 32 43

Page 17: MATLAB.  Curso Agosto de 2008.

Operadores

Page 18: MATLAB.  Curso Agosto de 2008.
Page 19: MATLAB.  Curso Agosto de 2008.

Tipos de datos: MATLAB es un programa preparado para trabajar convectores y matrices. Como caso particular también trabaja convariables escalares (matrices de dimensión 1). MATLAB trabajasiempre en doble precisión, es decir guardando cada dato en 8 bytes,con unas 15 cifras decimales exactas. Ya se verá más adelante quetambién puede trabajar con cadenas de caracteres (strings) y, desde laversión 5.0, también con otros tipos de datos: Matrices de más dosdimensiones, matrices dispersas, vectores y matrices de celdas,estructuras y clases y objetos.

Page 20: MATLAB.  Curso Agosto de 2008.

Otras formas de definir matrices: Existen en MATLAB variasfunciones orientadas a definir con gran facilidad matrices de tiposparticulares. Algunas de estas funciones son las siguientes:

eye(4) forma la matriz unidad de tamaño (4x4)zeros(3,5) forma una matriz de ceros de tamaño (3x5)zeros(4) ídem de tamaño (4x4)ones(3) forma una matriz de unos de tamaño (3x3)ones(2,4) idem de tamaño (2x4)

Page 21: MATLAB.  Curso Agosto de 2008.

linspace(x1,x2,n) genera un vector con n valores igualmenteespaciados entre x1 y x2

logspace(d1,d2,n) genera un vector con n valores espaciadoslogarítmicamente entre 10^d1 y 10^d2. Si d2 es pi6, los puntos se generan entre 10^d1 y pi

rand(3) forma una matriz de números aleatorios entre 0 y 1, con distribución uniforme, de tamaño (3x3)

rand(2,5) idem de tamaño (2x5)

Page 22: MATLAB.  Curso Agosto de 2008.

randn(4) forma una matriz de números aleatorios de tamaño (4x4), con distribución normal, de valor medio 0 y varianza

magic(4) crea una matriz (4x4) con los números 1, 2, ... 4*4, con la propiedad de que todas las filas y columnas suman lo mismo

hilb(5) crea una matriz de Hilbert de tamaño (5x5). La matriz de Hilbert es una matriz cuyos elementos (i,j) responden a la expresión (1/(i+j-1)). Esta esuna matriz especialmente difícil de manejar por los grandes errores numéricos a los que conduce

Page 23: MATLAB.  Curso Agosto de 2008.

Formación de una matriz a partir de otras

A continuación se describen algunas de las funciones quecrean una nueva matriz a partir de otra o de otras,comenzando por dos funciones auxiliares:

[m,n]=size(A) devuelve el número de filas y de columnas de la matriz A. Si la matriz es cuadrada basta recoger el primer valor de retorno

N=length(x) calcula el número de elementos de un vector x

Page 24: MATLAB.  Curso Agosto de 2008.

zeros(size(A)) forma una matriz de ceros del mismo tamañoque una matriz A previamente creada

ones(size(A)) ídem con unosA=diag(x) forma una matriz diagonal A cuyos elementos

diagonales son los elementos de un vector ya existente x

x=diag(A) forma un vector x a partir de los elementos de la diagonal de una matriz ya existente A

Page 25: MATLAB.  Curso Agosto de 2008.

diag(diag(A)) crea una matriz diagonal a partir de la diagonal de la matriz A

blkdiag(A,B) crea una matriz diagonal de submatrices a partir de las matrices que se le pasan como argumentos

triu(A) forma una matriz triangular superior a partir de una matriz A (no tiene por qué ser cuadrada).

tril(A) ídem con una matriz triangular inferior

Page 26: MATLAB.  Curso Agosto de 2008.

OPERADOR DOS PUNTOS (:)

Defínase un vector x con el siguiente comando:

>> x=1:10

x =

1 2 3 4 5 6 7 8 9 10

En cierta forma se podría decir que el operador (:) representaun rango: en este caso, los números enteros entre el 1 y el 10.

Page 27: MATLAB.  Curso Agosto de 2008.

Por defecto el incremento es 1, pero este operador puede tambiénutilizarse con otros valores enteros y reales, positivos o negativos. Eneste caso el incremento va entre el valor inferior y el superior.

>> x=1:2:10x =1 3 5 7 9>> x=10:-1:1x =10 9 8 7 6 5 4 3 2 1

Page 28: MATLAB.  Curso Agosto de 2008.

Operadores relacionales

Operador Descripción

< Menor que

> Mayor que

<= Menor o igual que

>= Mayor o igual que

= = Igual que

~ = Distinto que

Page 29: MATLAB.  Curso Agosto de 2008.

Operadores lógicos

Operador Descripción

& and

| or

~ negación lógica

Page 30: MATLAB.  Curso Agosto de 2008.

Funciones matemáticas elementales que operan de modo escalar

Función Descripción

sin(x) Seno

cos(x) Coseno

tan(x) Tangente

asin(x) Arco seno

acos(x) Arco coseno

atan(x) Arco Tangente

sinh(x) Seno hiperbólico

Page 31: MATLAB.  Curso Agosto de 2008.

Función Descripción

cosh(x) Coseno hiperbólico

tanh(x) Tangente hiperbólico

asinh(x) Arco seno hip.

acosh(x) Arco coseno hip.

atanh(x) Arco tangente hip.

log(x) Logaritmo natural

log10(x) Logaritmo decimal

Page 32: MATLAB.  Curso Agosto de 2008.

Función Descripción

exp(x) función exponencial

sqrt(x) raíz cuadrada

sign(x) devuelve -1 si <0, 0 si =0 y 1 si >0.

rem(x,y) resto de la división

mod(x,y) similar a rem

round(x) redondeo hacia el entero más próximo

fix(x) redondea hacia el entero más próximo a 0

Page 33: MATLAB.  Curso Agosto de 2008.

Función Descripción

floor(x) valor entero más próximo hacia -∞

ceil(x) valor entero más próximo hacia +∞

real(x) partes reales

imag(x) partes imaginarias

abs(x) valores absolutos

angle(x) ángulos de fase

Page 34: MATLAB.  Curso Agosto de 2008.

Funciones que actúan sobre vectores

Función Descripción

[xm,im]=max(x) máximo elemento de un vector. Devuelve el valor máximo xm y la

posición que ocupa immin(x) mínimo elemento de un vector.

Devuelve el valor mínimo y la posiciónque ocupa

sum(x) suma de los elementos de un vector

Page 35: MATLAB.  Curso Agosto de 2008.

Función Descripción

cumsum(x) devuelve el vector suma acumulativa de los elementos de un vector

mean(x) valor medio de los elementos de un vector

std(x) desviación típica

prod(x) producto de los elementos de un vector

Page 36: MATLAB.  Curso Agosto de 2008.

Función Descripción

cumprod(x) devuelve el vector producto acumulativo de los elementos de un vector

[y,i]=sort(x) ordenación de menor a mayor de los elementos de un vector x. Devuelve el vector ordenado y, y un vector i con las posiciones iniciales en x de los elementos en el vector

ordenado y.

Page 37: MATLAB.  Curso Agosto de 2008.

Funciones que actúan sobre matrices

Función Descripción

B = A' calcula la traspuesta (conjugada) de lamatriz A

B = A.' calcula la traspuesta (sin conjugar) de la matriz A

v = poly(A) devuelve un vector v con los coeficientes del polinomio característico de la matriz cuadrada

A

Page 38: MATLAB.  Curso Agosto de 2008.

Función Descripción

t = trace(A) devuelve la traza t (suma de los elementos de la diagonal) de una matriz cuadrada A

[m,n] = size(A) devuelve el número de filas m y de columnas n de una matriz rectangular A

n = size(A) devuelve el tamaño de una matriz cuadrada A

nf = size(A,1) devuelve el número de filas de A

nc = size(A,2) devuelve el número de columnas de A

Page 39: MATLAB.  Curso Agosto de 2008.

4. PROGRAMACIÓN DE MATLAB

Page 40: MATLAB.  Curso Agosto de 2008.

Funciones M - Files

Page 41: MATLAB.  Curso Agosto de 2008.

SENTENCIA IF

Page 42: MATLAB.  Curso Agosto de 2008.

Existe también la bifurcación múltiple,

En una sola línea

Page 43: MATLAB.  Curso Agosto de 2008.

SENTENCIA SWITCH

Page 44: MATLAB.  Curso Agosto de 2008.

SENTENCIA FOR

Page 45: MATLAB.  Curso Agosto de 2008.

Ejemplo

factorial.m

Page 46: MATLAB.  Curso Agosto de 2008.

SENTENCIA WHILE

En una sola línea

Page 47: MATLAB.  Curso Agosto de 2008.

SENTENCIA BREAK

La sentencia break hace que se termine la ejecución del buclemás interno de los que comprenden a dicha sentencia.

SENTENCIA CONTINUE

La sentencia continue hace que se pase inmediatamente a lasiguiente iteración del bucle for o while, saltando todas las sentenciasque hay entre el continue y el fin del bucle en la iteración actual.

Page 48: MATLAB.  Curso Agosto de 2008.

SENTENCIA TRY...CATCH...END

La construcción try...catch...end permite gestionar los errores.

En el caso de que durante la ejecución del bloque sentencias1se produzca un error, el control de la ejecución setransfiere al bloque sentencias2. Si la ejecución transcurrieranormalmente, sentencias2 no se ejecutaría nunca.

Page 49: MATLAB.  Curso Agosto de 2008.

FUNCIÓN INPUT

La función input permite imprimir un mensaje en la línea decomandos de MATLAB y recuperar como valor de retorno unvalor numérico o el resultado de una expresión tecleada por elusuario.

>> n = input(‘ Teclee el número de ecuaciones ')

Page 50: MATLAB.  Curso Agosto de 2008.

FUNCIÓN DISP

La función disp permite imprimir en pantalla un mensaje detexto o el valor de una matriz, pero sin imprimir su nombre.

>> disp('El programa ha terminado')

>> A=rand(4,4)

>> disp(A)

Page 51: MATLAB.  Curso Agosto de 2008.

FUNCION FPRINTF

La cadena de control contiene los formatos de escritura. Porejemplo:

» vol = 2.0393938;» fprintf('El volumen de la esfera es: %12.5f \ n',vol);El volumen de la esfera es: 2.03939

Page 52: MATLAB.  Curso Agosto de 2008.

3. GRÁFICOS EN 2D y 3D

Page 53: MATLAB.  Curso Agosto de 2008.

Funciones gráficas 2D elementales

Función Descripción

plot() crea un gráfico a partir de vectores y/o columnas de matrices, con escalas lineales sobre ambos

ejesloglog() ídem con escala logarítmica en ambos ejes

semilogx() ídem con escala lineal en el eje de ordenadas y logarítmica en el eje de abscisas

semilogy() ídem con escala lineal en el eje de abscisas y logarítmica en el eje de ordenadas

Page 54: MATLAB.  Curso Agosto de 2008.

Función Descripción

title('título') añade un título al dibujo

xlabel('tal') añade una etiqueta al eje de abscisas. Con xlabel off desaparece

ylabel('cual') añade una etiqueta al eje de ordenadas. Con ylabel off desaparece

Page 55: MATLAB.  Curso Agosto de 2008.

Función Descripción

text(x,y,'texto') introduce 'texto' en el lugar especificado por las coordenadas x e y. Si x e y son vectores, el texto se repite por cada par de elementos. Si texto es

también un vector de cadenas de texto de la misma dimensión, cada elemento se escribe en

las coordenadas correspondientes

Page 56: MATLAB.  Curso Agosto de 2008.

Función Descripción

gtext('texto') introduce texto con ayuda del ratón: el cursor cambia de forma y se espera un clic para

introducir el texto en esa posicióngrid activa la inclusión de una cuadrícula en el dibujo.

Con grid off desaparece la cuadrícula

Page 57: MATLAB.  Curso Agosto de 2008.

Añadir líneas a un gráfico ya existente

Se utilizan para ello los comandos hold on y hold off. El primero deellos hace que los gráficos sucesivos respeten los que ya se handibujado en la figura (es posible que haya que modificar la escala delos ejes); el comando hold off deshace el efecto de hold on.

Page 58: MATLAB.  Curso Agosto de 2008.

COMANDO subplot()

Una ventana gráfica se puede dividir en m particiones horizontales y nverticales, con objeto de representar múltiples gráficos en ella. Cadauna de estas subventanas tiene sus propios ejes, aunque otraspropiedades son comunes a toda la figura. La forma general de estecomando es:

subplot(m,n,i)

donde m y n son el número de subdivisiones en filas y columnas, e i esla subdivisión que se convierte en activa.

Page 59: MATLAB.  Curso Agosto de 2008.

Control de los ejes

axis([xmin, xmax, ymin, ymax])

axis('ij') utiliza ejes de pantalla, con el origen en la esquina superiorizda. y el eje j en dirección vertical descendenteaxis('xy') utiliza ejes cartesianos normales, con el origen en la esquinainferior izda. y el eje y vertical ascendenteaxis(‘equal') el escalado es igual en ambos ejesaxis(‘square') la ventana será cuadradaaxis(‘image') la ventana tendrá las proporciones de la imagen que sedesea representar en ella (por ejemplo la de una imagen bitmap quese desee importar) y el escalado de los ejes será coherente con dichaimagenaxis(‘normal') elimina las restricciones introducidas por 'equal' y'square'axis('off') elimina las etiquetas, los números y los ejesaxis(‘on') restituye las etiquetas, los números y los ejes

Page 60: MATLAB.  Curso Agosto de 2008.

FUNCIÓN line()

La función line() permite dibujar una o más líneas que unen los puntoscuyas coordenadas se pasan como argumentos.Para dibujar un segmento de color verde entre dos puntos, estafunción se llamaría de la siguiente manera:

line([xini, xend], [yini, yend],[zini, zend],’color’,’g’)

Page 61: MATLAB.  Curso Agosto de 2008.

2xe )xsin(y −=Ejemplo:

Page 62: MATLAB.  Curso Agosto de 2008.

⎪⎩

⎪⎨

=

=

=

x

x

e)xsin(3ye2y

)xsin(1y

Ejemplo:

Page 63: MATLAB.  Curso Agosto de 2008.

Ejemplo:⎩⎨⎧

>≤

=0sin(x) si ),xsin(0in(x)s si ,0

)x(f

Page 64: MATLAB.  Curso Agosto de 2008.

DIBUJO DE LÍNEAS: FUNCIÓN plot3()

La función plot3 es análoga a su homóloga bidimensional plot. Suforma más sencilla es la siguiente:

>> plot3(x,y,z)

que dibuja una línea que une los puntos (x(1), y(1), z(1)),(x(2), y(2), z(2)), etc. y la proyecta sobre un plano para poderlarepresentar en la pantalla.

Page 65: MATLAB.  Curso Agosto de 2008.

Ejemplo

⎪⎩

⎪⎨

===

tz)tsin(y)tcos(x

Page 66: MATLAB.  Curso Agosto de 2008.

DIBUJO DE MALLADOS: FUNCIONES meshgrid(), mesh(), surf()

meshgrid Ejemplo

Page 67: MATLAB.  Curso Agosto de 2008.

)yx(22 22

e)yxsin(z +−+=Ejemplo:

Page 68: MATLAB.  Curso Agosto de 2008.
Page 69: MATLAB.  Curso Agosto de 2008.
Page 70: MATLAB.  Curso Agosto de 2008.
Page 71: MATLAB.  Curso Agosto de 2008.

DIBUJO DE CURVAS DE NIVEL: FUNCIONES contour, contour3, surf.

Page 72: MATLAB.  Curso Agosto de 2008.

Siguiendo con el ejemplo anterior

Page 73: MATLAB.  Curso Agosto de 2008.
Page 74: MATLAB.  Curso Agosto de 2008.
Page 75: MATLAB.  Curso Agosto de 2008.
Page 76: MATLAB.  Curso Agosto de 2008.

5. Creación de GUIs (Interfaces gráficas de usuario)

Page 77: MATLAB.  Curso Agosto de 2008.

Se puede compartir datos entre “callbacks” almacenandolos datos en la estructura handles.Ejemplo. Para almacenar los datos contenidos en el vector X en laestructura handles:1. Seleccionar un nombre para el campo de la estructura,

handles.nombre2. Asignar X a handles.nombre

handles.nombre = X;3. Guardar la estructura handles con guidata

guidata(hobject,handles)

Page 78: MATLAB.  Curso Agosto de 2008.

5. Métodos Numéricos

Page 79: MATLAB.  Curso Agosto de 2008.

5.1 Ecuaciones

fzero(@f,a)Encuentra el cero más cercano al valor a de la función f.

roots(c)Encuentra todos los ceros de un polinomio cuyoscoeficientes son almacenados en el vector c.

Page 80: MATLAB.  Curso Agosto de 2008.

Ejemplo. Encontrar los ceros de f(x),

3x

24

xex10f(x) .b3x5x3x)x(f .a

+−+−=

+−+=

Solución:

Page 81: MATLAB.  Curso Agosto de 2008.
Page 82: MATLAB.  Curso Agosto de 2008.

Sistemas de ecuaciones no lineales. Comando fsolve()

Page 83: MATLAB.  Curso Agosto de 2008.

Ejemplo

mifuncion.m

En la ventana de comandos:

Page 84: MATLAB.  Curso Agosto de 2008.

5.2 Integración

quad(@f, a, b)Integra por cuadraturas la función f, desde a hasta b.

Page 85: MATLAB.  Curso Agosto de 2008.

Ejemplo

Page 86: MATLAB.  Curso Agosto de 2008.

5.3 Diferenciación numérica

diff(x)Si x = [x(1) x(2) … x(n)] entonces diff(x) = [x(2)-x(1) x(3)-x(2) … x(n)-x(n-1)]

Page 87: MATLAB.  Curso Agosto de 2008.

5.4 EDOs de primer orden

[ t , Y ] = ode45( @odefun , tspan , y0 )

Tiempo Intervalo de tiempo

Variables desalida

Condicionesiniciales

Page 88: MATLAB.  Curso Agosto de 2008.

EjemploResolver el sistema de Lorentz desde t=0 hasta t=10

1z(0) z38xy

dtdz

0y(0) ,yx28xzdtdy

1 x(0) ,)xy(10dtdx

=−=

=−+−=

=−=

Page 89: MATLAB.  Curso Agosto de 2008.

Lorentz.m

En la ventana de comandos:

Page 90: MATLAB.  Curso Agosto de 2008.
Page 91: MATLAB.  Curso Agosto de 2008.

6. Matemáticas simbólicas

Page 92: MATLAB.  Curso Agosto de 2008.

6.1 Álgebra simbólica

collect(S)

collect(S,v)

expand(S)

Agrupa términos semejantes de s.

Agrupa términos semejantes de s respecto a la variable independiente v

Realiza una expansión de s

factor(S) Intenta factorizar s.

simple(S) Simplifica la forma de S a una forma más corta, si es posible.

simplify(S) Simplifica S usando las reglas de simplificación de de Maple

Page 93: MATLAB.  Curso Agosto de 2008.

Ejemplos

Page 94: MATLAB.  Curso Agosto de 2008.

6.2 Límites

Page 95: MATLAB.  Curso Agosto de 2008.

Ejemplo

( )35x )4x(

5xlim Calcular 1.+−

Page 96: MATLAB.  Curso Agosto de 2008.

6.3 Derivación e integración

Page 97: MATLAB.  Curso Agosto de 2008.
Page 98: MATLAB.  Curso Agosto de 2008.

Ejemplos

⎟⎟⎠

⎞⎜⎜⎝

⎛−

++4x5

3/13

e5)x(sen3x

dxd Calcular 1.

Page 99: MATLAB.  Curso Agosto de 2008.

⎟⎠⎞

⎜⎝⎛

− x2

2

e1)x(sen

dxd Calcular 2.

Page 100: MATLAB.  Curso Agosto de 2008.

⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛+

++

∂∂

∂∂ xz4

y5yx

yx Calcular 3.

Page 101: MATLAB.  Curso Agosto de 2008.

( )∫ ++ dxe3ax5 Calcular 4. ax

Page 102: MATLAB.  Curso Agosto de 2008.

( )∫ +b

a

5x43 dxex3 Calcular 5.

Page 103: MATLAB.  Curso Agosto de 2008.

( ) dz dy dx e z y x 3 Calcular 6.1

0

z

0

zy

0

zx5y4∫ ∫ ∫+

+++

Page 104: MATLAB.  Curso Agosto de 2008.

6.4 Series de Taylor

Page 105: MATLAB.  Curso Agosto de 2008.

6.5 Ecuaciones diferenciales ordinarias

Ejemplos

0xy5dxdy Resolver 1. =+

Page 106: MATLAB.  Curso Agosto de 2008.

2)0(dxdy 1,y(0) , 3x4x3y5

dxdy3

dxyd Resolver 2. 22

2

==−+=−+

Page 107: MATLAB.  Curso Agosto de 2008.

)t·cos(mFoy

dtyd

o2

o2

2

ω=ω+Ejemplo:

Page 108: MATLAB.  Curso Agosto de 2008.

6.6 Transformadas Integrales

Transformada de Laplace

Sintaxis:

laplace(F) laplace(F,t)

laplace(F,w,z)

Page 109: MATLAB.  Curso Agosto de 2008.

Descripción

L = laplace(F) es la transformada de Laplace de la función F, cuyavariable por omisión es t. La transformada de Laplace es una funciónde t, y retorna como respuesta una función de s.

Por definición:

( ) ( )sLLtFF =⇒=

( ) ( )∫∞

−=0

stdtetFsL

Page 110: MATLAB.  Curso Agosto de 2008.

L=laplace(F,w,z) obtiene L como una función de z, dado F en funciónde w, en lugar de las variables por omisión s y t, respectivamente.

( ) ∫∞

−=0

zwdwe)w(FzL

Page 111: MATLAB.  Curso Agosto de 2008.

Ejemplo:

as1dtee)f(L

e)t(f

0

stat

at

+==

=

∫∞

−−

En MATLAB:

Page 112: MATLAB.  Curso Agosto de 2008.
Page 113: MATLAB.  Curso Agosto de 2008.

7. Simulink

Page 114: MATLAB.  Curso Agosto de 2008.
Page 115: MATLAB.  Curso Agosto de 2008.

Simulación de un reactor no isotérmico

Page 116: MATLAB.  Curso Agosto de 2008.
Page 117: MATLAB.  Curso Agosto de 2008.
Page 118: MATLAB.  Curso Agosto de 2008.

Subsistema: Ecuación 1

Page 119: MATLAB.  Curso Agosto de 2008.

Subsistema: Ecuación 2

Page 120: MATLAB.  Curso Agosto de 2008.

Subsistema: Ecuación 3

Page 121: MATLAB.  Curso Agosto de 2008.

Subsistema: Ecuación 4

Page 122: MATLAB.  Curso Agosto de 2008.

Puesta en marcha de un reactor no isotérmico