Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales...

29
1 Unidad Unidad V V Ecuaciones Ecuaciones Diferenciales Diferenciales Ordinarias Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del punto medio o del polígono - Métodos de Runge-Kutta LMM Análisis Numérico y Programación Primavera 2009

Transcript of Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales...

Page 1: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

1

UnidadUnidad VVEcuacionesEcuaciones DiferencialesDiferenciales

OrdinariasOrdinariasMétodos de un paso

- Método de Euler- Método de Heun

- Método del punto medio o del polígono- Métodos de Runge-Kutta

LMM

Análisis Numérico y Programación

Primavera 2009

Page 2: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

2

DerivaciDerivacióónn

xxfxxf

xy

Δ−Δ+

=ΔΔ )()(

Derivada: razón de cambio de una variable dependiente(y) con respecto a una variable independiente (x)

Razón de incrementos

Si y = f(x)

xxfxxf

dxdy

x Δ−Δ+

=→Δ

)()(lim0

La derivada es un límite

Análisis Numérico y Programación

Primavera 2009

Page 3: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

3

Planteamiento del problema

• La incógnita es unafunción y=y(x) tal que

f(x,y) dada),( yxf

dxdy

=

hyy ii φ+=+1La solución dada por

Estamos extrapolando de un valor anterior a un nuevo valor que está a una distancia h

Todos los métodos de un paso solo difieren en la forma en que se calcule f, la pendiente

Análisis Numérico y Programación

Primavera 2009

Page 4: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

4

Gráficamente

Análisis Numérico y Programación

Primavera 2009

Page 5: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

5

Método de Euler

• La pendiente es la primera derivada

),( ii yxf=φ

hyxfyy iiii ),(1 +=+entonces

Análisis Numérico y Programación

Primavera 2009

Page 6: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

6

ErroresErroresDos tipos1. Truncamiento, originado por el método2. Redondeo: causado por el número limitado de

cifras significativas en la computadora.Si escribimos la solución como serie de Taylor

nnn

iiii Rhyn

hyhyyy i +++′′+′+=+)(2

1 !1...

!21

nn

iin

iiiiii Rhyxfn

hyxfhyxfyy +++′++= −+ ),(

!1...),(

!21),( )1(2

1

De acuerdo a la ecuación diferencial, y’=f(x,y)

Análisis Numérico y Programación

Primavera 2009

Page 7: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

7

Error de Error de truncamientotruncamiento locallocal

Si h suficientemente pequeña, los errores normalmentedisminuyen de modo que podemos escribir

)(...),(!2

1 12 +++′= niit hOhyxfE

2),(!2

1 hyxfE iia ′=

En el método de Euler, solo incluimos los dos primeros términos de modo que el error de truncamiento

Error de truncamientolocal aproximado

Al disminuir h, disminuimos error de truncamiento

Análisis Numérico y Programación

Primavera 2009

Page 8: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

8

ProgramaHaga un programa en el que• h pueda tener un valor pequeño pero que los datos de

salida tengan un espaciamiento diferente.• El punto final sea arbitrario, es decir, la longitud del intervalo

donde se calcula la solución no tiene que ser múltiplo de h.• Escriba los resultados en un archivo.• Los datos de entrada sean la condición inicial, h, el

espaciamiento entre datos de salida de la variable independiente y el punto final del intervalo donde se calculala solución.

• Verifique resultados con f(x,y)= -2x3+12x2-20x+5.5 y condición inicial y(0)=1.

(euler.for)

x0 xf

h

X XX XX

xout

h < xout

Análisis Numérico y Programación

Primavera 2009

Page 9: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

9

Método de HeunEn Euler usamos la pendiente al

inicio del intervalo),(

,ii

yxi yxf

dxdyy

ii

==

hyxfyy iiii ),(01 +=+

Y extrapolamos linealmente para obtener

Predictor: estimaciónde la solución

),( 011 ++ =′ iii yxfyLo usamos para estimar

pendiente al final del intervalo

Promediamos estas pendientes

2),(),(

2

011 ++ +

=′+′

=′ iiiiii yxfyxfyyy

Análisis Numérico y Programación

Primavera 2009

Page 10: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

10

La pendiente

%100||1

111

ji

ji

ji

t yyy

+

−++ −

Corrector

Pendiente f

El método de Heun es un procedimiento predictor-corrector. Es iterativo y el error de truncamiento –que puede usarse como criterio de terminación- se calcula con

Sustitiumos en Euler

hyxfyxfyy iiiiii 2

),(),( 01

1+

++

+=

Análisis Numérico y Programación

Primavera 2009

Page 11: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

11

Predictor-corrector

Corrector

Ecuaciones

hyxfyxfyy iiiiii 2

),(),( 011

1++

++

+=

hyxfyy iiii ),(01 +=+

Predictor

Análisis Numérico y Programación

Primavera 2009

Page 12: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

12

Ejemplo• Use el método de Heun para integrar desde x=0 hasta

x=4, con h=1 y condición inicial y(0)=2.

• Compare sus resultados con la solución exacta y(1)=6.1946314

yey x 5.04 8.0 −=′

xxx eeey 5.05.08.0 2)(3.1

4+−=

Análisis Numérico y Programación

Primavera 2009

Page 13: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

13

Ejemplo1. Evaluamos pendiente en (x0,y0) usando ecuación diferencial :

y’0 =32. Usando el predictor, estimamos y(1): y0

1=5 (hasta aquí sifuera solo Euler)

3. Con este ultimo, evaluamos pendiente al final del intervalo

4. Obtenemos pendiente promedio y’=4.7010825. Sustituimos en corrector y=6.701082 con error relativo 8,18%6. Iteración: usando este resultado regresamos al paso 3

con error 1.31%, así sucesivamente.

402164.6)5(5.04),( )1(8.001 =−==′ eyxfy ii

275811.6)701082.6(5.04),( )1(8.001 =−==′ eyxfy ii

Análisis Numérico y Programación

Primavera 2009

Page 14: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

14

ProgramaA partir del programa que utiliza el método de

Euler, haga un programa que basado en el método de Heun

1. Con datos de entrada h, etc.2. El error estimado (es=0.01) y el número

máximo de iteraciones (itermax=20) se consideran fijos. Si desea que sean datos de entrada, haga las modificacionescorrespondientes en las subrutinas.

(heun.for)

Análisis Numérico y Programación

Primavera 2009

Page 15: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

15

Método del punto medio

• Otra aproximación a la pendiente

hyy ii φ+=+1

Sustituimos

Con el método de Euler obtenemos un valor de y en el punto medio del intervalo

2/),(2/1 hyxfyy iiii +=+

Con este valor calculamos pendiente en punto medio usando ecuacióndiferencial ),( 2/12/12/1 +++ =′ iii yxfy

hyxfyy iiii ),( 2/12/11 +++ +=(punto_medio.for)

Análisis Numérico y Programación

Primavera 2009

Page 16: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

16

Observaciones

• El método de Heun está relacionado con la regla del trapecio

• El método del punto medio con la aproximación de la integral como el producto del ancho del intervalo por el valor de la función en el punto medio del intervalo. El error local (en cada punto) esO(h3) y el global es O(h4).

Análisis Numérico y Programación

Primavera 2009

Page 17: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

17

MMéétodostodos de de RungeRunge--KuttaKutta (RK)(RK)

• Tan exactos como los basados en serie de Taylor pero sin derivadas de orden superior.

• Forma generalizada de la ecuación queincluye la pendiente

hyxyy iiii ),(1 φ+=+

nnii kakakayx +++= ...),( 2211φ

Donde la función incremento

Análisis Numérico y Programación

Primavera 2009

Page 18: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

18

OrdenOrden de los de los MMéétodostodos RKRK• Las constantes k

)...,(...

),(),(

),(

11,122,111,11

22222

11112

1

hkqhkqhkqyhpxfk

hkqyhpxfkhkqyhpxfk

yxfk

nnnnninin

ii

ii

ii

−−−−−− +++++=

++=++=

=

Son relaciones de recurrencia (para encontrar la siguienterecurrimos a las anteriores), donde las p y las q son constantes.

n=1 Método de EulerDado n se evalúan las p, q igualando la ecuación de la pendiente a la serie de Taylor.n: el número de términos y orden de aproximación por lo general.

Análisis Numérico y Programación

Primavera 2009

Page 19: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

19

Comparación de métodos RK de segundoorden con Euler

Polinomio

Análisis Numérico y Programación

Primavera 2009

Page 20: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

20

MMéétodotodo ClCláásicosico de de cuartocuarto ordenorden• Es el más popular• Varias versiones, ésta es la clásica• Similar a la regla de Simpson 1/3• Similitud con el método de Heun: promedio de

estimaciones (las ks) de pendientes

hkkkkyy ii *)22(61

43211 ++++=+

),(),(),(

),(

34

221

21

3

121

21

2

1

hkyhxfkhkyhxfkhkyhxfk

yxfk

ii

ii

ii

ii

++=

++=

++==

Análisis Numérico y Programación

Primavera 2009

Page 21: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

21

Interpretación geométrica

Análisis Numérico y Programación

Primavera 2009

Page 22: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

22

EjerciciosEjercicios

• Resuelva las funciones anteriores usando el método de Runge-Kutta de cuarto orden con los mismos datos de entrada anteriores.

• Compare con los valores exactosa) Note que para el polinomio se obtiene el valor

