clase no. 25: diferenciación numérica: sistemas de ...joaquin/cursos/mat251/clases/clase25.pdf ·...

Post on 02-Nov-2018

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Clase No. 25:

Diferenciación numérica:Sistemas de ecuaciones lineales ordinarias

Método predictor-correctorMétodo de disparo

MAT–251 Dr. Alonso Ramírez ManzanaresCIMAT A.C.e-mail: alram@cimat.mxweb: http://www.cimat.mx/salram/met_num/

Dr. Joaquín Peña AcevedoCIMAT A.C.e-mail: joaquin@cimat.mx

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 1 / 30

Método de Picard (I)

Tenemos que

y(x) = y(x0) +

∫ x

x0

f (t,y(t))dt

Hacemos una partición uniforme y tomamos h= xk+1 − xk. Entonces

yk+1 = yk +

∫ xk+1

xk

f (t,yk)dt

De este modo, y se reemplaza por una constante y la integral se puede calcular poralguna regla de cuadratura (o de forma exacta).

Ejemplo. Resolver

y′ = 2x(1+ y2)

y(0) = 0

La solución analítica es y(x) = tan(x2).

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 2 / 30

Método de Picard (II)

0.0 0.2 0.4 0.6 0.8 1.0 1.2

02

46

x

y

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●

●●

●●

n = 200

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 3 / 30

Sistema de EDOs (I)

Sean yi(x) : R→ R para i = 1,2, ...,n. Queremos resolver el PVI

y′1 = f1(x,y1,y2, ...,yn)

y′2 = f2(x,y1,y2, ...,yn)

...

y′n

= fn(x,y1,y2, ...,yn)

yi(a) = αi, i = 1,2, ...,n.

Si

Y =

y1y2...yn

, Y ′ =

y′1y′2...y′n

, α =

α1α2...αn

, F =

f1f2...fn

,

Entonces el sistema se puede reescribir el PVI como

Y ′ = F(x,Y), Y(a) = α.

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 4 / 30

Sistema de EDOs (II)

Para resolverlo, podemos extender cualquiera de los métodos de soluciónvistos previamente.

Por ejemplo, podemos usar

• un método basado en series de Taylor de orden m,

Y(x+ h) = Y(x) + hY ′(x) +h2

2Y ′′(x) + ...+

hm

m!Y(m)(x).

• un método tipo Runge-Kutta. Por ejemplo, el de cuarto orden:

Yk+1 = Yk +h

6(K1 + 2K2 + 2K3 +K4)

donde

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 5 / 30

Sistema de EDOs (III)

K1 = F(x, Y)

K2 = F(x+ h/2, Y + hK1/2)

K3 = F(x+ h/2, Y + hK2/2)

K4 = F(x+ h, Y + hK3)

Ejemplo. Resolver

y′1 = y1 − y2 + 2x− x2 − x3

y′2 = y1 + y2 − 4x2 + x3

y1(0) = 1y2(0) = 0

La solución del problema es

y1(x) = x2 + ex cosx, y2(x) = −x3 + ex sinx.

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 6 / 30

Sistema de EDOs (IV)

Resolviendo en [0,2] con n = 50 se obtiene lo siguiente:

0.0 0.5 1.0 1.5 2.0

−1

01

2

c(a, b)

c(dm

in, d

max

)

y1

y2

Solución y1(2) y2(2)Euler 1.0538040281 -0.9873304309RK4 0.9250671066 -1.2811503428

Analítica 0.9250676794 -1.2811503026

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 7 / 30

Sistema de EDOs (V)

Diferencias entre la solución analítica y la solución numérica

0.0 0.5 1.0 1.5 2.0

−0.

30−

0.20

−0.

100.

00

c(a, b)

c(dm

in, d

max

)

Diferencias en y1Diferencias en y2

0.0 0.5 1.0 1.5 2.0−

2e−

070e

+00

2e−

074e

−07

6e−

07c(a, b)

c(dm

in, d

max

)

Diferencias en y1Diferencias en y2

Euler explícito Runge-Kutta de cuarto orden

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 8 / 30

Ecuaciones de orden superior (I)

Para resolver la ecuación

y′′ = f (x,y,y′)

podemos introducir las variables

y1 = y

y2 = y′

