curso de métodos numéricos. ecuaciones diferenciales...

Post on 30-Mar-2018

227 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Curso de M etodos Num ericos.Ecuaciones diferenciales ordinarias

Curso : Metodos Numericos en Ingenierıa

Profesor : Dr. Jose A. Otero Hernandez

Universidad : ITESM CEM

Fecha : Lunes, 11 de noviembre de 2014

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Topicos

1 Introducci on

2 Metodo de EulerEjemploError de truncamiento del metodo de Euler

3 Metodo de HeunEjemplo 2

4 Programa MATLAB

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Topicos

1 Introducci on

2 Metodo de EulerEjemploError de truncamiento del metodo de Euler

3 Metodo de HeunEjemplo 2

4 Programa MATLAB

Introducci on 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

Introducci on 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

Introducci on 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

Introducci on 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.

Introducci on 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.

Introducci on 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.

Introducci on 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.

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Metodos de un paso

Metodo de Euler

Metodo de Heun

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Topicos

1 Introducci on

2 Metodo de EulerEjemploError de truncamiento del metodo de Euler

3 Metodo de HeunEjemplo 2

4 Programa MATLAB

Introducci on 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.

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Metodo de Euler

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Ejemplo

Ejemplo

Con 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

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Ejemplo

Soluci on ejemplo

c lear ; 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;fo r 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 )ezp lo t ( y exacto , [ 0 , 4 , 0 , 7 . 5 ] ) ;hold onplo t ( x , y , ’ o ’ )

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Ejemplo

Soluci on 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

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Ejemplo

Soluci on ejemplo

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Ejemplo

Soluci on ejemplo

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Error de truncamiento del m etodo 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

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Error de truncamiento del m etodo 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

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Error de truncamiento del m etodo 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

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Error de truncamiento del m etodo de Euler

Soluci on ejemplo

c lear ; 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;fo r 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 )

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Error de truncamiento del m etodo de Euler

Soluci on 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

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Error de truncamiento del m etodo de Euler

Soluci on 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

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Topicos

1 Introducci on

2 Metodo de EulerEjemploError de truncamiento del metodo de Euler

3 Metodo de HeunEjemplo 2

4 Programa MATLAB

Introducci on 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

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Metodo de Heun

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Ejemplo 2

Ejemplo 2

Con 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

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Ejemplo 2

Soluci on ejemplo 2

c lear ; 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;fo r 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 )% ezp lo t ( y exacto , [ 0 , 4 , 0 , 7 . 5 ] ) ;% hold onplo t ( x , y , ’ ∗ ’ )

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Ejemplo 2

Soluci on 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

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Ejemplo 2

Soluci on ejemplo 2

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Topicos

1 Introducci on

2 Metodo de EulerEjemploError de truncamiento del metodo de Euler

3 Metodo de HeunEjemplo 2

4 Programa MATLAB

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Metodo de Euler

funct ion 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;

endy = y0∗ones ( n , 1 ) ;fo r i = 1 : n−1y ( i +1) = y ( i ) + f ( x ( i ) , y ( i ) ) ∗ ( x ( i +1)−x ( i ) ) ;endfD= i n l i n e ( d i f f ( sym(F) ) , ’ x ’ , ’ y ’ ) ;fo r i i =1:n

e t ( i i ) =fD ( x ( i i ) , y ( i i ) ) /2∗hˆ2ends a l i d a =[ x y et ’ ] ;disp ( s a l i d a )

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Soluci on 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

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Metodo de Heun

funct ion 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;

endy = y0∗ones ( n , 1 ) ;fo r 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 )

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Soluci on 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

top related