El Metodo de Diferencias Finitas

Embed Size (px)

Citation preview

  • 8/3/2019 El Metodo de Diferencias Finitas

    1/9

    Captulo 4

    El metodo de Diferencias Finitas

    La idea del metodo de Diferencias Finitas consiste en aproximar las derivadas que

    aparecen en el problema de ecuaciones diferenciales ordinarias (e.d.o.) de forma que se

    reduzca a resolver un sistema lineal. Una vez definido el sistema lineal se estudiara teniendo

    en cuenta los resultados de los Temas 1 y 2.

    Comenzamos viendo el metodo de Diferencias Finitas para un problema de contorno

    de segundo orden lineal. En concreto, consideramos la ecuacion lineal:

    x(t) = p(t) x(t) + q(t)x(t) + r(t) t [a, b] (4.1)

    con

    x(a) = , x(b) = .

    Recordamos que, segun vimos en el tema anterior, suponemos que

    q(t) > 0 y que p(t) esta acotada,

    bajo estas condiciones el problema de contorno tiene solucion.

    Hagamos una particion de [a, b], donde:

    a = t0 < t1 < . . . < tN = b,

    h =

    b a

    N tj = a + j h j = 0, 1, . . . , N Usando las formulas de diferencias centradas para aproximar las derivadas tenemos (En

    el Apendice de este tema se explica como se deduce la siguiente igualdad):

    x(tj) =x(tj+1) x(tj1)

    2 h+ O(h2) (4.2)

    65

  • 8/3/2019 El Metodo de Diferencias Finitas

    2/9

    66

    x(tj) =x(tj+1) 2x(tj) + x(tj1)

    h2+ O(h2) (4.3)

    Reemplazando (4.2) y (4.3) en (4.1), aproximando xj x(tj) j, obtenemos:

    xj+1 2 xj + xj1h2

    + O(h2) = p(tj)

    xj+1 xj1

    2 h+ O(h2)

    + q(tj)xj + r(tj) (4.4)

    Eliminando los terminos de orden O(h2) en (4.4) e introduciendo la notacion pj = p(tj),

    qj = q(tj), rj = r(tj), obtenemos la ecuacion en diferencias:

    xj1 2 xj + xj1h2

    = pjxj+1 xj1

    2 h+ qj xj + rj (4.5)

    que se usa para calcular aproximaciones numericas a la solucion de la ecuacion diferencial

    (4.1).

    Reagrupando, teniendo en cuenta que las incognitas son xj j = 1, . . . , N , tenemos el

    sistemas lineal de ecuaciones:

    h

    2pj 1

    xj1 +

    2 + h2qj

    xj +

    h

    2pj 1

    xj+1 = h

    2 rj j = 1, 2, . . . , N 1

    x0 =

    xN =

    (4.6)

    El sistema (4.6) es un sistema tridiagonal de N 1 ecuaciones y N 1 incognitas,

    x1, . . . , xN1 (pues x0 y xN son datos, las condiciones de contorno del problema). En

    notacion matricial podemos escribirlo como

    A x = b,

    donde x =

    x1...

    xN1

    ,

    A =

    2 + h2q1 p1h/2 1 0 . . . . . . 0

    p2h/2 1 2 + h2

    q2 p2h/2 1 . . . . . . 0. . .

    pjh/2 1 2 + h2qj pjh/2 1

    . . .

    pN1h/2 1 2 + h2qN1

  • 8/3/2019 El Metodo de Diferencias Finitas

    3/9

    67

    Ademas, si denotamos e0 = (p1h/2 + 1), eN = (pN1h/2 + 1), tenemos

    b =

    h2r1 + e0

    h2r2...

    h

    2

    rj...

    h2rN1 + eN

    Aplicamos ahora algunos de los resultados que hemos estudiado para resolucion numeri-

    ca de sistemas lineales. Por ejemplo, veamos si podemos utilizar los metodos iterativos de

    Jacobi y Gaus-Seidel. Uno de los criterios para ver si ambos metodos son convergentes es

    probar que la matriz es estrictamente diagonal dominante. Para ello, tenemos que ver que

    |2 + h

    2

    qj | > |1 + pjh/2| + |1 pjh/2|, j = 1, . . . , N 1.

    Por un lado tenemos que h es el tamano de paso en la discretizacion, por lo que lo podemos

    tomar suficientemente pequeno, de forma que

    1 pjh/2 0, 1 + pjh/2 0 j

    Como ademas, tenemos que q > 0, por hipotesis (lo suponamos al principio del tema,

    para poder asegurar que el problema de contorno tiene soluci on), llegamos a que

    |1 + pjh/2| + |1 pjh/2| = 1 + pjh/2 + 1 pjh/2 = 2

    y

    |2 + h2qj | > 2 (pues qj > 0).

    Por lo tanto, la matriz del sistema es estrictamente diagonal dominante. Entonces, pode-

    mos aplicar los metodos iterativos de Jacobi y Gaus-Seidel para resolver el sistema lineal

    (no os parece apasionante, como justo la hipotesis que se necesita para asegurar la exis-

    tencia de solucion en el problema de contorno (q > 0) es la que asegure que el sistema es

    estrictamente diagonal dominante?, acabamos de relacionar dos problemas en aparienciadistintos).

    En definitiva, de esta forma, resolviendo el problema lineal, con tamano de paso h,

    conseguimos una aproximacion numerica: un conjunto finito de puntos {(tj, xj)}N1j=1 .

    Si se conoce la solucion exacta x(tj), entonces podemos comparar xj con x(tj).

  • 8/3/2019 El Metodo de Diferencias Finitas

    4/9

  • 8/3/2019 El Metodo de Diferencias Finitas

    5/9

    69

    Se puede probar que las soluciones numericas tienen un error de O(h2): Veamos que si

    reducimos el tamano del paso a la mitad, el error disminuye una cuarta parte (Recordamos

    que si un metodo es de orden p, entonces e(h/2) = e(h)/2p):

    Vamos a fijarnos en la tabla anterior, por ejemplo en t = 2, vemos que el error que

    cometemos en este punto, para h1 = 0,2 es 0,022533. Dividiendo esta cantidad por cuatro

    y as sucesivamente tenemos

    0,022533 0,00563325 0,0014083125 0,0035207

    mientras que los valores de la tabla son

    0,022533 0,005588 0,001394 0,000348

    Es un pequeno ejemplo, comprobando que el esquema es de orden dos.

    Teorema 14 Si la solucion del problema de contorno es suficientemente regular, x C4([a, b]), entonces el error e para el metodo de diferencias finitas satisface:

    e C h2,

    es decir, es un metodo de segundo orden.

    Realmente habra ocasiones en las que nos interesa conseguir metodos de mayor orden.

    Con esta finalidad estudiamos el esquema de mejora de Richardson.

    4.1. Esquema de mejora de Richardson

    Vamos a mejorar la precision de las aproximaciones numericas anteriormente obtenidas

    usando el esquema de mejora de Richardson para extrapolar los valores {xj,1}Nj=0, {xj,2}

    Nj=0,

    {xj,3}Nj=0 {xj,4}

    Nj=0, correspondiente a los pasos h1, h2, h3 y h4, donde

    h2 =h12

    , h3 =h22

    , h4 =h32

    ,

    con la finalidad de obtener 6 cifras de precision.Para ello, primero eliminamos los terminos de orden O(h2) de {xj,1}

    Nj=0 y O((

    h2

    )2) de

    {xj,2}Nj=0, generando los valores

    {zj,1} =

    4xj,2 xj,1

    3

  • 8/3/2019 El Metodo de Diferencias Finitas

    6/9

  • 8/3/2019 El Metodo de Diferencias Finitas

    7/9

    71

    4.2. Otras condiciones de frontera.

    Las condiciones de frontera pueden ser distintas. Concretamente, en lugar de tomar

    x(a) = , podemos tener x(a) y x(b) en lugar de x(b).

    Supongamos por ejemplo que:

    x(a) =

    x(b) = o

    x(a) =

    x(b) = o

    x(a) =

    x(b) =

    Ahora x0 y xN son tambien incognitas, luego debemos tener 2 ecuaciones mas en el sistema

    resultante.

    Supongamos que tenemos la condicion x(a) = , podemos aproximar esta condicion

    mediante:x1 x1

    2h= (4.7)

    donde x1 es un punto ficticio de la busqueda de x0. Entonces, escribiendo la ecuacion

    aproximada por diferencias finitas para el nodo x0:

    x1 2x0 + x1h2

    = r0 + q0x0 + p0x1 x1

    2h

    que reordenamos como:

    (1 1

    2hq0)x1 + (2 + h

    2p0)x0 + (1 +1

    2hq0)x1 = h

    2r0,

    de donde, teniendo en cuenta que por (4.7)

    x1 = x1 2h

    La ecuacion queda

    (2 + h2p0)x0 2x1 = (2 + h q0)h h2r0. (4.8)

    Razonando asimismo en el extremo b, tenemos que si imponemos x(b) = la ecuacion

    resultante es

    2xN1 + (2 + h2qN)xN = h

    2rN + (2 h pN)h . (4.9)

    De esta forma, las ecuaciones (4.8) y (4.9) se anadirian al sistema (4.6), obteniendo un

    problema de (N + 1) incognitas con (N + 1) ecuaciones.

  • 8/3/2019 El Metodo de Diferencias Finitas

    8/9

    72

    Apendice: Aproximacion de la derivada de una funcion

    a partir del desarrollo de Taylor

    En esta seccion vamos a introducir aproximaciones de y (x) e y(x), a partir del desa-

    rrollo de Taylor. Estas aproximaciones es la base de los metodos de diferencias finitas.

    Consideramos en primer lugar el desarrollo de Taylor de tercer orden, para una funci ony(x). Entonces,

    y(t) = y(t0) + y(t0)(t t0) + y

    (t0)(t t0)

    2

    2+ y(c)

    (t t0)3

    6

    de donde tomando t0 = x y t = x + h, tenemos

    y(x + h) = y(x) + y(x)h + y(x)h2

    2+ y(c1)

    h3

    6

    Tomando ahora, t0 = x, t = x h, obtenemos:

    y(x h) = y(x) hy(x) + y(x)h2

    2 y(c2)

    h3

    6.

    Restando ambas expresiones tenemos:

    y(x + h) y(x h) = 2 h y(x) +h3

    6(y(c1) + y

    (c2))

    De esta ultima aproximacion deducimos

    y

    (x) =

    y(x + h) y(x h)

    2 h +

    h2

    12(y

    (c1) + y

    (c2))

    Por lo tanto, tenemos una aproximacion de segundo orden a la derivada a la funcion en

    un punto:

    y(x) y(x + h) y(x h)

    2 h

    Aproximacion de y(x)

    Usando el desarrollo de Taylor de cuarto orden, llegamos a que

    y(t) = y(t0) + y(t0)(t t0) + y

    (t0) (t t0)2

    2+ y(t0) (t t

    0)3

    6+ yiv(c)(t t

    0)4

    4!

    Si t = x + h, t0 = x

    y(x + h) = y(x) + y(x)h + y(x)h2

    2+ y(x)

    h3

    6+ yiv(c1)

    h4

    4!

  • 8/3/2019 El Metodo de Diferencias Finitas

    9/9

    73

    Si t = x h, t0 = x

    y(x + h) = y(x) y(x)h + y(x)h2

    2 y(x)

    h3

    6+ yiv(c2)

    h4

    4!

    Sumando ambas expresiones y despejando el valor de y (x) tenemos:

    y(x) = y(x + h) 2y(x) + y(x h)h2 + h2

    4! (yiv(c1) + yiv(c2))

    Luego usamos la aproximacion de segundo orden de y (x):

    y(x) y(x + h) 2y(x) + y(x h)

    h2.