Entonces

y′1 = y2

y′2 = f (x,y1,y2)

Para resolver la ecuación necesitamos una condición inicial

y1(a) = αy2(a) = β

=⇒ y(a) = α1y′(a) = α2

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 9 / 30

Ecuaciones de orden superior (II)

En general, para resolver el PVI

y(n) = f (x, y, y′, ..., y(n−1))y(a) = α1y′(a) = α2

...y(n−1)(a) = αn

Hacemos y1 = y, y2 = y′, ..., yn = y(n−1) y obtenemos el sistema de ODEs:

y′1 = y2

y′2 = y3

...y′n−1 = yn

y′n

= f (x,y1,y2, ...,yn)

yi(a) = αi i = 1,2, ...,n

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 10 / 30

Ejemplo (I)

Consideremos el PVI

y′′ = −y,y(0) = 1,y′(0) = 0,

para x ∈ [0,40].

La solución del problema es

y(x) = cosx.

Reescribimos el problema como un sistema de ecuaciones ordinarias:

y′1 = y2,

y′2 = −y1,

y1(0) = 1,y2(0) = 0,

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 11 / 30

Ejemplo (II)

n = 400, h = 0.1

Euler explícito

0 10 20 30 40

−6

−4

−2

02

46

c(a, b)c(

dmin

, dm

ax)

Solucion analiticaSolucion numerica

RK4

0 10 20 30 40

−1.

0−

0.5

0.0

0.5

1.0

c(a, b)

c(dm

in, 1

.4)

Solucion analiticaSolucion numerica

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 12 / 30

Ejemplo (III)

Para usar el método de Euler implícito, tenemos que

y1,k+1 = y1,k + hf1(xk+1,y1,k+1,y2,k+1) = y1,k + hy2,k+1

y2,k+1 = y2,k + hf2(xk+1,y1,k+1,y2,k+1) = y2,k − hy1,k+1

Entonces, para cada k = 1, ...,n tenemos que resolver un sistema lineal2× 2:

1 −hh 1

��

y1,k+1y2,k+1

=

y1,ky2,k

Usando la discretización con n = 400 (h = 0.1) obtenemos lo siguiente

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 13 / 30

Ejemplo (IV)

0 10 20 30 40

−1.

0−

0.5

0.0

0.5

1.0

c(a, b)

c(dm

in, 1

.4)

Solucion analiticaSolucion numerica

Resultado obtenido con Euler implícito

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 14 / 30

Ejemplo (V)

Si hacemos una discretización más fina, con n = 40000, usando el métodode Euler explícito:

-1.5

-1

-0.5

0

0.5

1

1.5

0 5 10 15 20 25 30 35 40

Resultado obtenido con Euler explícito con h = 0.001.

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 15 / 30

Problema de valores en la frontera (I)

En el intervalo [a,b] queremos resolver el problema de valores en la frontera:

y′′ = f (x,y,y′)

y(a) = α

y(b) = β

El problema lo podríamos resolver con los métodos vistos anteriormente situvieramos y′(a).

Este problema es más complicado que un PVI si queremos resolverlo usandoun método explícito. Una estrategia para resolverlo de esta forma es tratarde adivinar el valor de y′(a) y esperar a que cuando calculemos y(b)coincida con β.

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 16 / 30

Problema de valores en la frontera (II)

0 1 2 3 4 5 6

010

2030

4050

c(a, b + 1.5)

c(m

in(Y

k[, 1

]), m

ax(Y

k[, 1

]))

y(b) = 44.0

y(b) = 19.0

y(b) = 1.1

y(b) = 6.0

Ejemplo: y′′ = −9.8, y(0) = 1.5, y(5) = 6.

Si y(b) 6= β, tratamos con otro valor para y′(a). Un procedimiento que haceesto de forma sistematica es el método de disparo.

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 17 / 30

Método de disparo (I)

Tenemos que dar un valor a y′(a), digamos y′(a) = z. Al resolver la ecuacióntendremos que el valor de la solución en x = b dependerá de z, y por eso lodenotamos como ϕ(z).

Dado y′(a) = z, el método de disparo combina cualquier método queresuelve un PVI con algún método de cálculo de ceros de funciones.

La idea es la siguiente. Resolvemos dos PVIs:

