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
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
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
4
Gráficamente
Análisis Numérico y Programación
Primavera 2009
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
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
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
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
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
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
11
Predictor-corrector
Corrector
Ecuaciones
hyxfyxfyy iiiiii 2
),(),( 011
1++
++
+=
hyxfyy iiii ),(01 +=+
Predictor
Análisis Numérico y Programación
Primavera 2009
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
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
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
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
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
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
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
19
Comparación de métodos RK de segundoorden con Euler
Polinomio
Análisis Numérico y Programación
Primavera 2009
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
21
Interpretación geométrica
Análisis Numérico y Programación
Primavera 2009
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
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
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
25
Para resolver numéricamenteecuaciones diferenciales
Resumen
Análisis Numérico y Programación
Primavera 2009
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
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
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
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
Top Related