Está en la página 1de 4

Resolucin de ecuaciones diferenciales con MATLAB R2015a

1. 1. Resolucin de ecuaciones diferenciales con MATLAB R2015a


2. 2. Qu es MATLAB? MATLAB es un programa interactivo para computacin
numrica y visualizacin de datos. Es ampliamente usado por ingenieros de
control, en el anlisis y diseo, posee adems una extraordinaria versatilidad y
capacidad para resolver problemas en matemtica aplicada, fsica, qumica,
ingeniera, finanzas y muchas otras aplicaciones. Est basado en un sofisticado
software de matrices para el anlisis de sistemas de ecuaciones. Permite resolver
complicados problemas numricos sin necesidad de escribir un programa. El
nombre de MATLAB proviene de la contraccin de los trminos MATrix LABoratory
3. 3. Ventajas del MATLAB Su programacin requiere menos tiempo que otros
lenguajes como FORTRAN, C, PASCAL, etc. Utiliza un lenguaje ms cercano a
la matemtica. Permite definir fcil y rpidamente nuevas funciones que se
incorporan a MATLAB mediante el toolboxes. Posee grandes capacidades
grficas.
4. 4. Qu se puede realizar en MATLAB ? Anlisis de datos. Polinomios
Grficos 2D Grficos 3D Ajuste de curvas Interpolacin Anlisis numrico
Resolucin de ecuaciones diferenciales
5. 5. Command Windows: Donde se ejecutan todas las instrucciones y programas. Se
escribe la instruccin o el nombre del programa y se da click en Enter. Command
History: Muestra los ltimos comandos ejecutados en Command Windows. Se
puede recuperar el comando haciendo doble click. Current directory: Situarse en el
directorio donde se va a trabajar. Help: ayuda sobre diversos temas de MATLAB
(tambin se puede usar desde comand windows) Workspace: Para ver las
variables que se estn usando y sus dimensiones (si son matrices) Editor del
Matlab: Todos los ficheros de comandos Matlab deben de llevar la extensin .m
Elementos bsicos del escritorio de MATLAB
6. 6. Command Windows Command History Current directory Workspace Interfaz del
escritorio de MATLAB R2015a
7. 7. Caractersticas bsicas de MATLAB -El prompt de Matlab es >>. El usuario
escribe a continuacin. -Para ejecutar se pulsa la tecla Enter. -Se pueden
recuperar comandos anteriores navegando con las flechas y . -Se distinguen
maysculas y minsculas. -Todos los comandos de MATLAB se escriben en
minsculas y los argumentos se envan entre parntesis separados por coma. -El
carcter % se utiliza para insertar comentarios. Todo lo que sigue ( en la misma
lnea) es ignorado por MATLAB. -Si se teclea al final de una instruccin ; sta se
ejecuta pero el resultado no se visualiza por pantalla. -Dos comandos se pueden
insertar en la misma lnea separados por , o por ; . La diferencia entre los dos
es que con , se muestran los resultados de las operaciones mientras que con ;
la operacin se ejecuta pero no se visualiza. -El comando (>>clc) limpia o borra
toda la ventana de comandos de MATLAB.
8. 8. Caractersticas bsicas de MATLAB ( continuacin) -El circunflejo ^ es la
potenciacin: >> 3^5 -El trmino ans es la primera variable que vemos de
MATLAB. Concretamente, guarda la ltima salida dada por MATLAB (answer): >>
4+6 ans = 10 -La raz cuadrada se puede calcular bien elevando a (^(1/2)) o bien
utilizando el comando (>> sqrt). -La prioridad de ejecucin entre operaciones
matemticas es la habitual: primero se calcula la potenciacin ^ , posteriormente
los productos y divisiones * , / y en ltimo lugar, las sumas y restas + y - . Este
orden se puede cambiar utilizando parntesis. La regla es sencilla: dada una
expresin, lo primero que se calcula es lo que est dentro de cada parntesis. Esta
regla es recursiva, es decir, si dentro de un parntesis hay otros parntesis, para
evaluar el primero se empezar con los parntesis interiores. -Help, helpwin y
lookfor son comandos de ayuda: Ej. (>> help sin) -El comando (>>demo) hace una
demostracin de las diferentes aplicaciones de MATLAB. -Para cerrar o finalizar el
uso de MatLab se usa el comando (>> quit) .
9. 9. Resolucin de ecuaciones diferenciales con MATLAB Existen varios mtodos
para resolver ecuaciones diferenciales, los cules con adecuaciones necesarias se
usan para resolver sistemas de ecuaciones diferenciales. Entre los ms usados
tenemos el mtodo de Euler, de Euler Mejorado Euler-Gauss o mtodo de Heun,
mtodo de la serie de Taylor, mtodo de Milne, mtodo de Adams-Bashforth-
Moulton, mtodo de Hamming y los mtodos de Runge-Kutta. MatLab tiene
implementado mdulos bsicos para resolver ecuaciones diferenciales y sistemas
de ecuaciones diferenciales en forma directa, es decir, sin programar el algoritmo
numrico. A continuacin se describen los comandos ms importantes empleados
en MatLab para la resolucin de ecuaciones diferenciales: ode45.(Ordinary
differential equation solver of 4th and 5th order). Es un mtodo de un solo paso, es
decir, para averiguar un punto slo se basa en el calculado anteriormente. Est
basado en la frmula explcita de Runge-Kutta de 4 y 5 orden (Par de Dormand-
Princce). En general, este mtodo arroja resultados satisfactorios para la mayora
de los modelos continuos y resulta ser un bueno como primera aproximacin
cuando no se conoce mucho del sistema en estudio.
10. 10. Resolucin de ecuaciones diferenciales con MATLAB ode23.Es un mtodo de
un solo paso basado en la frmula de Runge-Kutta de 2 y 3 orden (par de
Bogacki-Shampine). Este mtodo resulta ms eficiente que ode45 cuando las
tolerancias del error no son tan estrictas y el sistema presenta un leve grado de
rigidez. ode113.Es un mtodo multipaso, es decir, necesita conocer de varios
puntos anteriores para calcular la solucin actual. Es el mtodo de orden variable
de Adams-Bashforth-Moulton. Puede resultar ms eficiente que ode45 cuando las
tolerancias del error se tornan muy estrictas. ode15s.Es un mtodo multipaso de
orden variable (entre uno y cinco) basado en las frmulas de diferenciacin
numrica (NDFs). Si bien las NDFs estn relacionadas con las frmulas de
diferenciacin por atraso (BDFs o mtodo de Gear), estas NDFs son mucho ms
eficientes. Este mtodo es recomendable si el sistema es rgido (o un problema
diferencial algebraico) o bien si el ode45 falla o resulta ineficaz.
11. 11. ode23s.Es un mtodo de un solo paso basado en la frmula modificada e
Rosenbrock de segundo orden. Puede ser ms eficiente que ode15s para altas
tolerancias y en sistemas rgidos. Resolucin de ecuaciones diferenciales con
MATLAB ode23t.Es un mtodo que utiliza interpolacin libre para resolver
ecuaciones diferenciales ordinarias y algebraicas por la regla trapezoidal, cuando
el sistema es semirgido. ode23tb.Ecuaciones diferenciales ordinarias mediante
TR-BDF2. Es una frmula implcita de RungeKutta, que utiliza en una primer paso
la regla trapezoidal y en un segundo paso las frmulas de diferenciacin por atraso
orden dos. Ms eficiente que ode15s para tolerancias altas. bvp4c. Ecuaciones
diferenciales ordinarias con valores en la frontera.
12. 12. Resolucin de ecuaciones diferenciales ordinarias con MATLAB Las
ecuaciones diferenciales ordinarias se pueden resolver en MATLAB con el
comando dsolve. Este comando se utiliza para resolver una sola ecuacin o bien
un sistema de ecuaciones diferenciales. Una ecuacin diferencial ordinaria de
primer orden es una ecuacin que contiene la derivada de la variable dependiente.
Si (t) es la variable independiente, e (y) es la variable independiente, la ecuacin
diferencial ordinaria de primer orden se pude escribir de la forma: Una ecuacin
diferencial de segundo orden contiene la segunda derivada de la variable
dependiente. Su forma general es: La solucin para estas ecuaciones es una
funcin y= f(t) que satisface la ecuacin. La solucin puede ser general o particular.
Una solucin general contiene constantes. En la solucin particular las constantes
deben tener valores numricos especficos tal que la solucin satisfaga las
condiciones iniciales.
13. 13. Solucin general en MATLAB ( reglas a tener en cuenta ) Para obtener una
solucin general, el comando dsolve debe tener la forma: dsolve (eq) o
dsolve(eq,var) -eq es la ecuacin a resolver. Debe ser introducida como cadena,
incluso si las variables que contiene son objetos simblicos. -Se puede usar
cualquier letra (en maysculas o minsculas) como variable dependiente, excepto
D. -En el comando dsolve (eq) MATLAB toma t como la variable independiente
por defecto. -En el comando dsolve (eq, var) el usuario puede indicar la variable
independiente teclendola en forma de cadena dentro del parmetro var. -Cuando
se teclea la ecuacin, la letra D indica diferencial o derivada. Si (y) es la variable
dependiente y (t) es la independiente, Dy significa dy/dt. Por ejemplo, la ecuacin
dy/dt + 3y =100, se introducira como: Dy + 3 * y = 100
14. 14. Solucin general en MATLAB (continuacin) -La segunda derivada se
representa como D2, la tercera derivada como D3, y as sucesivamente. Por
ejemplo, la ecuacin: Se introducira en el MATLAB como D2y + 3 * Dy + 5 * y =
sin (t) -En la solucin que ofrece MATLAB, se utilizan C1, C2, C3, etc., como
constantes de integracin. Por ejemplo, veamos el cdigo correspondiente a una
solucin general para la ecuacin diferencial de primer orden: Segn MATLAB:
Traduccin de la solucin general >>dsolve(Dy =4*t + 2*y) ans = C1*exp(2*t) - 2*t
- 1 y = C1 e 2t - 2t - 1
15. 15. Solucin general en MATLAB (continuacin) A continuacin veamos una
solucin general para la ecuacin diferencial ordinaria de segundo orden: Segn
MATLAB: >>dsolve(D2x + 2 * Dx + x = 0) ans = C1*exp(-t) + C2*t*exp(-t)
Traduccin de la solucin general: x = C1 e -t + C2 t e -t Si MATLAB no pude
encontrar una solucin para la ecuacin, ste devuelve un objeto simblico vaco,
seguido del mensaje: Warning : explicit solution could not be found (Aviso :
podra no existir una solucin explcita.)
16. 16. Solucin general en MATLAB (continuacin) Los ejemplos siguientes muestran
la resolucin de ecuaciones diferenciales que contienen variables simblicas,
adems de variables dependientes e independientes. >>dsolve (Ds = a* x^2) La
variable independiente es t (por defecto) MATLAB resuelve la ecuacin: ans =
a*t*x^2 + C1 Se visualiza la solucin: s = ax2t + c1 >>dsolve (Ds = a* x^2, x) La
variable independiente es x MATLAB resuelve la ecuacin:ans = 1/3*a*x^3+C1 Se
visualiza la solucin: s = ax3 + C1 a) b)
17. 17. Solucin general en MATLAB (continuacin) >>dsolve(Ds = a*x^2, a) La
variable independiente se define como a. MATLAB resuelve la ecuacin:ans =
1/2*a^2*x^2+C1 Se visualiza la solucin: s =1/2a2 x2+ C1 Solucin particular Si las
condiciones iniciales o en la frontera han sido especificadas, se puede obtener
una solucin particular para una ecuacin diferencial ordinaria. Una ecuacin de
primer orden requiere de una condicin, una de segundo orden requiere dos
condiciones , y as sucesivamente. Para obtener una solucin particular se deben
utilizar las siguientes sintaxis del comando dsolve. Para una EDO de primer orden:
Para una EDO de orden superior: dsolve ( eq, cond1, var) dsolve ( eq, cond1,
cond2, var)
18. 18. Solucin particular (continuacin) Para resolver ecuaciones de orden superior
se necesitan condiciones adicionales en la frontera que deben ser introducidas por
parmetro. Si el nmero de condiciones es menor que el orden de la ecuacin,
MATLAB devolver una solucin que incluye las constantes de integracin ( C1,
C2, C3, etc.) Las condiciones de frontera se teclean en forma de cadena, de la
siguiente manera: El argumento var es opcional. Se puede utilizar para definir la
variable independiente en la ecuacin. Si no se introduce ningn valor se toma por
defecto t.
19. 19. Solucin particular (continuacin) Por ejemplo, veamos el cdigo para resolver
la ecuacin diferencial de primer orden : Con una condicin inicial y(0) = 5:
>>dsolve(Dy + 4*y = 60 ,y(0) =5) ans = 15 - 10*exp(-4*t) Se visualiza la solucin:
y = 15 -10e-4t
20. 20. Solucin particular (continuacin) A continuacin se muestra, en este otro
ejemplo , el cdigo MATLAB para resolver la ecuacin diferencial de segundo
orden: Con las condiciones siguientes: a) b) >> dsolve('D2y-
2*Dy+2*y=0','y(0)=1','Dy(0)=0') ans = exp(t)*cos(t) - exp(t)*sin(t) La solucin se
visualiza: y = et cos(t) et sen(t) La solucin se puede simplificar utilizando el
comando factor. >> factor (ans) ans= [ exp(t), cos(t) - sin(t)] La solucin se
visualiza: y = et (cos(t) sen(t))
21. 21. Resolucin de ejercicios 1) Calcule la solucin general a la siguiente ecuacin
diferencial: 2) Calcule la solucin a la siguiente ecuacin diferencial que satisface
las condiciones iniciales dadas.
22. 22. Solucin de los ejercicios 1 y 2 1) >> dsolve('D2y-4*y=5','y(0)=0','Dy(0)=1') ans
= (3*exp(-2*t))/8 + (7*exp(2*t))/8 - 5/4 2) >> dsolve('D2y+3*Dy-2*y=0') ans =
C1*exp(t*(17^(1/2)/2 - 3/2)) + C2*exp(-t*(17^(1/2)/2 + 3/2))
23. 23. Graficando ecuaciones diferenciales en MATLAB Ejemplo 1, consideremos la
ecuacin diferencial: Solucin general en MATLAB: >> dsolve('Dy=2*x*y','x') ans =
C1*exp(x^2) Sabemos que esta constante C1 se determina usando una condicin
inicial para la ecuacin diferencial, por ejemplo y(0) = 5. Para resolver la ecuacin
diferencial con esta condicin inicial necesitamos el cdigo: >>
dsolve('Dy=2*x*y','y(0)=5','x') ans = 5*exp(x^2)
24. 24. Graficando ecuaciones diferenciales en MATLAB (cont.) Para graficar esta
solucin requerimos de un intervalo sobre el cual se graficar la solucin obtenida.
Por ejemplo, si deseamos graficar sobre el intervalo [2, 3] podemos hacer uso del
siguiente cdigo: >> x=-2:0.05:3; >> y=eval(vectorize(ans)); >> plot(x,y)
25. 25. Graficando ecuaciones diferenciales en MATLAB(cont.) Ejemplo 2,
consideremos la ecuacin diferencial: Solucin general en MATLAB: >>
dsolve('Dy=0.1*y-0.02*y^2','x') ans = -5/(exp(C1 - x/10) - 1) Sabemos que esta
constante C1 se determina usando una condicin inicial para la ecuacin
diferencial, por ejemplo y(0) = 0.01. Para resolver la ecuacin diferencial con esta
condicin inicial necesitamos el cdigo: >> dsolve('Dy=0.1*y-
0.02*y^2','y(0)=0.01','x') ans = 5/(exp(log(499) - x/10) + 1)
26. 26. Graficando ecuaciones diferenciales en MATLAB (cont.) Para graficar esta
solucin requerimos de un intervalo sobre el cual se graficar la solucin obtenida.
Por ejemplo, si deseamos graficar sobre el intervalo [0, 120] podemos hacer uso
del siguiente cdigo: >> x=0:1.5:120; >> y=eval(vectorize(ans)); >> plot(x,y)

También podría gustarte