y′′ = f (x,y(x),y′(x))y(a) = αy′(a) = zi

para dos valores z1 y z2 que elegimos de forma arbitraria. Con esto,obtenemos dos soluciones numéricas en las que en un caso tenemos quey(b) = ϕ(z1) y en el otro y(b) = ϕ(z2).

Si suponemos que ϕ(z) es una función lineal, entonces podemos determinarun cero de ϕ(z)− β de la siguiente manera.

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 18 / 30

Método de disparo (II)

−2 0 2 4 6 8 10

−1

01

23

45

6

c(−2, 11)

c(−

1, 6

)

φ(z)

zz1 z2 z3

φ(z1)

φ(z2)β

z3 − z2

β − ϕ(z2)=

z2 − z1

ϕ(z2)− ϕ(z1)

z3 = z2 + [β − ϕ(z2)]z2 − z1

ϕ(z2)− ϕ(z1)

Si al resolver el PVI con y′(a) = z3 se tiene que y(b) 6= β, entonces repetimosla estimación de la derivada en x = a:

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 19 / 30

Método de disparo (III)

zi+1 = zi + [β − ϕ(zi)]zi − zi−1

ϕ(zi)− ϕ(zi−1)

hasta que |ϕ(zi+1)− β| < ε dado.

Ejemplo. y′′ = 32y

2, y(0) = 4, y(1) = 1.

i zi ϕ(zi)1 -8.000000000 0.1161940202 -8.001000000 -0.0483029783 -7.994627221 2.3485849044 -7.998212801 0.5395737925 -7.997300206 0.8455628626 -7.996839606 1.0309898377 -7.996916585 0.9983570768 -7.996912709 0.9999836089 -7.996912670 1.000000009

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 20 / 30

Un refinamiento

Se puede mejorar la forma de interpolar los valores. Una forma es usarcalcular el polinómio cúbico p(z) que pasa por los puntos

(zi−3, ϕ(zi−3)), (zi−2, ϕ(zi−2)), (zi−1, ϕ(zi−1)), (zi, ϕ(zi))

y definimos zi+1 como la raíz de p(z)− β = 0.

Para no tener que resolver la ecuación cúbica, otra forma es calcular elpolinomio cúbico q(·) que pasa por los puntos

(ϕ(zj), zj ) j = i− 3, i− 2, i− 2, i.

y entonces calculamos zi+1 = q(β).

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 21 / 30

Un refinamiento

Se puede mejorar la forma de interpolar los valores. Una forma es usarcalcular el polinómio cúbico p(z) que pasa por los puntos

(zi−3, ϕ(zi−3)), (zi−2, ϕ(zi−2)), (zi−1, ϕ(zi−1)), (zi, ϕ(zi))

y definimos zi+1 como la raíz de p(z)− β = 0.

Para no tener que resolver la ecuación cúbica, otra forma es calcular elpolinomio cúbico q(·) que pasa por los puntos

(ϕ(zj), zj ) j = i− 3, i− 2, i− 2, i.

y entonces calculamos zi+1 = q(β).

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 21 / 30

Métodos multipaso (I)

Tenemos el problema y′ = f (x,y), x ∈ [a,b], con y(a) = α.

Hemos visto métodos de solución de un paso: para calcular yi+1 sólonecesitamos conocer yi.

Para calcular yi+1 un método multipaso, necesitamos conoceryi,yi−1, ...,yi−s con s ≥ 1.

Ejemplo de un método dos pasos.

Tenemos que

yk+1 = yk +

∫ xk+1

xk

f (s,y(s))ds

Para aproximar la integral, podemos reemplazar el integrando por unpolinomio de interpolación. Por ejemplo, podemos construir el polinomio degrado 1 que interpola los puntos

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 22 / 30

Métodos multipaso (II)

fk = f (xk,yk) ≈ f (xk,y(xk))

fk−1 = f (xk−1,yk−1) ≈ f (xk−1,y(xk−1))

Así,

P1(s) = fk +fk − fk−1

h(s− xk)

Entonces

yk+1 − yk =

∫ xk+1

xk

f (s,y(s))ds ≈∫ xk+1

xk

P1(s)ds

= fks+fk − fk−1

2h(s− xk)2

