beamer-tu-logo
Ecuaciones diferenciales ordinarias
Curso: Metodos Numericos en IngenierıaProfesor: Dr. Jose A. Otero HernandezCorreo: [email protected]: http://metodosnumericoscem.weebly.comUniversidad: ITESM CEM
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Topicos
1 Introduccion
2 Metodo de EulerEjemploError de truncamiento del metodo de Euler
3 Metodo de HeunEjemplo 2
4 Programa MATLAB
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Topicos
1 Introduccion
2 Metodo de EulerEjemploError de truncamiento del metodo de Euler
3 Metodo de HeunEjemplo 2
4 Programa MATLAB
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Ecuaciones diferenciales ordinariasEn esta clase nos dedicaremos a la solucion de ecuacionesdiferenciales ordinarias de la forma:
dy
dx= f(x, y)
Anteriormente se utilizo un metodo numerico para resolver unaecuacion como la anterior (caso de la velocidad delparacaidista).En este caso se utilizo el metodo:Nuevo valor = valor anterior + pendiente × tamano
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Ecuaciones diferenciales ordinariasEn esta clase nos dedicaremos a la solucion de ecuacionesdiferenciales ordinarias de la forma:
dy
dx= f(x, y)
Anteriormente se utilizo un metodo numerico para resolver unaecuacion como la anterior (caso de la velocidad delparacaidista).En este caso se utilizo el metodo:Nuevo valor = valor anterior + pendiente × tamano
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Ecuaciones diferenciales ordinariasEn esta clase nos dedicaremos a la solucion de ecuacionesdiferenciales ordinarias de la forma:
dy
dx= f(x, y)
Anteriormente se utilizo un metodo numerico para resolver unaecuacion como la anterior (caso de la velocidad delparacaidista).En este caso se utilizo el metodo:Nuevo valor = valor anterior + pendiente × tamano
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Ecuaciones diferenciales ordinariasMatematicamente:
yi+1 = yi + φh
φ es la pendiente estimada. La pendiente estimada seutiliza para extrapolar desde el valor anterior yi = y(xi) aun nuevo valor yi+1 = y(xi+1) a una distancia h.Esta formula se aplica paso a paso para buscar los valoresde y posteriores.Todos los metodos de un paso que se expresen de estaforma se diferencian solamente por la manera en la que seestime la pendiente.
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Ecuaciones diferenciales ordinariasMatematicamente:
yi+1 = yi + φh
φ es la pendiente estimada. La pendiente estimada seutiliza para extrapolar desde el valor anterior yi = y(xi) aun nuevo valor yi+1 = y(xi+1) a una distancia h.Esta formula se aplica paso a paso para buscar los valoresde y posteriores.Todos los metodos de un paso que se expresen de estaforma se diferencian solamente por la manera en la que seestime la pendiente.
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Ecuaciones diferenciales ordinariasMatematicamente:
yi+1 = yi + φh
φ es la pendiente estimada. La pendiente estimada seutiliza para extrapolar desde el valor anterior yi = y(xi) aun nuevo valor yi+1 = y(xi+1) a una distancia h.Esta formula se aplica paso a paso para buscar los valoresde y posteriores.Todos los metodos de un paso que se expresen de estaforma se diferencian solamente por la manera en la que seestime la pendiente.
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Ecuaciones diferenciales ordinariasMatematicamente:
yi+1 = yi + φh
φ es la pendiente estimada. La pendiente estimada seutiliza para extrapolar desde el valor anterior yi = y(xi) aun nuevo valor yi+1 = y(xi+1) a una distancia h.Esta formula se aplica paso a paso para buscar los valoresde y posteriores.Todos los metodos de un paso que se expresen de estaforma se diferencian solamente por la manera en la que seestime la pendiente.
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Metodos de un pasoMetodo de EulerMetodo de Heun
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Topicos
1 Introduccion
2 Metodo de EulerEjemploError de truncamiento del metodo de Euler
3 Metodo de HeunEjemplo 2
4 Programa MATLAB
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Metodo de EulerDada la ecuacion diferencial:
dy
dx= f(x, y)
Se puede encontrar la solucion como:
yi+1 = yi + f(xi, yi)h
Esta formula se conoce como metodo de Euler.
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Metodo de Euler
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Ejemplo
EjemploCon el metodo de Euler resuelva numericamente la ecuacion:
dy
dx= −2x3 + 12x2 − 20x+ 8.5
desde x = 0 hasta x = 4 con un tamano de paso de 0.5. Lacondicion inicial en x = 0 es y = 1. Calcule el error relativoverdadero si se conoce que la solucion exacta es:
y = −0.5x4 + 4x3 − 10x2 + 8.5x+ 1
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Ejemplo
Solucion ejemplo
clear ; clc ;h =0 .5 ;x = [ 0 : h : 4 ] ;n= length ( x ) ;f =@( x , y ) −2∗xˆ3+12∗xˆ2−20∗x +8 .5 ;y exacto=@( x , y ) −0.5∗x ˆ4+4∗xˆ3−10∗x ˆ2+8.5∗ x +1;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;
ends a l i d a =[ x ’ y ’ ev ’ ] ;disp ( s a l i d a )fp lo t ( y exacto , [ 0 , 4 , 0 , 7 . 5 ] ) ;hold onplot ( x , y , ’ o ’ )
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Ejemplo
Solucion ejemplo
x y Er ro r0 1.0000 00.5000 5.2500 63.10681.0000 5.8750 95.83331.5000 5.1250 130.98592.0000 4.5000 125.00002.5000 4.7500 74.71263.0000 5.8750 46.87503.5000 7.1250 50.99344.0000 7.0000 133.3333
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Ejemplo
Solucion ejemplo
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Ejemplo
Solucion ejemplo
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Error de truncamiento del metodo de Euler
Error de truncamientoSerie de Taylor
yi+1 = yi + y′ih+
y′′i
2!h2 + · · ·
donde h = xi+1 − xi. Pero y′i = f(xi, yi), entonces:
yi+1 = yi + f(xi, yi)h+f
′(xi, yi)
2!h2 + · · ·
Error de truncamiento
εt =f
′(xi, yi)
2!h2
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Error de truncamiento del metodo de Euler
Error de truncamientoSerie de Taylor
yi+1 = yi + y′ih+
y′′i
2!h2 + · · ·
donde h = xi+1 − xi. Pero y′i = f(xi, yi), entonces:
yi+1 = yi + f(xi, yi)h+f
′(xi, yi)
2!h2 + · · ·
Error de truncamiento
εt =f
′(xi, yi)
2!h2
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Error de truncamiento del metodo de Euler
Error de truncamientoSerie de Taylor
yi+1 = yi + y′ih+
y′′i
2!h2 + · · ·
donde h = xi+1 − xi. Pero y′i = f(xi, yi), entonces:
yi+1 = yi + f(xi, yi)h+f
′(xi, yi)
2!h2 + · · ·
Error de truncamiento
εt =f
′(xi, yi)
2!h2
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Error de truncamiento del metodo de Euler
Solucion ejemplo
clear ; clc ;h =0 .5 ;x = [ 0 : h : 4 ] ;n= length ( x ) ;f =@( x , y ) −2∗xˆ3+12∗xˆ2−20∗x +8 .5 ;syms zfD=@( x , y ) double ( subs ( d i f f (−2∗zˆ3+12∗zˆ2−20∗z +8.5 , z ) , z , x
) ) ;y exacto=@( x , y ) −0.5∗x ˆ4+4∗xˆ3−10∗x ˆ2+8.5∗ x +1;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;e t ( i ) =fD ( x ( i −1) , y ( i −1) ) /2∗h ˆ 2 ;
ends a l i d a =[ x ( 2 : n ) ’ y ( 2 : n ) ’ ev ( 2 : n ) ’ e t ( 2 : n ) ’ ] ;disp ( s a l i d a )
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Error de truncamiento del metodo de Euler
Solucion ejemplo con h = 0.5
x y ErrorVer ErrorTrun0.5000 5.2500 63.1068 −2.50001.0000 5.8750 95.8333 −1.18751.5000 5.1250 130.9859 −0.25002.0000 4.5000 125.0000 0.31252.5000 4.7500 74.7126 0.50003.0000 5.8750 46.8750 0.31253.5000 7.1250 50.9934 −0.25004.0000 7.0000 133.3333 −1.1875
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Error de truncamiento del metodo de Euler
Solucion ejemplo con h = 0.25
x y ErrorVer ErrorTrun0.2500 3.1250 22.0442 −0.62500.5000 4.1797 29.8544 −0.44920.7500 4.4922 36.9863 −0.29691.0000 4.3438 44.7917 −0.16801.2500 3.9688 53.1274 −0.06251.5000 3.5547 60.2113 0.01951.7500 3.2422 62.2678 0.07812.0000 3.1250 56.2500 0.11332.2500 3.2500 44.5699 0.12502.5000 3.6172 33.0460 0.11332.7500 4.1797 25.0731 0.07813.0000 4.8438 21.0938 0.01953.2500 5.4688 20.7417 −0.06253.5000 5.8672 24.3377 −0.16803.7500 5.8047 34.6624 −0.29694.0000 5.0000 66.6667 −0.4492
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Topicos
1 Introduccion
2 Metodo de EulerEjemploError de truncamiento del metodo de Euler
3 Metodo de HeunEjemplo 2
4 Programa MATLAB
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Metodo de HeunDada la ecuacion diferencial:
dy
dx= f(x, y)
Se puede encontrar la solucion como:
y0i+1 = yi + f(xi, yi)h
yi+1 = yi +f(xi, yi) + f(xi+1, y
0i+1)
2h
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Metodo de Heun
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Ejemplo 2
Ejemplo 2Con el metodo de Heun resuelva numericamente la ecuacion:
dy
dx= −2x3 + 12x2 − 20x+ 8.5
desde x = 0 hasta x = 4 con un tamano de paso de 0.5. Lacondicion inicial en x = 0 es y = 1. Calcule el error relativoverdadero si se conoce que la solucion exacta es:
y = −0.5x4 + 4x3 − 10x2 + 8.5x+ 1
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Ejemplo 2
Solucion ejemplo 2
clear ; clc ;h =0 .5 ;x = [ 0 : h : 4 ] ;n= length ( x ) ;f =@( x , y ) −2∗xˆ3+12∗xˆ2−20∗x +8 .5 ;y exacto=@( x , y ) −0.5∗x ˆ4+4∗xˆ3−10∗x ˆ2+8.5∗ x +1;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;
ends a l i d a =[ x ’ y ’ ev ’ ] ;disp ( s a l i d a )fp lo t ( y exacto , [ 0 , 4 , 0 , 7 . 5 ] ) ;hold onplot ( x , y , ’ ∗ ’ )
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Ejemplo 2
Solucion ejemplo 2
x y ErrorVerd0 1.0000 00.5000 3.4375 6.79611.0000 3.3750 12.50001.5000 2.6875 21.12682.0000 2.5000 25.00002.5000 3.1875 17.24143.0000 4.3750 9.37503.5000 4.9375 4.63584.0000 3.0000 0
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Ejemplo 2
Solucion ejemplo 2
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Topicos
1 Introduccion
2 Metodo de EulerEjemploError de truncamiento del metodo de Euler
3 Metodo de HeunEjemplo 2
4 Programa MATLAB
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Metodo de Euler
function edoeuler v2 ( f , x0 , xf , y0 , h )x =[ x0 : h : x f ] ’ ; n = length ( x ) ;i f x ( n )<x f
x ( n+1) = x f ;n = n+1;
endy = y0∗ones ( n , 1 ) ;for i = 1 :n−1y ( i +1) = y ( i ) + f ( x ( i ) , y ( i ) ) ∗ ( x ( i +1)−x ( i ) ) ;ends a l i d a =[ x y ] ;disp ( s a l i d a )
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Solucion ejemplo
x y0 1.00000.5000 5.25001.0000 5.87501.5000 5.12502.0000 4.50002.5000 4.75003.0000 5.87503.5000 7.12504.0000 7.0000
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Metodo de Heun
function edoheun v2 ( f , x0 , xf , y0 , h )x =[ x0 : h : x f ] ’ ; n = length ( x ) ;i f x ( n )<x f
x ( n+1) = x f ;n = n+1;
endy = 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 ) ) ;ends a l i d a =[ x y ] ;disp ( s a l i d a )
beamer-tu-logo
Introduccion Metodo de Euler Metodo de Heun Programa MATLAB
Solucion ejemplo
x y0 1.00000.5000 3.43751.0000 3.37501.5000 2.68752.0000 2.50002.5000 3.18753.0000 4.37503.5000 4.93754.0000 3.0000