Beruflich Dokumente
Kultur Dokumente
NDICE
Contenidos
1 2 3 4 Presentacin .............................................................................................................................................. 2 Descripcin de los algoritmos (solvers) de matlab ............................................................................... 2 Entradas y salidas de los algoritmos (solvers) ........................................................................................ 3 Ejemplo 1 ................................................................................................................................................... 5 4.1 4.2 5 Ejemplo 1: Variante 1 ........................................................................................................................ 8 Ejemplo 1: Variante 2 ........................................................................................................................ 9
Problemas ................................................................................................................................................ 12
1 PRESENTACIN
En esta prctica vamos a experimentar cmo resolver con MATLAB: Ecuaciones diferenciales ordinarias de primer orden explcitas. Sistemas de ecuaciones diferenciales ordinarias de primer orden, explcitas y con condiciones iniciales. Ecuaciones diferenciales de orden superior explcitas con condiciones iniciales. Todas estas ecuaciones pueden escribirse: yt = f (t, y), y(t0) = y0 (1)
MATLAB tiene incorporados varios mtodos de resolucin de problemas de valor inicial: todos empiezan por ode y le siguen dos o ms nmeros y, en algunos casos, una o dos letras o los nmeros indican el orden del/de los mtodo/s empleado/s todos requieren los mismos datos y proporcionan los resultados de manera similar Los programas son: o ode45 o ode23 o ode113
o o o o
Los datos de entrada mnimos requeridos para resolver un problema de valor inicial : yt = f (t, y), son: 1. la funcin f - f (t, y) - en cuestin 2. el intervalo tspan en el que se quiere obtener la solucin 3. la condicin inicial y0. NOTA: Los datos de entrada deben ser ingresados siempre en este mismo orden! Conforme lo explicitado precedentemente, usando la notacin propia de MATLAB escribiremos: [T, Y] = odefun (f, tspan, y0) donde: T e Y son las matrices que contienen los resultados de salida. odefun es el nombre del algoritmo (solver) de MATLAB que se desea utilizar (e.g., ode45) f es, como ya hemos visto, la funcin en cuestin, que puede ser definida de 2 (dos) maneras equivalentes, a saber: 1. en lnea 2. en un archivo .m pero que en ningn caso puede pasarse como una cadena de texto. y(t0) = y0 (2)
tspan es el intervalo en el que queremos resolver; desde el punto de vista de MATLAB es un vector que especifica el intervalo de integracin: [t0, tf]. El solver impone las condiciones iniciales en tspan (1), y se integra a partir tspan (1) a tspan (final).
NOTA:Para obtener las soluciones en momentos especficos (todos aumentando o todos disminuyendo), debemos usar tspan = [t0, t1, ..., tf].
Consecuentemente, tspan requiere la especificacin de al menos dos componentes,; o el primer componente es el punto o extremo inicial del intervalo, es decir el punto t0 donde se especifican las condiciones iniciales o el ltimo componente es el punto o extremo final del intervalo (que puede ser menor que t0, en cuyo caso se resuelve la ecuacin hacia atrs en el tiempo (o hacia la izquierda en el espacio).
NOTA: Si se especifican ms de dos componentes en el vector tspan se obtendrn resultados en los puntos indicados en el mismo (y slo en ellos), tambin hay que tener en cuenta que dichos componentes han de especificarse en orden lgico, ya sea creciente o decreciente.
4 EJEMPLO 1
Para resolver el Ejemplo: (3)
(cuya solucin analtica exacta es como se demuestra ms adelante en el punto 4.X Ejemplo 1: Variante X)
en el intervalo [ 0, 1 ] y mostrar grficamente el resultado ingresamos en la Ventana de Comandos (Command Window) de MATLAB: f = inline(3*y, t, y) [T, Y] = ode45(f, [0 1], 1) plot(T, Y, T, Y, o) MATLAB nos devuelve los resultados siguientes:
f= Inline function: f(t,y) = 3*y T= 0 0.0167 0.0335 0.0502 0.0670 0.0920 0.1170 0.1420 0.1670 0.1920 0.2170 0.2420 0.2670 0.2920 0.3170 0.3420 0.3670 0.3920 0.4170 0.4420 0.4670 0.4920 0.5170 0.5420 0.5670 0.5920 0.6170 0.6420 0.6670 0.6920 0.7170 0.7420 0.7670 0.7920 0.8170 0.8420 0.8670 0.8920 0.9170
Y= 1.0000 1.0515 1.1057 1.1627 1.2226 1.3178 1.4204 1.5310 1.6503 1.7788 1.9174 2.0667 2.2277 2.4012 2.5882 2.7897 3.0070 3.2412 3.4937 3.7658 4.0591 4.3752 4.7160 5.0833 5.4792 5.9059 6.3659 6.8617 7.3961 7.9721 8.5930 9.2623 9.9837 10.7613 11.5994 12.5028 13.4766 14.5262 15.6575 16.8770 18.1915 18.6475 19.1151 19.5943 20.0856
Como es dable observar, en la grfica generada mediante el comando plot(T, Y, T, Y, o), aparecen marcados con o los puntos calculados y una curva construida a partir de ellos, en el intervalo [0 1].
Como es dable observar, en la grfica generada mediante el comando plot(T, Y, T, Y, o), aparecen marcados con o los puntos calculados y una curva construida a partir de ellos, en el intervalo [0 0.1 0.2 0.3
0.4 0.5]
con forma de diamante ('bdiamond-.') con bordes de color rojo ('MarkerEdgeColor','r') con su interior de color verde ('MarkerFaceColor','g') con un tamao igual a 10 ('MarkerSize',10)
o o
la curva mediante una lnea de ancho doble ('LineWidth',2) la curva mediante una lnea compuesta por rayas y puntos 'bdiamond-.'
('ANyCA 2012 PL EDO - Ejemplo 4.1 - Variante1 - FIGURA 1')
con un ttulo igual al siguiente: 'ANyCA 2012 PL EDO - Ejemplo 4.1 - Variante1 - FIGURA 1' title
con un rtulo en el eje x igual a Eje T xlabel('Eje T') con un rtulo en el eje y igual a Eje Y xlabel('Eje Y')
con la grilla activada grid on con el fondo de color amarillo whitebg('y')
deberamos adecuar los parmetros de la funcin plot, ingresando en la en la Ventana de Comandos (Command Window) de MATLAB los comandos siguientes:
>> f = inline('3*y', 't', 'y') [T, Y] = ode45(f, [0 0.1 0.2 0.3 0.4 0.5], 1) plot(T, Y, T, Y, 'bdiamond-.',... 'MarkerEdgeColor','r',... 'MarkerFaceColor','g',... 'MarkerSize',10,... 'LineWidth',2) title ('ANyCA 2012 - PL - EDO - Ejemplo 4.1 Variante 2 - FIGURA 1') xlabel('Eje T') ylabel('Eje Y') grid on %whitebg('y')
NOTA: SE OMITEN LOS RESULTADOS QUE DEBERN SER OBTENIDOS POR CADA ALUMNO.
5 PROBLEMAS