exacto, pues la solución verdadera es un polinomio de cuarto orden

b) En el caso de la exponencial, el valor es muyaproximado a la solución verdadera.

Use el programa rk4.for para verificar susresultados.

Análisis Numérico y Programación

Primavera 2009

Page 23: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

23

ComprobaciComprobacióónnComprobamos calculando la derivada de la solución y, la

cual debe coincidir con f(x,y),• Una vez resuelta la ED con algun método, utilice el

archivo de salida (columnas x,y) como datos de entradadel programa derivada_altax.for, el cual calcula la primera derivada numéricamente con alta exactitud.

• En un archivo Excel, importe los datos de salida (x,y) calculados con el programa de ecuaciones diferenciales. En una columna, calcule f(x,y) con estos datos y grafíquelos. Note que éste será un cálculo aproximadopues y fue calculada con algun método aproximado, pero lo llamaremos el cálculo analítico.

• Importe los datos resultantes de la derivada numérica, éstos se grafican para comparar con el cálculo analíticode f(x,y). Deben coincidir.

Análisis Numérico y Programación

Primavera 2009

Page 24: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

24

ComparaciComparacióónn de la de la eexactitudxactitud de los de los mméétodostodos: : error error relativorelativo porcentualporcentual vs.vs.

trabajotrabajo computacionalcomputacional

