Curso de Métodos Numéricos. Ecuaciones diferenciales...

37
Curso de M ´ etodos Num ´ ericos. Ecuaciones diferenciales ordinarias Curso: M´ etodos Num ´ ericos en Ingenier´ ıa Profesor: Dr. Jos´ e A. Otero Hern ´ andez Universidad: ITESM CEM Fecha: Lunes, 11 de noviembre de 2014

Transcript of Curso de Métodos Numéricos. Ecuaciones diferenciales...

Page 1: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 2: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 3: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 4: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 5: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 6: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 7: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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.

Page 8: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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.

Page 9: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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.

Page 10: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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.

Page 11: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Metodos de un paso

Metodo de Euler

Metodo de Heun

Page 12: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 13: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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.

Page 14: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Metodo de Euler

Page 15: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 16: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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 ’ )

Page 17: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 18: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Ejemplo

Soluci on ejemplo

Page 19: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Ejemplo

Soluci on ejemplo

Page 20: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 21: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 22: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 23: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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 )

Page 24: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 25: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 26: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 27: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 28: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Metodo de Heun

Page 29: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 30: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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 , ’ ∗ ’ )

Page 31: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 32: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

Introducci on Metodo de Euler Metodo de Heun Programa MATLAB

Ejemplo 2

Soluci on ejemplo 2

Page 33: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 34: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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 )

Page 35: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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

Page 36: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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 )

Page 37: Curso de Métodos Numéricos. Ecuaciones diferenciales ...metodosnumericoscem.weebly.com/.../mn_clase22_ecuaciones_difere… · Curso de Metodos Num´ ericos.´ Ecuaciones diferenciales

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