Curso de Métodos Numéricos. Ecuaciones diferenciales ordinarias Curso: Métodos Numéricos en Ingeniería Profesor: Dr. José A. Otero Hernández Universidad: ITESM CEM Fecha: Lunes, 11 de noviembre de 2014
Tópicos 1 Introducción 2 Método de Euler Ejemplo Error de truncamiento del método de Euler 3 Método de Heun Ejemplo 2 4 Programa MATLAB
Tópicos 1 Introducción 2 Método de Euler Ejemplo Error de truncamiento del método de Euler 3 Método de Heun Ejemplo 2 4 Programa MATLAB
Ecuaciones diferenciales ordinarias En esta clase nos dedicaremos a la solución de ecuaciones diferenciales ordinarias de la forma: dy = f(x, y) dx Anteriormente se utilizó un método numérico para resolver una ecuación como la anterior (caso de la velocidad del paracaidista). En este caso se utilizo el método: Nuevo valor = valor anterior + pendiente tamaño
Ecuaciones diferenciales ordinarias En esta clase nos dedicaremos a la solución de ecuaciones diferenciales ordinarias de la forma: dy = f(x, y) dx Anteriormente se utilizó un método numérico para resolver una ecuación como la anterior (caso de la velocidad del paracaidista). En este caso se utilizo el método: Nuevo valor = valor anterior + pendiente tamaño
Ecuaciones diferenciales ordinarias En esta clase nos dedicaremos a la solución de ecuaciones diferenciales ordinarias de la forma: dy = f(x, y) dx Anteriormente se utilizó un método numérico para resolver una ecuación como la anterior (caso de la velocidad del paracaidista). En este caso se utilizo el método: Nuevo valor = valor anterior + pendiente tamaño
Ecuaciones diferenciales ordinarias Matemáticamente: y i+1 = y i + φh φ es la pendiente estimada. La pendiente estimada se utiliza para extrapolar desde el valor anterior y i = y(x i ) a un nuevo valor y i+1 = y(x i+1 ) a una distancia h. Esta fórmula se aplica paso a paso para buscar los valores de y posteriores. Todos los métodos de un paso que se expresen de esta forma se diferencian solamente por la manera en la que se estime la pendiente.
Ecuaciones diferenciales ordinarias Matemáticamente: y i+1 = y i + φh φ es la pendiente estimada. La pendiente estimada se utiliza para extrapolar desde el valor anterior y i = y(x i ) a un nuevo valor y i+1 = y(x i+1 ) a una distancia h. Esta fórmula se aplica paso a paso para buscar los valores de y posteriores. Todos los métodos de un paso que se expresen de esta forma se diferencian solamente por la manera en la que se estime la pendiente.
Ecuaciones diferenciales ordinarias Matemáticamente: y i+1 = y i + φh φ es la pendiente estimada. La pendiente estimada se utiliza para extrapolar desde el valor anterior y i = y(x i ) a un nuevo valor y i+1 = y(x i+1 ) a una distancia h. Esta fórmula se aplica paso a paso para buscar los valores de y posteriores. Todos los métodos de un paso que se expresen de esta forma se diferencian solamente por la manera en la que se estime la pendiente.
Ecuaciones diferenciales ordinarias Matemáticamente: y i+1 = y i + φh φ es la pendiente estimada. La pendiente estimada se utiliza para extrapolar desde el valor anterior y i = y(x i ) a un nuevo valor y i+1 = y(x i+1 ) a una distancia h. Esta fórmula se aplica paso a paso para buscar los valores de y posteriores. Todos los métodos de un paso que se expresen de esta forma se diferencian solamente por la manera en la que se estime la pendiente.
Métodos de un paso Método de Euler Método de Heun
Tópicos 1 Introducción 2 Método de Euler Ejemplo Error de truncamiento del método de Euler 3 Método de Heun Ejemplo 2 4 Programa MATLAB
Método de Euler Dada la ecuación diferencial: dy = f(x, y) dx Se puede encontrar la solución como: y i+1 = y i + f(x i, y i ) h Esta fórmula se conoce como método de Euler.
Método de Euler
Ejemplo Ejemplo Con el método de Euler resuelva numéricamente la ecuación: dy dx = 2x3 + 12x 2 20x + 8.5 desde x = 0 hasta x = 4 con un tamaño de paso de 0.5. La condición inicial en x = 0 es y = 1. Calcule el error relativo verdadero si se conoce que la solución exacta es: y = 0.5x 4 + 4x 3 10x 2 + 8.5x + 1
Ejemplo Solución ejemplo clear ; clc ; h =0.5; x = [ 0 : h : 4 ] ; n=length ( x ) ; f = i n l i n e ( 2 xˆ3+12 xˆ2 20 x +8.5, x, y ) ; y exacto= i n l i n e ( 0.5 x ˆ4+4 xˆ3 10 x ˆ2+8.5 x+1, x ) ; y ( 1 ) =1; ev ( 1 ) =abs ( y ( 1 ) y exacto ( x ( 1 ) ) ) / y exacto ( x ( 1 ) ) 100; for i =2:n y ( i ) =y ( i 1)+ f ( x ( i 1), y ( i 1) ) h ; ev ( i ) =abs ( y ( i ) y exacto ( x ( i ) ) ) / y exacto ( x ( i ) ) 100; end s a l i d a =[ x y ev ] ; disp ( s a l i d a ) e z p l o t ( y exacto, [ 0, 4, 0, 7. 5 ] ) ; hold on plot ( x, y, o )
Ejemplo Solución ejemplo x y E r r o r 0 1. 0000 0 0. 5000 5. 2500 63.1068 1. 0000 5. 8750 95.8333 1. 5000 5. 1250 130.9859 2. 0000 4. 5000 125.0000 2. 5000 4. 7500 74.7126 3. 0000 5. 8750 46.8750 3. 5000 7. 1250 50.9934 4. 0000 7. 0000 133.3333
Ejemplo Solución ejemplo
Ejemplo Solución ejemplo
Error de truncamiento del método de Euler Error de truncamiento Serie de Taylor y i+1 = y i + y ih + y i 2! h2 + donde h = x i+1 x i. Pero y i = f(x i, y i ), entonces: y i+1 = y i + f(x i, y i )h + f (x i, y i ) h 2 + 2! Error de truncamiento ε t = f (x i, y i ) h 2 2!
Error de truncamiento del método de Euler Error de truncamiento Serie de Taylor y i+1 = y i + y ih + y i 2! h2 + donde h = x i+1 x i. Pero y i = f(x i, y i ), entonces: y i+1 = y i + f(x i, y i )h + f (x i, y i ) h 2 + 2! Error de truncamiento ε t = f (x i, y i ) h 2 2!
Error de truncamiento del método de Euler Error de truncamiento Serie de Taylor y i+1 = y i + y ih + y i 2! h2 + donde h = x i+1 x i. Pero y i = f(x i, y i ), entonces: y i+1 = y i + f(x i, y i )h + f (x i, y i ) h 2 + 2! Error de truncamiento ε t = f (x i, y i ) h 2 2!
Error de truncamiento del método de Euler Solución ejemplo clear ; clc ; h =0.5; x = [ 0 : h : 4 ] ; n=length ( x ) ; f = i n l i n e ( 2 xˆ3+12 xˆ2 20 x +8.5, x, y ) fd= i n l i n e ( d i f f ( sym ( 2 xˆ3+12 xˆ2 20 x +8.5 ) ), x, y ) ; y exacto= i n l i n e ( 0.5 x ˆ4+4 xˆ3 10 x ˆ2+8.5 x+1, x ) ; y ( 1 ) =1; for i =2:n y ( i ) =y ( i 1)+ f ( x ( i 1), y ( i 1) ) h ; ev ( i ) =abs ( y ( i ) y exacto ( x ( i ) ) ) / y exacto ( x ( i ) ) 100; et ( i ) =fd ( x ( i 1), y ( i 1) ) /2 h ˆ 2 ; end s a l i d a =[ x ( 2 : n ) y ( 2 : n ) ev ( 2 : n ) et ( 2 : n ) ] ; disp ( s a l i d a )
Error de truncamiento del método de Euler Solución ejemplo con h = 0.5 x y ErrorVer ErrorTrun 0. 5000 5. 2500 63. 1068 2.5000 1. 0000 5. 8750 95. 8333 1.1875 1. 5000 5. 1250 130. 9859 0.2500 2. 0000 4. 5000 125. 0000 0.3125 2. 5000 4. 7500 74. 7126 0.5000 3. 0000 5. 8750 46. 8750 0.3125 3. 5000 7. 1250 50. 9934 0.2500 4. 0000 7. 0000 133. 3333 1.1875
Error de truncamiento del método de Euler Solución ejemplo con h = 0.25 x y ErrorVer ErrorTrun 0. 2500 3. 1250 22. 0442 0.6250 0. 5000 4. 1797 29. 8544 0.4492 0. 7500 4. 4922 36. 9863 0.2969 1. 0000 4. 3438 44. 7917 0.1680 1. 2500 3. 9688 53. 1274 0.0625 1. 5000 3. 5547 60. 2113 0.0195 1. 7500 3. 2422 62. 2678 0.0781 2. 0000 3. 1250 56. 2500 0.1133 2. 2500 3. 2500 44. 5699 0.1250 2. 5000 3. 6172 33. 0460 0.1133 2. 7500 4. 1797 25. 0731 0.0781 3. 0000 4. 8438 21. 0938 0.0195 3. 2500 5. 4688 20. 7417 0.0625 3. 5000 5. 8672 24. 3377 0.1680 3. 7500 5. 8047 34. 6624 0.2969 4. 0000 5. 0000 66. 6667 0.4492
Tópicos 1 Introducción 2 Método de Euler Ejemplo Error de truncamiento del método de Euler 3 Método de Heun Ejemplo 2 4 Programa MATLAB
Método de Heun Dada la ecuación diferencial: dy = f(x, y) dx Se puede encontrar la solución como: y 0 i+1 = y i + f(x i, y i ) h y i+1 = y i + f(x i, y i ) + f(x i+1, y 0 i+1 ) 2 h
Método de Heun
Ejemplo 2 Ejemplo 2 Con el método de Heun resuelva numéricamente la ecuación: dy dx = 2x3 + 12x 2 20x + 8.5 desde x = 0 hasta x = 4 con un tamaño de paso de 0.5. La condición inicial en x = 0 es y = 1. Calcule el error relativo verdadero si se conoce que la solución exacta es: y = 0.5x 4 + 4x 3 10x 2 + 8.5x + 1
Ejemplo 2 Solución ejemplo 2 clear ; clc ; h =0.5; x = [ 0 : h : 4 ] ; n=length ( x ) ; f = i n l i n e ( 2 xˆ3+12 xˆ2 20 x +8.5, x, y ) ; y exacto= i n l i n e ( 0.5 x ˆ4+4 xˆ3 10 x ˆ2+8.5 x+1, x ) ; y ( 1 ) =1; ev ( 1 ) =abs ( y ( 1 ) y exacto ( x ( 1 ) ) ) / y exacto ( x ( 1 ) ) 100; for i =2:n y0 ( i ) =y ( i 1)+ f ( x ( i 1), y ( i 1) ) h ; y ( i ) =y ( i 1)+( f ( x ( i 1), y ( i 1) ) + f ( x ( i ), y0 ( i ) ) ) /2 h ; ev ( i ) =abs ( y ( i ) y exacto ( x ( i ) ) ) / y exacto ( x ( i ) ) 100; end s a l i d a =[ x y ev ] ; disp ( s a l i d a ) % e z p l o t ( y exacto, [ 0, 4, 0, 7. 5 ] ) ; % hold on plot ( x, y, )
Ejemplo 2 Solución ejemplo 2 x y ErrorVerd 0 1. 0000 0 0. 5000 3. 4375 6.7961 1. 0000 3. 3750 12.5000 1. 5000 2. 6875 21.1268 2. 0000 2. 5000 25.0000 2. 5000 3. 1875 17.2414 3. 0000 4. 3750 9.3750 3. 5000 4. 9375 4.6358 4. 0000 3. 0000 0
Ejemplo 2 Solución ejemplo 2
Tópicos 1 Introducción 2 Método de Euler Ejemplo Error de truncamiento del método de Euler 3 Método de Heun Ejemplo 2 4 Programa MATLAB
Método de Euler function edoeuler ( F, x0, xf, y0, h ) f = i n l i n e ( F, x, y ) ; x =[ x0 : h : x f ] ; n = length ( x ) ; i f x ( n )<x f x ( n+1) = x f ; n = n+1; end y = y0 ones ( n, 1 ) ; for i = 1 : n 1 y ( i +1) = y ( i ) + f ( x ( i ), y ( i ) ) ( x ( i +1) x ( i ) ) ; end fd= i n l i n e ( d i f f ( sym ( F ) ), x, y ) ; for i i =1:n et ( i i ) =fd ( x ( i i ), y ( i i ) ) /2 h ˆ2 end s a l i d a =[ x y et ] ; disp ( s a l i d a )
Solución ejemplo x y 0 1.0000 0. 5000 5.2500 1. 0000 5.8750 1. 5000 5.1250 2. 0000 4.5000 2. 5000 4.7500 3. 0000 5.8750 3. 5000 7.1250 4. 0000 7.0000
Método de Heun function edoheun ( F, x0, xf, y0, h ) f = i n l i n e ( F, x, y ) ; x =[ x0 : h : x f ] ; n = length ( x ) ; i f x ( n )<x f x ( n+1) = x f ; n = n+1; end y = y0 ones ( n, 1 ) ; for i = 1 : n 1 y00 ( i +1)=y ( i ) + f ( x ( i ), y ( i ) ) ( x ( i +1) x ( i ) ) ; y ( i +1) = y ( i ) + ( f ( x ( i ), y ( i ) ) + f ( x ( i +1), y00 ( i +1) ) ) / 2 ( x ( i +1) x ( i ) ) ; end s a l i d a =[ x y ] ; disp ( s a l i d a )
Solución ejemplo x y 0 1.0000 0. 5000 3.4375 1. 0000 3.3750 1. 5000 2.6875 2. 0000 2.5000 2. 5000 3.1875 3. 0000 4.3750 3. 5000 4.9375 4. 0000 3.0000