Para el mismo trabajocomputacional, Runge-Kutta (RK) da menoreserrores que Euler y Heun. A medida que aumentael orden de RK, disminuye el error.Nota: Butcher es RK-5

Análisis Numérico y Programación

Primavera 2009

Page 25: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

25

Para resolver numéricamenteecuaciones diferenciales

Resumen

Análisis Numérico y Programación

Primavera 2009

Page 26: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

26

PlanteamientoPlanteamiento del del problemaproblema quequeinvolucrainvolucra unauna ecuaciecuacióónn diferencialdiferencial

• Escribir la ecuación diferencial (ED), la condicion inicialy el intervalo donde se evaluará la solución

• Identificar variables dependiente e independiente• Escribir la ecuación diferencial en la forma (verificar

unidades)

),( yxfdxdy

=Aquí y es la variable dependiente x la independiente

00 )( yxy = Condición inicial

Análisis Numérico y Programación

Primavera 2009

Page 27: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

27

Correr el programa1. Dar y02. Dar x03. Dar extremo derecho del intervalo en que se calculará en la

solución (xf)4. Dar paso de cálculo (h) Elegir valor tal que sea al menos 10% del

intervalo, recomendable 1%5. Dar paso de salida de datos. Elegir tal que se obtengan del orden

de 20 datos

Los resultados están en el archivo en forma de tablax y(x)

Puede graficarlos o anotarlos en forma de tabla

x0 xf

hX XX XX h < xout

xout

00 )( yxy =

Análisis Numérico y Programación

Primavera 2009

Page 28: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

28

PasosPasos parapara solucisolucióónn numnumééricarica

Elegir un método y modificar el programacorrespondiente

Definir la funcion f(x,y) en la function funcion.

* IMPORTANTE: RECUERDE QUE X ES LA VARIABLE INDEPENDIENTE, Y LA DEPENDIENTE

si es el caso:• modificar parámetros del cálculo como es, itermax, etc• modificar nombre del archivo de salida

Análisis Numérico y Programación

Primavera 2009

Page 29: Unidad V Ecuaciones Diferenciales Ordinariaslilia/numerico/V_ecsdif.pdf · Ecuaciones Diferenciales Ordinarias Métodos de un paso - Método de Euler - Método de Heun - Método del

29

Para comprobar resultado• Resolvemos ED con rk4.for (cambiar función f(x,y))Obtenemos archivo (datosy.dat) con tabla de datos x y(x)

Calculamos derivada de yUsamos programa derivada_altax.forArchivo de entrada : datosy.datArchivo de salida : derivada.dat

En Excel, colocamos en columnasa) datos x, y (datosy.dat), b) derivada (derivada.dat)c) Calculamos f(x,y) con los datos de a) De modo que tenemos una tablax y(x) dy/dx f(x,y)

dy/dx debe ser igual a f(x,y)

),( yxfdxdy

=

Análisis Numérico y Programación

Primavera 2009