xk+1

xk

= fkh+fk − fk−1

2h

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 23 / 30

Métodos multipaso (III)

yk+1 − yk =h

2(3fk − fk−1)

Este método es explícito y pertenece a la familia de métodosAdams-Bashforth.

Método explícito de Adams-Bashforth de 2 pasosy0 = α, y1 = α1,

yk+1 = yk +h

2[3f (xk,yk)− f (xk−1,yk−1)]

Este método tiene un error O(h3).

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 24 / 30

Métodos multipaso (IV)

Observaciones:

Supongamos que tenemos un método de s pasos.

• Hay que tomar en cuenta que no podemos usar el método multipasopara calcular

y1, y2, ..., ys.

Así el primer valor que podemos calcular con este método es ys+1.

• Tenemos que buscar una forma de obtener los primeros s valores.

• Una alternativa es usar un método explícito para calcular y1,y2, ...,ys.

• Es importante que el método que elijamos para realizar cálculos losprimeros valores sea del mismo orden que el método multipaso.

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 25 / 30

Métodos multipaso (V)

Tenemos métodos explícitos, como los siguientes:

Método explícito de Adams-Bashforth de 3 pasosy0 = α, y1 = α1, y2 = α2,

yi+1 = yi +h

12[23f (xi,yi)− 16f (xi−1,yi−1) + 5f (xi−2,yi−2)]

Este método tiene un error O(h4).

Método explícito de Adams-Bashforth de 4 pasosy0 = α, y1 = α1, y2 = α2, y3 = α3,

yi+1 = yi +h

24[55f (xi,yi)− 59f (xi−1,yi−1) + 37f (xi−2,yi−2)− 9f (xi−3,yi−3)]

Este método tiene un error O(h5).

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 26 / 30

Métodos multipaso (VI)

También hay métodos implícitos.

Método implícito de Adams-Moulton de 2 pasosy0 = α, y1 = α1,

yi+1 = yi +h

12[5f (xi+1,yi+1) + 8f (xi,yi)− f (xi−1,yi−1)]

Este método tiene un error O(h4).

Método implícito de Adams-Moulton de 3 pasosy0 = α, y1 = α1, y2 = α2,

yi+1 = yi +h

24[9f (xi+1,yi+1) + 19f (xi,yi)− 5f (xi−1,yi−1) + f (xi−2,yi−2)]

Este método tiene un error O(h5).

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 27 / 30

Métodos multipaso (VII)

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 28 / 30

Métodos predictor-corrector (I)

Es usual combinar los métodos explícitos y los implícitos, y el resultado esun método predictor-corrector:

• Se usa un método explícito para predecir el valor de una aproximación,

• y se aplica un método implícito para corregir esa predicción.

Por ejemplo, para obtener un método de cuarto orden predictor-correctorpodemos proceder de la siguiente manera:

Calculamos los valores y1,y2,y3 usando el método de Runge-Kutta decuarto orden.

Predecimos el valor y4 usando el método explícito de Adams-Bashforthde cuatro pasos:

y4 = y3 +h

24[55f (x3,y3)− 59f (x2,y2) + 37f (x1,y1)− 9f (x0,y0)]

Calculamos y4 usando el método implícito de Adams-Moulton de trespasos.

y4 = y3 +h

24[9f (x4, y4) + 19f (x3,y3)− 5f (x2,y2) + f (x1,y1)]

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 29 / 30

Métodos predictor-corrector (II)

Continuamos de esta forma para calcular los valores restantes.

Ejemplo. y′ = y − t2 + 1, t ∈ [0,2], y(0) = 0.5.

xi y(xi) yi |y(xi)− yi|0.0 0.5000000 0.5000000 00.2 0.8292986 0.8292933 0.00000530.4 1.2140877 1.2140762 0.00001140.6 1.6489406 1.6489220 0.00001860.8 2.1272295 2.1272056 0.00002391.0 2.6408591 2.6408286 0.00003051.2 3.1799415 3.1799026 0.00003891.4 3.7324000 3.7323505 0.00004951.6 4.2834838 4.2834208 0.00006301.8 4.8151763 4.8150964 0.00007992.0 5.3054720 5.3053707 0.0001013

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 18.11.2015 30 / 30

top related