análisis numérico para ingeniería - fi.mdp.edu.ar · una ecuación diferencial ordinaria, ... x...
TRANSCRIPT
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 2
Introducción
Problemas de Valores Iniciales
Método de la Serie de Taylor
Método de Euler Simple
Método de Euler Modificado
Métodos de Runge-Kutta de orden superior
Ecuaciones Diferenciales Ordinarias
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 3
Cuál es el problema a resolver ?
Se sabe que la derivada de una función desconocida está representada por una determinada expresión.
Sólo se conoce el valor de dicha función desconocida y(x), en un punto determinado.
Hallar los valores de una determinada función y(x) desconocida.
Datos:
x
1
P(x,y)
y(x) = ?y
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 4
Ejemplo:
Datos del Problema:
dy (x)dx
=x∗y13
x0=1y0= y (x0)=1
Valores Iniciales
Ecuación Diferencial
x
1
P(x,y)
y(x) = ?y
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 5
Ecuación Diferencial OrdinariaUna ecuación diferencial ordinaria, es una ecuación que contiene derivadas con respecto a una sola variable independiente.
Muchos problemas de Ingeniería se modelan con Ecuaciones Diferenciales Ordinarias (EDO), por lo que es de gran importancia hallar su solución.
Solución Analítica: Algunos de los métodos generales de resolución de ecuaciones diferenciales ordinarias lineales que permiten encontrar soluciones analíticas utilizan separación de variables, Series de Taylor, etc.
Solución Numérica: Algunos de los métodos para resolver numéricamente ecuaciones diferenciales, son los métodos de Runge-Kutta, los métodos multipaso y los métodos de extrapolación.
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 6
Ecuaciones Diferenciales Ordinarias
Las EDOs son ecuaciones diferenciales en las cuales, todas las variables dependientes son funciones de una sola variable independiente.
Una EDO de orden n explícita, donde n es el orden de la máxima derivada, con variable independiente x es:
Una EDO de orden n puede transformarse en un sistema de ecuaciones de primer orden.
dn y
dxn =f x , y ,dydx
, ,dn−1 y
dxn−1
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 7
Solución Numérica de EDOsLa solución numérica se utiliza cuando no es posible o es extremadamente difícil obtener la integral de f(x,y).
Encontrar la solución numérica de una ecuación diferencial implica encontrar un conjunto de valores funcionales.
Cuando se halla la solución numérica, NO se obtiene una expresión funcional de la forma y = f(x), sino un conjunto de valores numéricos.
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 8
Gráfico de una Solución Numérica
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 9
Método de la Serie de Taylor
Si bien no puede considerarse estrictamente como un método numérico, constituye la base del desarrollo de muchos métodos numéricos de resolución de EDO PVI, como los denominados métodos de RUNGE-KUTTA.
y(x )= y (x0)+ y ' (x0)(x−x0)+y ' ' (x0)(x−x0)
2
2!+
y ' ' ' (x0)(x−x0)3
3 !+⋯
y x = y x0 y ' x0hy ' ' x0h
2
2 !
y ' ' ' x0h3
3 !⋯
Y si definimos h = (x – x0), nos queda:
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 10
Método de la Serie de Taylor
Ejemplo:
y '=x+ yy (0)=1 ⇒ x0=0
y '=x y ⇒ y ' x0=01=1y ' '=1 y ' ⇒ y ' ' x0=11=2y ' ' '=0 y ' ' ⇒ y ' ' ' x0=02=2
⋯ ⋯ ⋯
y x=11x−0 2 x−0
2
2!
2x−03
3!
2x−0 4
4 !ERROR=1xx2
x3
3
x4
12ERROR
y(x )= y (x0)+ y ' (x0)(x−x0)+y ' ' (x0)(x−x0)
2
2!+
y ' ' ' (x0)(x−x0)3
3 !+⋯
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 11
Gráfico de la Solución obtenida
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 12
Error en la Serie de Taylor
Si en el caso del ejemplo anterior, tomamos sólo 5 términos:
y x =1hh2
h3
3
h4
12ERROR
Tomando como base el desarrollo de Taylor:
ERROR=yV
x−x05
5!=
y V h5
5 !para 0h
Por lo tanto, podemos expresar el error como:
y (x )= y (x0)+ y ' (x0)(x−x0)+y ' ' (x0)(x−x0)
2
2!+
y ' ' ' (x0)(x−x0)3
3 !+⋯
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 13
Error de la Serie de Taylor
ERROR=yn1
x−x0n1
n1!=
yn1hn1
n1!para 0h
El error disminuye al reducir el h.
Sin embargo, no es posible calcular y(n+1)(ξ) pues se desconoce el valor de ξ y no siempre es posible acotar la derivada en el intervalo [0,h], pues sólo se conoce su valor en x
0.
La serie de Taylor puede truncarse cuando los términos restantes no poseen cifras significativas con respecto a la precisión establecida, pues no contribuyen al valor final.
En forma general, tomando hasta el término de hn de la serie:
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 14
Exacto Error1,00 1 1 0,00000000001,10 1,10682 1,1068166063 -0,00000339371,20 1,22787394 1,2278795936 0,00000565361,50 1,68618 1,6861706012 -0,00000939882,00 2,82846 2,8284271247 -0,00003287532,50 4,56042 4,5603590867 -0,00006091333,00 7,02123 7,0211321235 -0,00009787654,00 14,6971 14,6969384567 -0,00016154335,00 27,00022 27 -0,0002200000
x Taylor (5 T)
y '=x⋅y13
y (1)=1 ⇒ x0=1y=
x223
32
Solución ExactaEcuación Diferencial
Ejemplo de la Serie de Taylor
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 15
Métodos Numéricos para resolver EDO
Métodos Unipaso:
Euler Simple y Modificado
Métodos de Runge-Kutta
Métodos Multipaso: (no los analizaremos en este curso)
Métodos explícitos (Adams-Bashfort)
Métodos implícitos (Adams-Moulton)
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 16
Es un método sencillo.
Es necesario utilizar un valor pequeño de h para lograr cierta exactitud. Error local O(h2).
El error global aumenta a medida que nos alejamos del valor inicial.
Método de Euler Simple
y x0h= y x0 y ' x0hy ' ' h2
2!x0x0h
Se obtiene a partir de los dos primeros términos de la Serie de Taylor
ERROR LOCAL
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 18
ERRORLOCAL
x1
x0
y1
y0
y(x1)
h
Se utiliza la pendiente que pasa por el extremo izquierdo del intervalo: y'n=f(xn,yn) para determinar el incremento de la función.
xn1=xnhyn1= ynh∗y ' xn , y nEsquema Iterativo
Representación gráfica
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 19
xn1=xnhyn1= ynh∗y ' xn , y n
y
1 y'
v = xv(0) v(1)
vp =vp(0) vp(1)
Vector de variables
Vector de derivadas
vn1=v nh⋅v ' vn
La implementación con vectores nos permite trabajar en una forma más compacta, simplificando su programación.
Implementación con vectores (I)
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 20
y 1 y'
y + =
v = x vp =v(0) v(1) vp(0) vp(1)
v = x h h*y' x+h y+h*y'v(0) v(1) vp(0) vp(1) v(0) v(1)
Vector de variables Vector de derivadas
vn+1=vn+h⋅v ' (vn) v=vh⋅vp
Implementación con vectores (II)
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 23
Influencia del valor de h
1 1,00 1,00 1,00 1,002 2,72 2,78 2,82 2,833 6,71 6,87 6,99 7,024 14,08 14,39 14,63 14,705 25,96 26,48 26,89 27,00
x h=0,1 h=0,05 h=0,01 S.Exacta
La exactitud de la solución numérica aumenta a medida que el paso h disminuye.
Los métodos basados en la fórmula de Taylor usan una técnica que consiste en dividir por 2 el paso h (h = h/2) y comparar ambas soluciones obtenidas.
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 24
Solución obtenida por Euler con h= 0.1
ERROR ACUMULADO
E = 1.04
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 25
Solución obtenida por Euler con h= 0.05
ERROR ACUMULADO
E = 0.52
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 26
Método de Euler Modificado
yn1= ynh⋅y ' nh2⋅yn ' '
2!h3⋅
yn ' ' '
3 !xnxnh
ERROR LOCAL
Se obtiene a partir de los tres primeros términos de la Serie de Taylor.
yn ' '≈y 'n1− y 'n
h
Sustituimos la derivada segunda por su aproximación en diferencias.
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 27
Error Local para Euler Modificado
yn1= ynh∗y 'nh2
2!∗
y 'n1− y ' n
hOh3
Por lo tanto, nos queda la expresión:
yn1= ynh∗y 'nh∗ y 'n1− y 'n
2Oh3
Simplificando:
yn1= ynh∗ y 'n1 y 'n
2O h3
Finalmente obtenemos:ERROR LOCAL
El error local es del orden de h3
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 28
Método de Euler Modificado (Heun)
Se obtiene una mejora en la exactitud con respecto de Euler Simple, considerando en el cálculo, el promedio de dos derivadas, en lugar de considerar una sola.
yn+1= yn+h⋅y ' (xn , yn)
yn+1= yn+h⋅( y ' (xn , yn)+ y ' (xn+1 , yn+1))
2
La derivada en el extremo derecho del intervalo se calcula en función del valor estimado de y
n+1. Este valor se estima por
medio del método de Euler Simple.
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 29
ERRORLOCAL
x1x
0
y1
y0
y(x1)
h
Se utiliza el promedio de las pendientes que pasan por ambos extremos del intervalo para determinar el incremento de la función.
Esquema Iterativo
yn1= ynh⋅y ' xn , yn
yn1= ynh⋅ y ' xn , yn y ' xn1 , yn1
2
Representación gráfica
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 30
Solución obtenida por Euler Modificado con h = 0.1
ERROR ACUMULADO
E = 0.0077
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 32
Error Local y Global
Error Local
Es el error que se produce en cada paso. Por lo tanto se considera que el valor previo es un valor exacto.
Error Global
Es el error acumulado en n pasos. En este caso se trata de la diferencia entre el valor calculado luego de n pasos y el valor exacto.
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 33
Orden de un Método Numérico
y xnh = y xn y ' xn⋅h y ' ' h2
2!
Tomemos como ejemplo al Método de Euler Simple
y(xn+1
) yn+1
Error de truncamiento en un paso
Si un método tiene un error de truncamiento por paso de la forma en+1(h) = C . h(n+1) . y(n+1)(ξ
i) se puede demostrar que su error de
truncamiento acumulado En(h) = y(xn) – yn es igual a:
En(h) = C . hn . y(n+1)(ξi).
Por lo tanto, diremos que un método numérico es de orden n si su error de truncamiento acumulado En(h) es O(hn).
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 34
Métodos más eficientes
Runge y Kutta desarrollaron un conjunto de métodos de resolución de ecuaciones diferenciales ordinarias, que mejoran notablemente su eficiencia.
Uno de los más utilizados es el método de Runge-Kutta de 4to. Orden.
Posteriormente se desarrollaron métodos de mayor orden, que incluyen la estimación del error producido en cada paso.
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 37
Métodos de Runge-Kutta (2do. Orden)
yn+1= yn+a⋅K 1+b⋅K 2
Escribimos el incremento de y como un promedio ponderado de dos estimaciones de Δy, a las que denominamos K1 y K2.
K 1=h⋅f (xn , yn)
K 2=h⋅f (xn+α⋅h , yn+β⋅K1)
Siendo:
El problema consiste en encontrar un esquema para determinar los valores de a, b, α y β.
[1]
[2]
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 38
Métodos de Runge-Kutta (2do. Orden)
yn1= ynh∗f xn , ynh2∗f ' xn , yn
2!⋯
f ' =dfdx
≈ f x+ f ydydx
= f x+ f y f
yn1= ynh∗f nh2
2 f xf y f n
Sabiendo que:
[3]
[4]
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 39
yn+1= yn+a⋅h⋅f (xn , yn)+b⋅h⋅f (xn+α⋅h; yn+h⋅β⋅f (xn , yn))
yn1= yna⋅h⋅f nb⋅h⋅ f ⋅h⋅f x⋅h⋅f y f nyn1= ynab ⋅h⋅f nh2⋅⋅b⋅f x⋅b⋅f y f n
Expandiendo el último término en Serie de Taylor y conservando sólo los términos de la 1ra. derivada, nos queda:
Si sustituimos las definiciones de K1 y K
2 obtenemos:
f xn⋅h; ynh⋅⋅f xn , yn≈ f ⋅h⋅f x⋅h⋅f y⋅f n
Por último sustituyendo y agrupando convenientemente:
[5]
[6]
Métodos de Runge-Kutta (2do. Orden)
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 40
Métodos de Runge-Kutta (2do. Orden)
Igualando la expresión anterior con la [4],
obtenemos el siguiente sistema de ecuaciones:
Y como tenemos 3 ecuaciones y cuatro incógnitas, podemos elegir arbitrariamente uno de los valores y calcular los restantes.
ab=1
∗b=12
∗b=12
SISTEMA DE ECUACIONES
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 41
Por ejemplo, si elegimos a=1/2 obtenemos: b=1/2 y α=β=1.
Estos valores conducen a la fórmula del método de Euler Modificado ó Método de Heun:
yn+1= yn+h⋅f (xn , y n)
yn+1= yn+h⋅( f (xn , yn)+f (xn+1 , yn+1))
2
(*) Cómo la derivada en xn+1
es desconocida, se utiliza una aproximación
en su lugar.
Método de Heun (Euler Modificado)
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 43
Otra variante se logra si elegimos el valor b=1 y obtenemos: a=0 y α=β=1/2.
Estos valores conducen a la fórmula del método de Euler Mejorado:
yn
12
= ynh2∗f xn , yn
yn1= ynh∗f xnh2
, yn
12
(*) Cómo la derivada en xn+1/2
es desconocida, se utiliza una aproximación
en su lugar.
Euler Mejorado
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 44
A medida que el orden del método aumenta, también aumenta la complejidad matemática de la deducción del mismo ya que deben considerarse más términos de la Serie de Taylor.
Por ejemplo, si consideramos los términos hasta (h4) obtendremos un sistema de 11 ecuaciones y 13 incógnitas.
De la misma forma que en el caso de 2do. Orden, si se tienen menos ecuaciones que incógnitas, es necesario elegir arbitrariamente dos valores, para poder determinar los valores de los coeficientes.
Métodos de Runge-Kutta (4to. Orden)
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 45
Por los motivos anteriormente expuestos, simplemente presentaremos la fórmula final de cálculo de los coeficientes y del próximo valor.
k1=h⋅f xn , yn
k2=h⋅f xnh2
, ynk1
2
k3=h⋅f xnh2
, ynk2
2
k 4=h⋅f xnh , ynk 3
yn1= yn16⋅k12⋅k 22⋅k3k4
Métodos de Runge-Kutta (4to. Orden)
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 46
Orden de los Errores
Este método tiene un Error Local del orden de (h5) y
un Error Global del orden de (h4). Si comparamos con
los métodos de 2do. Orden, se observa una importante mejora.
De la misma forma que en el caso de 2do. Orden, como se tienen menos ecuaciones que incógnitas, es necesario elegir arbitrariamente dos valores, para poder determinar los valores de los coeficientes.
Métodos de Runge-Kutta (4to. Orden)
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 48
La idea básica consiste en calcular dos estimaciones de Runge-Kutta de diferente orden para calcular el nuevo valor de la función.
La diferencia entre las dos estimaciones puede utilizarse para estimar el error en el método de orden menor.
Por ejemplo, en Runge-Kutta-Merson se calcula la diferencia entre una estimación de 5to.orden y una de 4to.
En cambio en Runge-Kutta-Fehlberg, se realizan 6 evaluaciones funcionales por iteración y se calcula una estimación del error.
Mejoras a los Métodos de Runge-Kutta
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 49
El método de Runge-Kutta de orden 6to. También conocido como método de Runge-Kutta-Fehlberg, incorpora una fórmula para la estimación del error en cada paso.
k 1=h⋅f xn , y n
k 2=h⋅f xnh4
, y nk1
4
k 3=h⋅f xn3h8
, yn3k1
32
9k2
32
k 4=h⋅f xn12h13
, y n1932k1
2197−
7200k2
2197
7296k3
2197
k 5=h⋅f xnh , y n439k1
216−8k2
3680k3
513−
845k4
4104
k 6=h⋅f xnh2
, yn−8k1
272k2−
3544k3
2565−
1859k4
4104−
11k 5
40
yn1= yn25k1
216
1408k3
2565
2197k4
4104−
k5
5
E=k1
360−
128k3
4275−
2197k4
75240
k 5
50
2k6
55
Métodos de Runge-Kutta-Fehlberg