M etodos num ericos multidimensionales en...

99
1

Transcript of M etodos num ericos multidimensionales en...

1

Metodos numericos multidimensionales en fluidos

Profesor: Pablo Dmitruk Ayudante: Alejandro SztrajmanEscrito por: Laya Marconi

2do cuatrimestre, 2011

1Gracias a todos mis companeros que me prestaron sus carpetas para poder armareste apunte tan completo

Indice general

1. Capıtulo 1 51.1. Diferencias finitas (diferenciacion numerica) . . . . . . . . . . . . . 51.2. Analisis de Fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.3. Consistencia de una ecuacion . . . . . . . . . . . . . . . . . . . . . 13

2. Capıtulo 2 152.1. Esquemas Temporales . . . . . . . . . . . . . . . . . . . . . . . . . 152.2. Metodos No Iterativos . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.2.1. Metodos Explıcitos . . . . . . . . . . . . . . . . . . . . . . . 172.2.2. Metodos Implıcitos . . . . . . . . . . . . . . . . . . . . . . . 19

2.3. Metodos Iterativos (multipaso o predictor-corrector) . . . . . . . . . 202.4. Estabilidad de Metodos . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.4.1. Estabilidad para Euler Adelantado . . . . . . . . . . . . . . 232.4.2. Trapezoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.4.3. Esquema Atrasado . . . . . . . . . . . . . . . . . . . . . . . 252.4.4. Matsuno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.4.5. RK2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.4.6. Salto de Rana o Leapfrog . . . . . . . . . . . . . . . . . . . 26

3. Capıtulo 3 293.1. Ecuaciones Parabolicas . . . . . . . . . . . . . . . . . . . . . . . . . 293.2. Metodo Crank-Nicholson (1D . . . . . . . . . . . . . . . . . . . . . 353.3. Ecuacion parabolica en 2D (difusion) . . . . . . . . . . . . . . . . . 37

3.3.1. Metodo implıcito (C-R) . . . . . . . . . . . . . . . . . . . . 393.3.2. Metodo direcciones alternadas (ADI) . . . . . . . . . . . . . 403.3.3. Metodo splitting . . . . . . . . . . . . . . . . . . . . . . . . 40

4. Capıtulo 4 434.1. Ecuacion de Adveccion Lineal (1D) . . . . . . . . . . . . . . . . . . 43

4.1.1. Euler en t, diferencias centradas en x . . . . . . . . . . . . . 444.1.2. Esquema LAX . . . . . . . . . . . . . . . . . . . . . . . . . . 444.1.3. Salto de Rana o Leap-Frog . . . . . . . . . . . . . . . . . . . 484.1.4. Metodo LAX-Wendroff (LW) . . . . . . . . . . . . . . . . . 494.1.5. Metodos Implıcitos . . . . . . . . . . . . . . . . . . . . . . . 50

4.2. Ecuacion de Adveccion Lineal (2D) . . . . . . . . . . . . . . . . . . 514.3. Ecuacion advectiva no lineal (1D) . . . . . . . . . . . . . . . . . . . 52

3

4

5. Capıtulo 5 555.1. Ecuaciones Elıpticas . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.1.1. Ecuacion de Poisson en 1D . . . . . . . . . . . . . . . . . . . 555.1.2. Ecuacion de Poisson en 2D . . . . . . . . . . . . . . . . . . . 57

5.2. Metodo Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605.3. Metodo de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . 625.4. Metodo SOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635.5. Convergencia de los esquemas iterativos . . . . . . . . . . . . . . . . 645.6. Metodo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655.7. Taza de reduccion del error . . . . . . . . . . . . . . . . . . . . . . 66

6. Capıtulo 6 716.1. Metodos Espectrales . . . . . . . . . . . . . . . . . . . . . . . . . . 71

6.1.1. Metodo de Galerkin . . . . . . . . . . . . . . . . . . . . . . . 746.1.2. Metodos Pseudoespectrales . . . . . . . . . . . . . . . . . . 79

6.2. Ecuacion de Burgers . . . . . . . . . . . . . . . . . . . . . . . . . . 826.2.1. Metodo de Galerkin para Burgers . . . . . . . . . . . . . . . 836.2.2. Metodo Pseudoespectral (o de colocacion) . . . . . . . . . . 856.2.3. Aliasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866.2.4. Balance de Energıa para la ecuacion de Burgers . . . . . . . 896.2.5. Estabilidad de la ecuacion de Burgers con RK2 . . . . . . . 936.2.6. Metodo Pseudoespectral en 2D . . . . . . . . . . . . . . . . 96

Capıtulo 1

Capıtulo 1

Un problema fısico se puede describir de forma DISCRETA y de forma CON-

TINUA. Para los sistemas discretos, se utilizan ecuaciones diferenciales ordinarias

(ODE). Para medios contınuos (fluidos, por ejemplo) se utilizan ecuaciones difer-

enciales en derivadas parciales (PDE). Para describir estas ecuaciones, se utilizan

metodos numericos.

1.1. Diferencias finitas (diferenciacion numerica)

Supongo f = f(x)

Llamamos fj = f(xj)

Llamamos fj−1 = f(xj−1)

Llamamos fj+1 = f(xj+1)

Llamamos 4x = xj+1 − xj

Por lo tanto tenemos que xj = j 4 .x con j = 0, 1, 2, ..., N . La funcion es

contınua pero solo conozco su valor en los puntos xj.

De esto sacamos varios esquemas para aproximar la derivada de la funcion,

en funcion de x: esquema adelantado(1.1) , esquema atrasado (1.2) y esquema

centrado (1.3).

5

6

(∂f

∂x

)j

' fj+1 − fj4x

(1.1)

(∂f

∂x

)j

' fj − fj−1

4x(1.2)

(∂f

∂x

)j

' fj+1 − fj−1

4x(1.3)

Se podrıa haber hecho un desarrollo de taylor alrededor de fj, entonces

fj+1(xj+1) = Taylor = f(xj) +

(∂f

∂x

)4 x+

(∂2f

∂x2

)4x2

2+ ... (1.4)

fj−1(xj−1) = Taylor = f(xj)−(∂f

∂x

)4 x+

(∂2f

∂x2

)4x2

2+ ... (1.5)

de las ecuaciones (1.4) y (1.1) vemos que

(∂f

∂x

)j

=f(xj+1)− f(xj)

4x− ∂2f

∂x2

4x2− ∂3f

∂x3

4x2

3!− ... (1.6)

de las ecuaciones (1.5) y (1.2) vemos que

(∂f

∂x

)j

=f(xj)− f(xj−1)

4x− ∂2f

∂x2

4x2

+ ... (1.7)

Si ahora restamos las ecuaciones (1.6) − (1.7) obtenemos:

7

(∂f

∂x

)j

=f(xj+1)− f(xj−1)

2.4 x+∂3f

∂x3

4x2

3!+ ...

De donde se puede ver que el primer termino corresponde al esquema centrado

y el segundo termino es el error de truncamiento del orden de 4x.

Si sumamos (1.6) + (1.7)

fj+1 + fj−1 = 2fj +∂2f

∂x24 x2 + 2

∂4f

∂x4

4x4

4!+ ...

Podemos despejar de esta ecuacion la derivada segunda, obteniendo

(∂2f

∂x2

)j

=fj+1 + fj−1 − 2fj

4x2+ 2

∂4f

∂x4

4x2

4!+ ...

De aca podemos ver que el primer termino corresponde a la aproximacion de

2do orden para la segunda derivada. El segundo termino corresponde al error de

truncamiento de orden 4 x2.

Ahora bien, en vez de tomar solo un punto de cada lado (es decir, en vez de

tener j+ 1 y j− 1) puedo tomar dos puntos de cada lado (teniendo entonces j+ 2

y j − 2). Haciendo esto obtenemos:

(∂2f

∂x2

)j

+ F (O(4x4)) = A.fj−2 +B.fj−1 + C.fj +D.fj+1 + E.fj+2

y obtengo los valores de A, B, C, D, y E:

8

A+B + C +D + E = 0 → f(xj)

4xA+4xB −4xD − 24 xD = 1 →(∂f

∂x

)

24 xA+4x2

2B +

4x2

2D + 24 x2E = 0 →

(∂2f

∂x2

)8

64 x3A+

4x3

6B − 4x

3

6D +

8

64 x3E = 0

16

244 x4A+

4x4

24B − 4x

4

24D +

16

244 x4E = 0

Tenemos 5 ecuaciones con 5 incognitas, ası que podemos despejar cada uno de

los valores de las constantes, obteniendo:

A =−1

124 x; B =

8

124 x; C = 0; D =

−8

124 x; E =

1

124 x;

Cuando reemplacemos en la ecuacion (), quedara solo terminos de orden 4x3,

por lo que el error sera O(4x4). El esquema que obtenemos en este caso es un

esquema centrado.

Si queremos obtener(∂3f∂x3

)j, podemos usar esta tecnica, obteniendo:

(∂3f

∂x3

)j

=2fj+2 − fj+1 + fj−1 − 2fj − 2

24 x3+O(4x2)

La expresion para un caso general es de la forma:

(∂nf

∂xn

)j

=

j+p∑i=j−q

γifi

Lo que me interese hallar son los valores de γi y la la condicion sobre las p y

q es que p + q ≥ m. Se obtendra algo de orden O(4xp+q−m+1). Si es centrado y

con un intervalo 4x fijo, entonces obtenemos algo del orgen O(4xp+q−m+2). Para

9

habllar los valores de las γi hace falta resolver

j+p∑i=j−q

γin!

(xi − xj)n = cn

con n = 0, 1, ..., p+ q y ademas

cn =

1 n = m

0 n 6= m

Veamos algunos ejemplos.

Si m = 0, p = 0, q = 1:

(∂f

∂x

)j

= fj−1 + γjfj

Para distintos valores de n tendremos:

n = 0γj−1

0!(xj−1 −4x)0 +

γj1!

(xj − x)0 = γj−1 + γj = 0

n = 1γj−1

1!(−4 x)1 + 0 = 1

∴ γj−1 = − 1

4x

∴ γj =1

4x

(∂f

∂x

)j

=fj − fj−1

4xes el esquema Atrasado

Y el orden del error se deduce O(4xp+q−m+1 = 4x1, entonces es de orden 1.

Quiero calcular la derivada usando dos puntos para atras. q = 2, p = 0,

m = 1. Tenemos entonces,

10

(∂f

∂ 4 x

)j

= γj−2fj−2 + γj − 1fj−1 + γjfj

γj−2 + γj−1 + γj = 0

−24 xγj−2 +4xγj−1 = 1

−24 xγj−2 −4xγj−1 = 1

(−24 x)2

2γj−2 +

(−4 x)2

2γj−1 = 0

(∂f

∂x

)j

=fj−2 − 4fj−1 + 3fj

24 x

Y el orden del error se deduce O(4xp+q−m+1 = 4x2, entonces es de orden 2.

Se llama Stencil a la cantidad de puntos que se utilizan para aproximar.

Otra forma es, en lugar de utulizar aproximaciones de Taylor, usar polinomios

de Lagrange. Es decir trato de aproximar a la funcion por polinomios, y la derivada

que quiero es la derivada de este polinomio.

Aproximo por un polinomio de grado 2 que pase por (xj−1, fj−1), (xj, fj),

(xj+1, fj+1):

P2(x) = fj+1(x− xj−1)(x− xj)

(xj+1 − xj−1)(xj+1 − xj)

+fj(x− xj−1)(x− xj+1)

(xj − xj+1)(xj − xj−1)

+fj−1(x− xj)(x− xj+1)

(xj−1 − xj)(xj−1 − xj+1)

Este polinomio cumple

11

P2(xj) = f(xj)

P2(xj+1) = f(xj+1)

P2(xj−1) = f(xj−1)

(∂f

∂x

)j

'(∂P2

∂x

)j

=fj+14 x

24 x2+

fj(−4 x)

4x(−4 x)+

fj 4 x

4x(−4 x)+

fj−1(−4 x)

(−4 x)(−24 x)

⇒(∂f

∂x

)j

=fj+1 − fj−1

24 x−→ es el esquema centrado

En este caso puedo poner los puntos xj en cualquier lado que yo quiera, sin

resolver ningun sistema (como en el caso de Taylor).

1.2. Analisis de Fourier

Supongo f(x) = Aeikx2πL con k ∈ Z. Entonces la derivada (en forma analıtica)

queda de la forma

∂f

∂x= iAk

Leikx

2πL

Y en forma numerica, con el esquema centrado queda

(∂f

∂x

)j

' fj+1 − fj−1

2.4 x(1.8)

Teniendo en cuenta que fj = f(xj) = Aeikxj2πL , reemplazamos en la ecuacion

(1.8) y obtenemos

(∂f

∂x

)j

' Aeikxj+12πL − Aeikxj−1

2πL

24 x

12

Como

xj+1 = xj +4x

xj−1 = xj −4x

Entonces

(∂f

∂x

)j

' Aeikxj2πLeik4x

2πL − e−ik4x 2π

L

24 x(1.9)

Teniendo en cuenta que

eik4x2πL − e−ik4x 2π

L

2= i.sen

(k4 x

L

)

La ecuacion (1.9) queda de la forma

(∂f

∂x

)j

' Aeikxj2πL

4xi.sen

(k4 x

L

)= f(xj).i.sen

(k4 x

L

)

Llamando

i.w′k = i.sen(k4 x2πL

)

i.wk = 2πLk

Tenemos que

∂f

∂x= i.wk.f(x)

Haciendo un desarrollo de Taylor para la expresion del w′k, obtenemos

w′k =2π

Lk

[1−

(2π

Lk4 x

)21

6+O

(k4 x

L

)4]

Se ve que el error es algo que esta al cuedrado. Tambien se puede ver que el

error depende de k, entonces cuanto mayor sea k, mayor sera el error.

13

Estos metodos producen errores dispersivos. Una forma de mejorar la aproxi-

macion para k grandes es aumentar los xj.

1.3. Consistencia de una ecuacion

Sea la ecuacion de difusion:

∂f

∂x= ν

∂2f

∂x2(1.10)

Tenemos que discretizar tanto la parte temporal como la parte espacial. En-

tonces introducimos una grilla espacial y una temporal:

fnj = f(xj, tn) =⇒

xj = j.4 x = j.h j = 0, 1, ..., N

tn = n.4 t = n.k n = 0, 1, ...,M

Para la parte espacial utilizaremos el esquema centrado:

(∂2f

∂x2

)nj

=fnj+1 + fnj−1 − 2fnj

4x2(1.11)

Para la parte temporal utilizaremos el esquema adelantado:

(∂f

∂t

)nj

=fn+1j − fnj4t

Reemplazando en la ecuacion (1.10) tenemos

fn+1j − fnj4t

= νfnj+1 + fnj−1 − 2fnj

4x2(1.12)

Despejando obtenemos

14

fn+1j = fnj + ν

4t4x2

(fnj+1 + fnj−1 − 2fnj )

Uno quiere saber si el modulo es consistente para ver si la aproximacion es

buena. Veamos la consistencia del metodo:

Supongamos F solucion de la ecuacion diferencial (1.10). Reemplzamos F en

(1.12), y pasamos todos los terminos para un lado, llamando luego

D(F ) =F (xj, t

n+1)− F (xj, tn)

4t− νF (xj+1, t

n) + F (xj−1, tn)− 2F (xj, t

n)

4x2

Hacemos Taylor en (xj, tn), quedando

D(F ) =∂F

∂t+4t2

∂2F

∂x2+ ...− ν ∂

2F

∂x2− ν4x

2

12

∂4F

∂x4+O(4t24 x4) (1.13)

Como F es solucion de la ecuacion de difusion, entonces

∂F

∂t− ν ∂

2F

∂x2= 0

Por lo tanto la ecuacion (1.13) se reduce a

D(F ) =4t2

∂2F

∂x2+ ...− ν4x

2

12

∂4F

∂x4+O(4t24 x4) (1.14)

Si hacemos tender los intervalos de las grillas espaciales y temporales a cero, se

ve claramente que D(F) tiende a cero. Por lo tanto el metodo es consistente.

OJO!!: Que sea consistente no significa que tienda al resultado exacto.

Capıtulo 2

Capıtulo 2

2.1. Esquemas Temporales

Supongo q = q(t) tal que ∂q∂t

= f(q, t)

Ejemplo 1: la ecuacion de Newton para una masa en resorte:

m∂2x

∂t2= −kx

Llamando v = ∂x∂t

tenemos que

m∂v

∂t= −kx

Tengo por lo tanto el siguiente sistema de ecuaciones:

∂t

x

v

=

0 1

− km

0

x

v

Donde

0 1

− km

0

= f(q, t)

15

16

Ejemplo 2: Ecuacion de difusion

∂φ

∂t= ν

∂2φ

∂x2

Donde puedo relacionar φ(x, t) = q y ∂2

∂x2es una matriz cuyos coeficientes

vienen de aproximar la derivada segunda.

Volviendo a lo de esquemas temporales:

Tenıamos que ∂q∂t

= f(q, t). Si discretizamos el tiempo e integramos tendremos:

∫ (n+1)4t

(n−m)4t

dq

dtdt =

∫ (n+1)4t

(n−m)4tf(q, t)dt

Por lo tanto

q((n+ 1)4 t)− q((n−m)4 t) = qn+1 − qn−m =

∫ (n+1)4t

(n−m)4tf(q, t)dt

A proximo la integral por el ancho de integracion, multiplicando por la funcion

evaluada en esos puntos:

∫ (n+1)4t

(n−m)4tf(q, t)dt ' [(n+ 1)4 t− (n−m)4 t].[βfn+1 + αnf

n + αn−1fn−1 + ...]

Entonces

qn+1 − qn−m

(1 +m)4 t= βfn+1 + αnf

n + αn−1fn−1 + ...+ αn−lf

n−l

donde l ≥ 0 y l ∈ /Z

17

Si β = 0 el metodo se llama explıcito.. Puedo obtener los valores de qn+1

a partir de q1, q2, q3, etc.

Si β 6= 0 el metodo se llama implıcito (porque me queda una ecuacion

donde tengo que despejar qn+1).

La idea es obtener los coeficientes. Hacemos taylor. Luego uso que f = dqdt

=

q′ ⇒ f ′ = q′′; ..., quedando

q′[1− (β + αn + αn−1 + ...+ αn−l)]+

+4 tq′′[

1

2

(1−m2

1 +m2

)− β + αn−1 + 2αn−2 + ...+ lαn−l

]+

+4t2

2q′′′[

1

3

(1 +m3

1 +m

)− β + αn−1 − 4αn−2 + ...− l2αn−l

]=

= ε

Condicion para que ε 0 cuando 4t 0 (consistencia):

1 = β + αn + αn−1 + ...+ αn−l

ε = 4tq′′(...) +O(4t2)

Elijiendo los αi y β puedo hacer que sea O(4tl+2). Simplemente con tomar

αl+1 y β, entonces tengo l + 2.

Para el metodo explıcito, β = 0 entonces el error sera del orden O(4tl+1)

2.2. Metodos No Iterativos

2.2.1. Metodos Explıcitos

Supongamos β = 0, entonces tengo un metodo explıcito.

18

Metodo de Euler o Adelantado

m = 0 y l = 0: Se lo llama Metodo de Euler o Adelantado

Tengo que αn = 1 y queda:

qn+1 − qn

4t= fn

ε = 4t.q′′

2+O(4t2)

Metodos de Adams-Bashforth

m = 0 y l > 0: Se lo llama Metodos de Adams-Bashforth

Si l = 1 entonces me queda:

qn+1 − qn

4t= αnf

n + αn−1fn−1

ε = 4tq′′(αn−1 +

1

2

)+O(4t2)

donde ε es el error. Si elijo αn−1 = −1/2 entonces el error que me que me queda

es de orden 4t2. Por lo tanto,

qn+1 − qn

4t=

3

2fn − 1

2fn−1 +O(4t2)

A este metodo en particular se lo llama AB2. Puedo encontrar uno para difer-

entes valores de l y armarme una tabla:

Cuadro 2.1: Ejemplos para distintos valores de l

l αn αn−1 αn−2 αn−3 ... ε

1 3/2 -1/2 - - ... O(4t2)2 23/12 -4/3 -5/12 - ... O(4t3)3 55/24 -59/24 39/24 -9/24 ... O(4t4)

19

Salto de Rana o Leapfrog

m = 1, l = 0

qn+1 − qn− 1

24 t= fn

ε =4t2

6q′′′

O(4t2)

αn = 1

(2.1)

2.2.2. Metodos Implıcitos

Supongamos β 6= 0, entonces tenemos metodos implıcitos.

Esquema de Adams-Moulton

Con m = 1, l = 0 tenemos el Esquema de Adams-Moulton.

qn+1 − qn−1

4t= βfn+1 − αnfn

donde β + αn = 1 y el error viene dado por

ε = 4tqn(

1

2− β

)+O(4t2)

Esquema Atrasado Implıcito

Con β = 1, αn = 0 tenemos el Esquema atrasado implıcito.

qn+1 − qn

4t= fn+1

donde ε = O(4t)

20

Esquema Trapezoidal

Con β = 1/2, α = 1/2 tenemos el Esquema trapezoidal

qn+1 − qn−1

4t=fn+1

2+fn

2

donde ε = O(4t2)

Otros esquemas

Para valores m = 0, l > 0 hacemos una tabla:

Cuadro 2.2: Ejemplos para distintos valores de l

l β αn αn−1 αn−2 ... ε

1 5/12 8/12 -1/12 - ... O(4t3)2 9/24 19/24 -5/24 1/24 ... O(4t4)

2.3. Metodos Iterativos (multipaso o predictor-

corrector)

Supongo esquema atrasado:

Paso predictor:

qn+1 − qn

4t= fn+1

fn+1 = f(qn+1, (n+ 1)4 t)

qn+1∗ − qn

4t= fn+1

fn+1∗ = f(qn+1∗, (n+ 1)4 t)

Paso corrector:

21

qn+1 − qn

4t= fn+1

qn+1 = qn +4tf(qn+1∗, (n+ 1)4 t)

Este caso de metodo multiplaso se llama Euler Atrasado o Matsuno.

Ahora tomemos el metodo trapesoidal y volvamos a hacer un multipaso.

qn+1 − qn

4t=

1

2fn+1 +

1

2fn

fn+1∗ = f(qn+1∗, (n+ 1)4 t)

qn+1∗ = qn + fn4 t

Este esquema es de orden 4t2 y tambien es conocido como metodo de Heun.

Una pequena alternativa son los metodos de Runge-Kutta. En particular los

de orden 2. Usan un metodo de medio paso en el metodo de Matsuno. Tienen un

error del orden de 4t2 (RK2):

qn+1/2∗ = qn +4t2fn

qn+1∗ = qn +4tf(qn+1/2∗, (n+ 1/2)4 t)

El metodo de Runge-Kutta de orden 4 (RK4) consiste en hacer 4 medios pasos :

qn+1 = qn +4t6

(K1 + 2K2 + 2K3 +K4)

K1 = f(qn, n4 t)

K2 = f(qn +K14t2,n+ 1

24 t)

K3 = f(qn +K24t2,n+ 1

24 t)

K4 = f(qn +K34 t, (n+ 1)4 t)

22

2.4. Estabilidad de Metodos

Supongamos qn+1 = λqn. λ ∈ C es el factor de amplificacion y depende del

esquema y de la funcion.

Esto se puede escribir como

qn+1 = λnqn

Entonces |λ| me indica si la solucion numerica crece a medida que hago las

iteraciones. Por lo que |λ| ≤ 1 es una condicion necesaria para que la solucion

permanezca acotada.

Supongamos que f(q, t) ∝ f(q). Linealizamos a f . Entonces podemos analizar

la estabilidad lineal. Si este no es estable, entonces el no lineal tampoco lo sera. Si

el lineal es estable, no puedo decir nada acerca del no lineal. Es decir, sirve para

descartar algunos casos.

Por ejemplo, la ecuacion de un oscilador

dq

dt= iwq

En el caso de un resorte,

q → x− iv

w

w =

√k

m

La solucion exacta es

q(t) = q(0)eiwt

Tomando una grilla temporal con intervalos de 4t, podemos aproximar

23

qn = q(n4 t) = q(0)eiwn4t

qn+1 = q((n+ 1)4 t) = q(0)eiw(n+1)4t

Por lo tanto,

qn+1e = λeq

ne

λe = eiw4t

Entonces |λe| = 1. Pero en general, segun el esquema que considere, voy a tener

un λ generico que depende de la solucion exacta:

λnum 6= λe

λnum = |λnum|eiθ

Veamos como es la estabilidad en alguno de los metodos vistos:

2.4.1. Estabilidad para Euler Adelantado

qn+1 = qn +4tf(qn, n4 t)

qn+1 = qn + iwqn4 t = (1 + iw4 t)qn

De donde sacamos que λnum = 1 + iw4 t entonces,

|λ|2 = 1 + w24 t2 > 1

Entonces es inestable ∀4t entonces se dice que es incondicionalmente inestable.

No significa que no se pueda usar, sino que despues de un tiempo el metodo diverge.

Veamos la fase:

24

tg(θnum) =w4 t

1= w4 t

Si tenemos que 4t es muy chico, entonces 4t << 1w

, entonces θnum ≈ w4 t.

Entonces los errores en la fase no son tan importantes.

2.4.2. Trapezoidal

qn+1 = qn +4t2

(fn+1 + fn

)

Para la ecuacion del oscilador queda

qn+1 = qn +4t2

(iwqn+1 + iwqn)

Entonces tenemos que

qn+1 =

(1 + iw4t

2

)(1− iw4t

2

)qnPor lo tanto,

|λ|2 =

(1 + w24t2

4

)(

1 + w24t24

) = 1

Entonces es incondicionalmente estable. Ademas no tiene error de amplitud.

El error de fase se puede hacer:

tg(θ) =w4 t

1− w24t24

Si 4t→ 0 entonces θ ≈ w4 t

25

2.4.3. Esquema Atrasado

qn+1 = qn +4tfn+1 = qn + iwqn+14 t

Despejando,

qn+1 =1

1−4tiwqn = λqn

Por lo tanto,

|λ|2 =1

1 + w24 t2< 1∀ 4 t

Entonces es incondicionalmente estable pero tiene amortiguamiento. El error

de fase viene dado por:

tg(θ) ≈ w4 t

2.4.4. Matsuno

qn+1∗ = qn +4tfn

qn+1 = qn +4tf(qn+1∗

qn+1∗ = qn + iw4 t(1 + w4 t)qn = [1 + iw4 t(1 + w4 t)]qn = λqn

⇒ |λ|2 = (1− w24 t2)2 + w24 t2 = 1− w24 t2 + w44 t4

Es estable si w4 t ≤ 1, por lo que el metodo es condicionalmente estable.

26

2.4.5. RK2

qn+1/2∗ = qn +4t2fn

qn+1 = qn +4tf(qn+1/2∗)

qn+1 =

[1 + iw4 t− w24t2

2

]qn = λqn

⇒ |λ|2 = 1 + w44t44

> 0

Entonces el metodo es incondicionalmente inestable. Pero a diferencia de Euler,

el error de RK2 crece como4t4 (en lugar de4t), entonces es un error que se puede

manejar.

2.4.6. Salto de Rana o Leapfrog

qn+1 − qn−1 = 24 tiwqn

Si suponemos w = 0 entonces dqdt

= 0⇒ q = cte. Sean q0 y q1 distintas,

q2 − q0 = 0⇒ q2 = q0

q3 − q1 = 0⇒ q3 = q1

En el metodo pueden aparecer oscilaciones impuras producto de como es el

metodo y no porque en realidad existan.

27

qn+1 = λnqn

qn = λqn−1 ⇒ qn+1 = λ2qn−1

⇒ λ2 − 1 = 24 tiwλ

⇒ λ1 = iw4 t+√

1− w24 t2

⇒ λ2 = iw4 t−√

1− w24 t2

Cuando 4t → 0 tenemos que λ1 → 1 y λ2 → −1. Solo me interesa λ1 ya que

λ2 tiene un error de fase muy grande, si bien el error de apmplitud esta acotado.

qn1 = λn1q01 −→ solucionf isica

qn2 = λn2q02 −→ solucioncomputacional

En general la solucion sera una combinacion lineal de lo que entcontramos

qn = aλn1q01 + bλn2q

02

a y b dependen de como elijo q0 y q1.

28

Capıtulo 3

Capıtulo 3

3.1. Ecuaciones Parabolicas

Un ejemplo de una ecuacion parabolica podrıa ser la ecuacion de difusion. Si ν

es constante, entonces el problema es lineal.

∂U

∂t= ν

∂2U

∂x2

U = U(x, y)

(3.1)

De donde viene esta ecuacion? Sale de plantear conservacion en un determinado

volumen V:

∂t

∫V

EdV = −∮~q · d~S = −

∫V

~∇ · ~q

⇒∫ (

∂E

∂t+ ~∇ · q

)dV = 0

∂E

∂t+ ~∇ · q = 0

En el caso de la temperatura, tenemos

∂T

∂t− χ∇2T = 0

29

30

Donde E = T y q = −χ∇T .

Para poder resolverlo, voy a necesitar condiciones iniciales y, eventualmente si

el problema es acotado, condiciones de borde.

Lo que hace esta ecuacion es, dada una perturbacion inicial, dicha perturbacion

se difuye, entonces la perturbacion se suaviza.

Supongamos que C1(t) = C2(t) = 0. Entonces podemos describir a la funcion

de U(x, t) comosu solucion analıtica de la forma:

U(x, y) =∞∑m=1

am(τ)sen

(mφx

L

)

Donde,

am(t) = ame−m2φ2νt

L2

am =2

φ

∫ L

0

a(x)sin

(mφx

L

)dx

Esta solucion analıtica se puede encontrar haciendo un analisis de Fourier, con

τ el tiempo caracterıstico,

τm 'L2

φνm2

Como podemos resolver esto numericamente, sin encontrar la solucion analıtica?

Sea U0j = a(xj) la condicion inicial. Aproximo la derivada espacial con una difer-

encia centrada de segundo orden:

∂2U

∂x2=Unj+1 + Un

j−1 − 2Unj

4x2(3.2)

Y la derivada temporal con el metodo de Euler adelantado:

∂U

∂t=Un+1j − Un

j

4t(3.3)

31

Reemplazando las ecuaciones (3.2) y (3.3) en la ecuacion de difusion se obtiene:

∂U

∂t=Un+1j − Un

j

4t= ν

∂2U

∂x2=Unj+1 + Un

j−1 − 2Unj

4x2

Entonces,

Un+1j = Un

j + r(Unj+1 + Un

j−1 − 2Unj

)r = ν 4t4x2

(3.4)

Para ver la consistencia, deberıa ver que D(u), con u la solucion exacta del

esquema discreto, cumpla que D(u)→ 0 cuando 4t→ 0 y 4x→ 0:

D(u) =un+1j − unj4t

− νunj+1 + unj−1 − 2unj

4x2

=4t2

(∂2u

∂t2

)nj

− ν4x2

12

(∂2u

∂x2

)nj

⇒ D(u)

4t→04x→0−−−→ 0

Por lo tanto el sistema es consistente.

Para ver la estabilidad, supongo un error o una perturbacion:

εnj = εneikxj (3.5)

Reemplazo (3.5) en la ecuacion (3.4):

32

εn+1eikxj = εneikxj + r[εneik(xj+4x) + εneik(xj−4x) − 2εneikxj

]εn+1 = εn

[1 + r

(eik4x + e−ik4x − 2

)]= εn [1 + r (2cos(k4 x)− 2)]

= εnλ

Donde λ es el factor de amplificacion. Para que el esquema sea estable, necesito

que |λ| < 1:

|λ| = |1 + r (2cos(k4 x)− 2)|

=

∣∣∣∣1− 4rsen2

(k4 x

2

)∣∣∣∣ < 1

−1 < 1− 4rsen2

(k4 x

2

)< 1

−2 < −4rsen2

(k4 x

2

)< 0

Entonces,

4rsen2

(k4 x

2

)≤ 2⇔

4r ≤ 2⇔

r ≤ 1

2⇔

ν4t4x2

≤ 1

2⇔

4t ≤ 4x2

2ν= τmax

Entonces el problema es estable. τmax = difusion y escala de la grilla.

33

Segun el teorema de LAX, si la ecuacion es lineal y el metodo es consistente y

estable, se puede decir que el metodo converge a la solucion.

Condicion CFL (Courant-Friendrisch-Lewy, 1988): Da una condicion

sobre la convergencia y habla de una rama de influencia para una ecuacion difer-

encial. Es decir, que la informacion proviene de otro lugar del espacio.

Figura 3.1: Cada punto lo aproximo con los 3 puntos centrados del tiempo anterior.El area debajo del triangulo es el rango de influencia que puede o no abarcar todoel eje

Que pasarıa si tomamos una grilla temporal mas pequena? Por ejemplo, toman-

do puntos equiespaciados entre los puntos ya existenes. Lo que pasarıa es que

mejora la grilla, pero el rango de influencia es el mismo ya que las diagonales que

se forman son las mismas.

Para mejorar el rango lo que conviene hacer es modificar 4t → O(4x2). Por

lo que se llega a la conclucion que se llego a travez del analisis de estabilidad:

4t ∝ 4x2.

El problema de esta condicion es que requiere aumentar mucho el 4t si quiero

aumentar la resolucion espacial.

Una forma de solucionar esto es utilizando un esquema implıcito que es el

metodo de Crank-Nicholson (1947). Propone usar un metodo trapezoidal para la

parte temporal:

34

Un+1j = Un

j + ν4t

24 x2

[(Unj+1 + Un

j−1 − 2Unj

)+(Un+1j+1 + Un+1

j−1 − 2Unj

)]

Como quiero despejar lo que corresponde al tiempo n+1, voy a tener problemas

porque hay 3 componentes espaciales en ese tiempo. Entonces voy a construir un

vector ~U que converja a esas componentes:

~U = (U1, U2, ..., UN−1

~Un = (Un1 , U

n2 , ..., U

nN−1)

Se puede armar el sistema A~Un+1 = B~U−n + ~C. Donde A y B vienen dadas

por:

A =

1− r − r2

. . . .

− r2

1− r . . . .

. − r2

1− r . . .

. . . . . .

. . . . . − r2

. . . . − r2

1− r

B =

1 + r r2

. . . .

r2

1 + r . . . .

. r2

1 + r . . .

. . . . . .

. . . . . r2

. . . . r2

1 + r

Y C = (rU0, 0, 0, ..., 0, rUn), C ∈ RN−1.

Resolviendo esto puedo obtener ~Un+1 = A−1B~U−n + A−1 ~C.

Para obtener la estabilidad, es analogo a antes:

35

εn+1eikxj = εneikxj +r

2

(εneik(xj+4x) + εneik(xj−4x) − 2εneikxj

)+

+r

2

(εn+1eik(xj+4x) + εn+1eik(xj−4x) − 2εn+1eikxj

)

Reescribiendo,

εn+1 [1− r (cos(k4 x)− 1)] = εn [1 + r (cos(k4 x)− 1)]

λ =1− 2rsen2(k4 x)

1 + 2rsen2(k4 x)

Como λ < 1 siempre, entonces el metodo es siempre estable, sin importar

cuanto valen 4x o r (incondicionalmente estable). Por que es mejor? Porque au-

menta el rango de influencia. Antes usabamos los 3 puntos de abajo y diagonal.

Ahora tambien se usan los puntos laterales (derecha e izquierda).

Por lo tanto el metodo puede expresarse de la forma

AUn+1

= BUn

+ C

∂U

∂f= ν

∂2U

∂x2

U = (U1, U2, ..., UN − 1)

C = (rU0, 0, 0, ..., 0, rUN)

3.2. Metodo Crank-Nicholson (1D

Solucion metodo Crank-Nicholson (1D) usando algoritmo Thomas (TDMA).

Sistema tridiagonal se puede escribir como:

αjUn+1j+1 + βjU

n+1j + γjU

n+1j−1 = wj j = 1, 2, ..., N − 1 (3.6)

36

αj = −r2

βj = 1− r

γj = −r2r = ν

4t4x2

⇒ wj = (1 + r)Unj +

r

2Unj−1 +

r

2Unj+1

Las condiciones de contorno son: U0 = C1 y UN = C2. Si elijo

β0 = 1 α0 = γ0 = 0 w0 = U0

βN = 1 αN = γN = 0 wN = UN

Podemos reescribir:

Un+1j+1 = xjU

n+1j + yj (3.7)

Reemplazando la ecuacion (3.7) en la ecuacion (3.6) obtenemos:

αj(xjUn+1j + yj) + βjU

n+1j + γjU

n+1j−1 = wj

Podemos entonces despejar Un+1j :

Un+1j = − γj

αjxj + βjUn+1j−1 +

wj − αjyjαjxj + βj

(3.8)

Comprarando las ecuaciones (3.7) y (3.8), podemos ver que:

Un+1j = xj−1U

n+1j−1 + yj−1

Porque,

37

xj−1 =−γj

αjxj + βjyj−1 =

wj − αjyjαjxj + βj (3.9)

Empiezo con j = N−1 entonces reemplazando en la ecuacion (3.7) obtenemos:

Un+1N = xN−1U

n+1N−1 + yN−1

Un+1N es un borde, y conozco los bordes de las condiciones de contorno. Em-

pece con j = N − 1 y voy bajando hasta tener todos escritos. Los valores de xN−1

y de yN−1 los obtengo de las ecuationes (3.9). Una vez obtenidos todos los valores,

usando la ecuacion (3.7) calculo:

Un+11 , ..., Un+1

N−1

Hago esto hasta llegar al borde que tambien es dato.

Veamos ahora el caso para dos dimensiones.

3.3. Ecuacion parabolica en 2D (difusion)

La ecuacion parabolica en dos dimensiones es mas conocida como la ecuacion

de difusion en 2D:

∂U

∂t= ν

(∂2U

∂x2+∂2U

∂y2

)(3.10)

Donde

U = U(x, y, t)

U(x, y, t = 0) = a(x, y)

38

Tomamos una grilla para las dos dimensiones y otra para el tiempo. Tenemos

entonces:

xi = i · 4x i = 1, 2, ..., N − 1

yj = j · 4y j = 1, 2, ..., N − 1

tn = n · 4t n = 1, 2, ...,M − 1

Podemos reemplazar las derivadas espaciales por sus aproximaciones numericas.

Por ejemplo, si la reemplazamos por el esquema centrado (ver ecuacion (1.11))

obtenemos:

∂2U

∂x2' Ui+1,j + Ui−1,j − 2Ui,j

4x2

∂2U

∂y2' Ui,j+1 + Ui,j−1 − 2Ui,j

4y2

Para la parte temporal, podemos utilizar el metodo de Euler:

∂U

∂t'Un+1i,j − Un

i,j

4t

Reemplazando todas las aproximaciones en la ecuacion 3.10) obtenemos:

Un+1i,j − Un

i,j

4t= ν

(Uni+1,j + Un

i−1,j − 2Uni,j

4x2+Uni,j+1 + Un

i,j−1 − 2Uni,j

4y2

)

Reescribiendo un poco las cosas, u llamando

39

rx = ν4t4x2

ry = ν4t4y2

tenemos:

Un+1i,j = Un

i,j+

+rx(Uni+1,j + Un

i−1,j − 2Uni,j

)+

+ry(Uni,j+1 + Un

i,j−1 − 2Uni,j

) (3.11)

Si tenemos que 4x = 4y, la ecuacion (3.11) se reduce a:

Un+1i,j = Un

i,j + r(Uni+1,j + Un

i−1,j + Uni,j+1 + Un

i,j−1 − 4Uni,j

)

Si se analiza la estabilidad, se puede ver que para garantizar estabilidad se

tiene que cumplir rx,y ≤ 14.

Si quiero una alternativa para que no tenga restricciones en el paso temporal

tengo que recurrir al metodo implıcito. Entonces puedo realizar un esquema como

el de Crack-Nicholson, pero en 2D:

3.3.1. Metodo implıcito (C-R)

Un+1i,j − Un

i,j

4t=ν

2

[(Uni+1,j + Un

i−1,j − 2Uni,j

4x2

)+

(Uni,j+1 + Un

i,j−1 − 2Uni,j

4x2

)]+

2

[(Uni+1,j + Un

i−1,j − 2Uni,j

4y2

)+

(Uni,j+1 + Un

i,j−1 − 2Uni,j

4y2

)]

Puedo tener

40

AUn+1

= BUn

+ C

Donde U es un vector largo con todas las incognitas Uij y A es una matriz muy

grande y difıcil de invertir.

Hay dos formas de resolver este sistema: Metodo de direcciones alternadas

y el Metodo de Splitting.

3.3.2. Metodo direcciones alternadas (ADI)

Para solucionar el tema de matrices grandes, podemos utilizar este metodo, de

la siguiente manera:

Un+1/2i,j − Un

i,j

4t/2= ν

[∂2U

∂x2

∣∣∣∣n+1/2 +∂2U

∂y2

∣∣∣∣n] Implicito + Explicito

Un+1i,j − U

n+1/2i,j

4t/2= ν

[∂2U

∂x2

∣∣∣∣n+1 +∂2U

∂y2

∣∣∣∣n+1/2]

Explicito + Implicito

Lo que hacemos es primero implıcito en una variable y explıcito en la otra, y

luego al revez.

Antes, si tenıa N = 100 entonces me iba a quedar una matriz de 1000 x 1000.

Ahora con este metodo me quedarıan 100 sistemas de 100 x 100.

3.3.3. Metodo splitting

Primero acoto (borro) una variable y luego la otra:

41

Un+1i,j − Un

ij

4t= ν

∂2U

∂x2|n+1

Un+1i,j − Un

ij

4t= ν

∂2U

∂y2|n+1

La idea es la misma que antes, la de resolver muchos sistemas mas chicos.

42

Capıtulo 4

Capıtulo 4

4.1. Ecuacion de Adveccion Lineal (1D)

Otra ecuacion que podemos resolver con aproximaciones numericas es la ecuacion

advectiva lineal, que viene dada porque

∂U

∂t+ v

∂U

∂x= 0 (4.1)

Con v = cte y U = U(x, t).

Voy a tener una funcion que se traslada sin deformarse, es decir una solucion

del tipo f(x− vt)

Tambien puedo buscar una solucion usando variables separadas con soluciones

del tipo

U = A(t)eikx

Reemplazando en la ecuacion (4.1) nos queda:

43

44

∂U

∂t= −v∂u

∂x

A′(t) = −ikxA(t) −→ ecuacion tipo oscilatoria

Hay varias formas de resolver esta ecuacion utilizando metodos numericos:

4.1.1. Euler en t, diferencias centradas en x

Un+j = Un

j − v4t

24 x

(Unj+ − Un

j−1

)Analisis de estabilidad: εneikxj

εn+1 = εn[1− i v4 t

24 xsen(k4 x)

]

λ = 1− i v4 t

24 xsen(k4 x) −→ factor de amplificacion

|λ|2 = 1 +v4 t

24 xsen(k4 x)

|λ| > 1 siempre⇒ es incondicionalmente inestable

Como el factor aumenta rapidamente, no conviene usarlo porque explota rapi-

do.

4.1.2. Esquema LAX

Consiste en reemplazar Unj por 1

2

(Unj+1 + Un

j−1

).

⇒ Un+1j =

1

2

(Unj+1 + Un

j−1

)− v4 t

24 x

(Unj+1 + Un

j−1

)

Vamos a creer que es consistente y vamos a analizar la estabilidad:

45

εneikxj =1

2εneikxj

(eik4x + eik(−4x)

)− ν 4 t

24 xεneikxj

(eik4x + eik(−4x)

)εn+1 = εn

[cos(k4 x)− iv4 t

4xsen(k4 x)

]

λ = cos(k4 x)− iv4 t

4xsen(k4 x)

⇒ |λ|2 = cos2(k4 x) +v24 t2

4x2sen2(k4 x)

⇒ |λ|2 = 1− sen2(k4 x)

[1−

(v4 t

4x

)2]

⇒ −1 ≤ 1− sen2(k4 x)

[1−

(v4 t

4x

)2]≤ 1

Una de las condiciones se cumple trivialmente, de la otra parte, tenemos que

pedir v ≤ 4x4t entonces 4t ≤ 4x

vpara que sea estable Condicion CFL).

La estabilidad de esto depende de como es 4t con v y como es el rango de

influencia. Para que sea buena la aproximacion quiero que abarque la solucion

exacta.

Volvamos al esquema de LAX:

Un+1j =

1

2

(Unj+1 + Un

j−1

)− v4t4x

(Unj+1 + Un

j−1

)(4.2)

Imponiendo la condicion v 4t4x ≤ 1.

Si resto Unj en ambos miembros y paso 4t para el otro lado tendremos

Un+1j − Un

j

4t=

1

2

(Unj+1 + Un

j−1 − 2Unj

4t

)− v

(Unj+1 − Un

j−1

24 x

)(4.3)

Donde podemos ver que

46

Un+1j − Un

j

4t=

1

2

(Un+1j − Un−1

j

4t

)+

1

2

(Un+1j + Un−1

j − 2Unj

4t

)

=1

2

∂U

∂t+

1

2

4t2

∂2U

∂t2

(4.4)

Es como una derivada de orden 2. Entonces queda la discretizacion de

∂U

∂t+4t2

∂2U

∂t2=4x2

24 t

∂2U

∂x2− v∂U

∂x

Reacomodando,

∂U

∂t+ v

∂U

∂x=4x2

24 t

∂2U

∂x2− 4t

2

∂2U

∂t2(4.5)

Derivando la ecuacion de adveccion (ecuacion (4.1)) obtendremos la ecuacion

de ondas:

∂2U

∂t2= v

∂2U

∂x2(4.6)

Reemplazando (4.6) en (4.5) obtenemos:

∂U

∂t+ v

∂U

∂x=

(4x2

24 t− v24t

2

)∂2U

∂x2= νnum

∂2U

∂x2

Se introduce un termino difusivo. νnum es la difusion numerica. Para que sea

realmente difusiva y se achate entonces νnum ≥ 0. Esto pasa si y solo si

4x2

24 t≥ v24t

2⇔ 4x2

v24 t2≥ 1 −→ es la condicion CFL

Esto controla la estabilidad, pero introduce un problema. El factor de amplifi-

47

cacion para este caso viene dado por:

λ = 1− sen2(k4 x)

[1−

(v4 t

4x

)2]

Si k4x << 1 ⇒ λ ≈ 1, tengo entonces un numero de onda bajo. Si k4x >>

1 ⇒ λ chico.

Los modos con k chico (longitud de onda grande) estan poco amortiguados.

Las fluactuaciones pequenas se amortiguan y se planchan.

Podemos hablar entonces de la relacion de dispersion del metodo LAX:

Una solucion exacta de la ecuacion de dispersion viene dada por

U(x, t) = Uei(wt−kx) (4.7)

Si reemplazamos (4.7) en (4.2) obtendrıamos:

Ue[i(tn+4t)−kxj ] =1

2Uei(wt

n−kxj)[eik4x + e−ik4x − v4t

4x(eik4x − e−ik4x

)]

Ahora bien, eiw4t = cos(k4 x)− v 4t4xisen(k4 x). @w ∈ R que cumpla.

Entonces si w = Ω + iγ en la ecuacion queda un sistema: Una ecuacion real y

una imaginaria:

sen(Ω4 t)e−γ4t = v4t4x

sen(k4 x)

cos(Ω4 t)e−γ4t = cos(k4 x)

Para resolverlo puedo hacer el cociente, tengo la tangente, hago arctg y despues

reemplazo para sacar γ.

Si 4t4xv = 1 se cumple que e−γ4t = 1, entonces γ = 0 y Ω = kv.

Por otro lado, tenemos que eiwt = ei(Ω+iγ)t = e−iΩte−γt

48

Si graficaramos Ω y γ en funcion del tiempo, obtendrıamos:

Figura 4.1: Graficos de Ω (izquierda) y γ (derecha) en funcion del tiempo, dondeB = v 4t4x

Problema no lineal, v 6= cte esto puede explotar. Aun ası, usar la solucion exacta

puede, de igual forma, explotar por las aproximaciones que hace la maquina. Usar

= 1 es como condicion de borde.

4.1.3. Salto de Rana o Leap-Frog

∂U

∂t= F (U)→ Un+1 = Un−1 + 24 tF (Un)→ Lo vimos en esquema temporal

Ecuacion de adveccion:

Un+1j = Un−1

j − v 24 t

24 x

(Unj+1 − Un

j−1

)

Estabilidad:

49

λ = −λ±√

1− α2 α = v4t4x

sen(k4 x)

⇒ |λ| ≤ 1⇔ v4t4x≤ 1 → es la misma condicoin CFL que LAX

Dispersion (sin cuentas):

sin(w4 t) = v4t4x

sen(k4 x)⇔ γ = 0 y w = Ω ∈ R

Por lo tanto no amortigua pero si dispersa.

4.1.4. Metodo LAX-Wendroff (LW)

La idea es hacer un medio paso en LAX. El medio paso consiste en:

Un+ 1

2

j+ 12

=1

2

(Unj + Un

j+1

)− v4t

2

(Unj+1 − Un

j

4x

)

Un+ 1

2

j− 12

=1

2

(Unj + Un

j−1

)− v4t

2

(Unj−1 − Un

j

4x

)El paso completo queda entonces,

Un+1j = Un

j − v4t4x

(Un+ 1

2

j+1 12

− Un+ 12

j− 12

)

La estabilidad se cumple si

4t ≤ 4xv−→ CFL

50

4.1.5. Metodos Implıcitos

Metodo aguas arriba

Un+1j − Un

j

4t+ v

Un+1j − Un+1

j+1

4x= 0

Este modelo es consistente.

Para poder aplicar este metodo necesito:

1. Condicion inicial

2. La informacion a la izquierda, en U(x = 0, t) > 0

Es incondicionalmente estable. Puede explotar porque depende de 4x y 4t

pero con las computadoras actuales se puede achicar el 4x y el 4t.

Metodo Wendroff

Es igual al anterior pero de orden mas alto:

1

2

(Un+1j+1 − Un

j+1

4t+Un+1j − Un

j

4t

)+v

2

(Un+1j+1 − Un+1

j

4x+Unj+1 − Un

j

4x

)= 0

En la figura (4.2) se puede ver el sentido de la informacion para este metodo.

Figura 4.2: Sentido de la informacion

Este metodo tambien es incondicionalmente estable.

51

4.2. Ecuacion de Adveccion Lineal (2D)

La ecuacion de adveccion en dos dimensiones es de la forma

∂U

∂t+ vx

∂U

∂x+ vy

∂U

∂y= 0 (4.8)

donde

U = U(x, y, t)

~v = (vx, vy)

Utilizaremos el metodo LAX para resolver esta ecuacion. Tenemos entonces:

Un+1ij =

1

4

(U i+1,jn + U i−1,j

n + U i,j+1n + U i,j−1

n

)(4.9)

Reemplazando (4.9) en la ecuacion de adveccion (4.8) se obtiene

−vx4 t

24 x

(Uni+1,j − Un

i−1,j

)− vy 4 t

24 y

(Uni,j+1 − Un

i,j−1

)

Para ver la estabilidad, εnei(kxxi+kyxj). Resolviendo, se llega al factor de ampli-

ficacion:

λ =1

2cos(kx4 x) +

1

2cos(ky 4 y)− vx4 t

4xsen(kx4 x)− vy 4 t

4ysen(ky 4 y)

⇒ |λ|2 = 1−[sen2(kx4 x) + sen2(ky 4 y)

] [1

2−(vx4 t

4x

)2

+

(vy 4 t

4y

)2]−

−1

4[cos(kx4 x)− cos(ky 4 y)]2 − [...]2

52

Para que el metodo resulte estable, necesito que todos los corchetes sean posi-

tivos. Por lo tanto, la condicion de estabilidad se reduce a pedir que

1

2−(vx4 t

4x

)2

+

(vy 4 t

4y

)2

≥ 0⇔

⇔(vx4 t

4x

)2

+

(vy 4 t

4y

)2

≤ 1

2

⇒4t ≤

√√√√[(vx4 t

4x

)2

+

(vy 4 t

4y

)2]−1

1√2

Si 4x = 4y entonces 4t ≤ 4x√v2x + v2

y

√2→ condicion CFL.

4.3. Ecuacion advectiva no lineal (1D)

∂U

∂t+ U

∂U

∂x= 0 Ecuacion de Burgers ideal (sino =

∂2U

∂x26= 0) (4.10)

Al igual que la version lineal, esta ecuacion conserva la energıa, es decir que si

defino

E =

∫ L

0

U2dx

Y supongo condiciones de contorno periodicas (U(0) = U(L)) ⇒ ∂E

∂t= 0.

Para ver que se cumple esto, multipliquemos la ecuacion (4.10) por U e inte-

gremos:

∫ L

0

U∂U

∂tdx+

∫ L

0

U2∂U

∂xdx = 0 (4.11)

Ahora bien,

53

U∂U

∂t=

1

2

∂U2

∂t

U2∂U

∂t=

1

3

∂U3

∂t

Reemplazando en la ecuacion (4.11) se obtiene

∫ L

0

1

2

∂U2

∂tdx+

∫ L

0

1

3

∂U3

∂xdx = 0

⇒ ∂

∂t

1

2

∫ L

0

U2dx+U3

3|L0 = 0

Como

1

2

∫ L

0

U2dx = E

U3

3|L0 = 0

Entonces∂E

∂t= 0⇒ la ecuacion de Burgers conserva la energıa.

Volvamos a la ecuacion de Burgers y le aplicamos algunos metodos ya vistos:

∂Uj∂t

= −UjUj+1 − Uj − 1

24 x

E =1

2

∑j

U2j 4 x

⇒ ∂E

∂t= −1

2

∑j

(U2j U

2j+1 − U2

j U2j−1

)6= 0

Con este esquema la energıa no se conserva. Donde esta el problema? Si suponemos

U1 = 0 U2 > 0 U3 < 0 U4 = 0

⇒ ∂U1

∂t= 0

∂U2

∂t> 0

∂U3

∂t< 0

∂U4

∂t= 0

∂U2

∂t→∞ ∂U3

∂t→ −∞

54

Entonces el metodo no es estable! Los metodos de diferencias finitas funcionan

”bien”para casos lineales, pero empiezan a funcionar mal y a no ser estables para

ecuaciones no lineales.

Hay un esquema que sı permite la conservacion de la energıa. A este metodo

se lo llama Esquema de Arokawa:

∂Uj∂t

= −(Uj+1 + Uj + Uj−1)

3

(Uj+1 − Uj−1)

24 x

Con este metodo se conserva la energıa, por lo que el metodo resulta ser estable.

∂E

∂t= −

∑j

1

6

(U2j+1Uj + U2

j Uj−1 − U2j Uj−1 − U2

j−1Uj)

= 0

Otro inconveniente que surge es el problema de Aliasing:

Sea U∂U

∂x. Si tengo como condicion inicial

U(x, t = 0) = ei2φk1x −→ ∂U

∂x= k1e

i2φk1x

∂U

∂t= −U ∂U

∂x∼ k1e

2φ(k1+k1)x

Me aparece un modo que tiene el doble de numero de ondas que tenıa original-

mente, pero la grilla lo vera como un numero de onda k1, ya que no distinguira entre

ese y el doble. Entonces numericamente estas dos funciones son las mismas ya que

el valor de la funcion en la grilla es el mismo.

Capıtulo 5

Capıtulo 5

5.1. Ecuaciones Elıpticas

5.1.1. Ecuacion de Poisson en 1D

∂2φ

∂x2= −ρ(x) x ∈ [0, L]

xj = j 4 x j = 0, ..., N

φj = φ(xj)

ρj = ρ(xj)

∂2

∂x2−→ φj+1 + φj−1 − 2φj

4x2

Puedo tener condiciones de contorno de Dirichlet

φ(x = 0) = dato

φ(x = L) = dato

o de Newman

55

56

∂φ

∂x(x = 0) = dato

∂φ

∂x(x = L) = dato

Reemplazando en la ecuacion de Poisson:

φj+1 + φj−1 − 2φj = −4 x2ρj j = 1, ..., N − 1

φ0 = dato

φN = dato

~φ = (φ1, ..., φN−1)

Entonces A · ~φ = ~w tal que,

A =

−2 1 0 ... ... ...

1 −2 1 0 ... ...

0 1 −2 1 0 ...

... ... ... ... ... ...

... ... ... ... ... ...

... ... 0 1 −2 1

... ... ... 0 1 −2

y ~w = (−φ0 −4x2ρ1;−4 x2ρ2; ...;−φN −4x2ρN−1).

Como A es trifiagonal, puedo usar el algoritmo de Thomas y se puede encontrar

φ con una cantidad de operaciones que es de orden N.

57

5.1.2. Ecuacion de Poisson en 2D

∇2φ = −ρ

∇2 =∂2

∂x2+

∂2

∂y2

φ = φ(x, y)

ρ = ρ(x, y)

Tambien puedo tener condiciones de contorno de Dirichlet o de Newman.

Me genero una grilla temporal

xi = i4 x i = 0, 1, ..., N

yj = j 4 y j = 0, 1, ...,M

Y discretizo la ecuacion:

φi+1,j + φi−1,j − 2φij4x2

+φi,j+1 + φi,j−1 − 2φij

4y2= −ρij

Si suponemos 4x = 4y = 4 entonces,

φi+1,j + φi−1,j + φi,j+1 + φi,j−1 − 4φij = −42 ρij (5.1)

Es como si estuviera haciendo un promedio con los 4 vecinos del punto en

cuestion.

Para escribir esto en forma matricial, tenemos que escribir a φ como ~φ =

φ(i−1)x(m−1)+j = (φ11, φ12, ...). Quedando entonces un sistema del tipo A~φ = w,

donde

58

A =

−4 1 ... ... 1 ... ...

1 −4 1 ... ... 1 ...

... 1 −4 1 ... ... 1

... ... ... ... ... ... ...

... ... ... ... ... ... ...

... ... ... ... ... ... ...

1 ... ... 1 −4 1 ...

... 1 ... ... 1 −4 1

... ... 1 ... ... 1 −4

Es una matriz de bandas porque ademas de las 3 diagonales principales tiene

diagonales con 1 en forma simetrica. La posicion de estas diagonales de[ende de m

del sistema.

Esto se lo puede resolver tan simple como en el caso trifiagonal, pero hay

metodos que lo amplifican.

Para resolver un sistema en general:

AU = d⇒ U = A−1d U = (U1, U2, ..., Um) ∈ R1xm

=⇒

A11U1 + A12U2 + ...+ A1mUm = d1

A21U1 + A22U2 + ...+ A2mUm = d2

::::::: ::::::: :::::::: :::: A ∈ Rnxm

An1U1 + An2U2 + ...+ AnmUm = dn

Para hallar la inversa de la matriz A, se puede utilizar la regla de Cramer:

59

A−1ij =

(−1)i+j|A|ij

|A|

Donde |A|ij es el determinante de la matriz de (m−1×n−1) sacando las filas

y columnas i,j.

El determinante de A se calcula como

detA =m∑j=1

(−1)i+j|A|ijAij

La cantidad de operaciones que harıan falta para resolver el sistema con este

metodo es del orden de m! con m = n× n siendo n la dimension de la matriz.

Otra forma de hallar la matriz inversa es utilizando el metodo de eliminacion

de Gauss. Para ello multiplico de la fila 2 a la fila m porA11

Ai1y le resto la ecuacion

1, entonces el sistema queda:

A11U1 +A12U2+ ...... +A1mUm = d1

− +A′22U2+ ...... +A′2mUm = d′2 con A′ij =A11AijAi1

− +A′32U2+ ...... +A′3mUm = d′3 con d′i =A11

Ai1di − d1

− :::::::: + :::::::: + ::::::::

− +A′m2U2+ ...... +A′mmUm = d′m

Luego hago lo mismo, desde la fila 3 hasta la fila m y luego sigo hasta triangular

por completo a la matriz. El numero de operaciones necesarias para realizar este

metodo es ∼ 2

3m3.

Es analogo a pensar que estoy descomponiendo aA = LU donde L es truangular

inferior (LOWER) con 1 en la diagonal y U es triangular superior (UPPER).

AU = d⇔ LUU = d⇔ UU = L−1d

60

Si la matriz A es simetrica entonces se puede usar la descomposicion de Cholesky.

Con el metodo de Cholesky se realizan la mitad de operaciones porque la matriz

es simetrica, es decir ∼ m3

3.

Estos algoritmos resuleven el problema de manera exacta. Solo tienen el error

de redondeo por el numero de maquina.

Como en algunos casos hay que calcular muchas veces la matriz inversa, no

conviene utilizar metodos directos. En estos casos se utilizan metodos iterativos

(Jacobi, Gaus-Seidel, SOR). Veamos de resolver la ecuacion de Poisson utilizando

alguno de estos metodos.

Podemos reescribir la ecuacion (5.1) para obtener:

φij =1

4(φi+1,j + φi−1,j + φi,j+1 + φi,j−1) +

42

4ρij (5.2)

Para poder resolverlo voy a necesitar suponer un determinado valor inicial. Lo

que voy a necesitar es ver que el metodo converja; es decir que despues de un cierto

numero de iteraciones la solucion no cambie mucho:

∣∣φn+1ij − φnij

∣∣ −→ 0

Veamos entonces cada uno de los metodos.

5.2. Metodo Jacobi

Dado un punto que se quiera conocer, los datos conocidos son todos los que lo

rodean (arriba, abajo, izquierda y derecha), para cada paso n.

Se puede plantear una equivalencia de esto en una evolucion temporal:

∂φ

∂t= ∇2φ+ ρ(x, y) (5.3)

Si encuentro φ y hago tender el tiempo a infinito entonces tengo una solucion

61

estacionaria. Ademas de ese caso, estarıa resolviendo la ecuacion de Poisson de

antes, ya que∂φ

∂t= 0.

Si discretizo la ecuacion (5.3) obtengo:

φn+1ij − φnij4t

= ν

[φni+1,j + φni−1,j + φni,j+1 + φni,j−1 − 4φnij

]42

+ νρnij

Esto es similar a la ecuacion de iteracion anterior (Jacobi) si uso4tν42

=1

4.

Recordar: esta es la misma que se encontro en el caso de la ecuacion parabolica

en 2D para que la misma converja.

El numero de operaciones en una iteracion de Jacobi es del orden m, que

es mucho mejor que el metodo directo. Pero lo voy a tener que hacer en una

determinada cantidad de iteraciones. Si el metodo converge rapido y no necesito

muchas iteraciones entonces puede ser que sea mejor resolver el sustema con este

metodo y no con un metodo directo.

Veamos la forma matricial:

AU = di

m∑j=1

AijUj = di i = 1, ...,m

Ui =1

Aij

di − m∑j=1j 6=i

AijUj

i = 1, ...,m

⇒ Un+1i =

1

Aii

dni − m∑j=1j 6=i

AijUj

i = 1, ...,m

Ahora bien, la matriz A la podemos descomponer en una suma de 3 matrices

A = L + D + U , siendo L la matriz diagonal inferior, D la matriz diagonal y U

la matriz diagonal superior. Si escribimos el metodo de Jacobi con estas matrices,

62

queda:

DUn+1

= dn − (L+ U)U

n

Se define el residuo en el paso n como Rn

= AUn − dn. Si llamo

4Un= U

n+1 − Un

⇒ D4 Un

= DUn+1 −DUn

= dn − (L+ U)U

n −DUn

Como (L+ U)Un −DUn

= (L+ U +D)Un = AUn entonces,

D4 Un

= dn − AUn

= Rn ⇒ D4 Un

= Rn

El metodo conduce 4Una 0.

5.3. Metodo de Gauss-Seidel

Dado un punto [(ij), (n)] en el espacio tiempo, los valores conocidos son: [(i, j+

1)(n)], [(i + 1, j)(n)], [(i − 1, j)(n + 1)], [(i, j − 1)(n + 1)]. El punto desconocido

que se calculara con el metodo es el [(ij), (n+ 1)].

Tenemos la misma expresion dada en la ecuacion (5.2), con variacion en el

tiempo tambien:

φij =1

4

(φni+1,j + φn+1

i−1,j + φni,j+1 + φn+1i,j−1

)+42

4ρij

La forma matricial quedarıa de la forma,

63

AU = d

n∑j=1

AijUj = di i = 1, ...,m

Ui =1

Aii

di − n∑j=1j 6=i

AijUj

i = 1, ...,m

⇒ Un+1i =

1

Aii

[dni −

i∑j=1

AijUn+1j −

m∑j=i+1

AijUnj

]

Si considero A = D + L+ U entonces,

(D + L)Un+1

= dn − UUn

4Un= U

n+1 − UnRn

= AUn − dn

(D + L)4 Un

= dn − UUn − (D + L)Un

= dn − (D + L+ U)Un

= −Rn

(D + L)4 Un

= −Rn

Este metodo tiene una ventaja en cuanto a programacion y es que NO necesito

definir una funcion antes, ya que en este caso no voy a sobreescribir informacion.

5.4. Metodo SOR

Un+1

es el valor obtenido con un esquema iterativa basico. Entonces,

Un+1

= wUn+1

+ (1− w)Un

Donde w es el coeficiente de sobre-relajacion. Veamos como se aplica este meto-

do para los metodos ya vistos:

64

1. Jacobi + SOR:

φij =w

4

(φni+1,j + φni−1,j + φni,j+1 + φni,j−1

)+w42

4ρij + (1− w)φnij

Usando la forma matricial, queda:

DUn+1

= w(dn − aUn)

+DUn ⇒ D4 U

n= −wRn

2. Gauss-Seidel + SOR:

φij =w

4

(φni+1,j + φn+1

i−1,j + φni,j+1 + φn+1i,j−1

)+w42

4ρij + (1− w)φnij

Usando la forma matricial, queda:

(D + wL)Un+1

= wdn − wUUn

+ (1− w)DUn ⇒ (D + wL)4 U

n= −wRn

5.5. Convergencia de los esquemas iterativos

AU = d

Supongo que U e es la solucion exacta del sistema. Defino el error en la iteracion

como εn = Un − U e. Entonces

Rn

= AUn − d−

(AU

n

e − d)

= A(Un − Un

e

)= Aεn

65

Entonces el residuo y el error estan relacioados mediante la matriz original y

se puede asegurar que εn → 0⇔ Rn → 0.

5.6. Metodo General

AU = d

Donde A = P + S → supongo una division arbitraria de la matriz A, de

la formula y del metodo iterativo. Entonces PUn = d − SUn. P se llama pre-

condicionador y cumple que

P 4 Un

= −Rn

Pεn+1 = P(Un+1 − Un

e

)= d− SUn − PUn

e

= d− SUn − d+ SUn

e

= −S(Un − U e

)

∴ Pεn+1 = −Sεn

εn+1 = −SP−1εn

= (J − P−1A)εn

Donde se uso que

66

AUn

= d

(P + S)Un

e = d

⇒ PUn

e = d− SUn

e

P−1A = P−1(P + S) = J − P−1S

Esto vale para un paso [erp puedo hacerlo recursivamente para todos los demas

pasos.

⇒ εn+1 = (I − P−1A)ε1

Llamando G = I − P−1A matriz de amplificacion.

El error en el paso n+1 depende del punto inicial de la matriz G. Como G es

una matriz diagonalizable, para que tienda a cero con n → ∞, necesito que los

autovalores sean < 1.

En el caso de jacobi:

P = D S = L+ U A = P + S

G = I −D−1(D + L+ U) = −D−1(L+ U)

Mientras que en el caso de Gauss-Seidel:

P = D + L S = U A = P + S

G = I − (D + L)−1(D + L+ U) = −(D + L)−1U

5.7. Taza de reduccion del error

Sea 4εn, se puede demostrar que

67

4εn =

[|εn||ε1|

] 1n

≤ ρ(g)

Donde g es el radio espectral de G.

Se define en consecuencia a la taza de convergencia como:

|log(ρ(g))|

El error se reduce en un factor 10 en un numero de iteraciones tal que

ρ(g) ≤(

1

10

) 1n

= 10−1n

log(ρ(g)) ≤ log

[(1

10

) 1n

]= − 1

n

⇒ n ≥ −1

log(ρ(g))> 0

Por ejemplo, para la ecuacion de Poisson, el metodo de Jacobi:

A =

−4 1 ... ... 1 ... ...

1 −4 1 ... ... 1 ...

... 1 −4 1 ... ... 1

... ... ... ... ... ... ...

... ... ... ... ... ... ...

... ... ... ... ... ... ...

1 ... ... 1 −4 1 ...

... 1 ... ... 1 −4 1

... ... 1 ... ... 1 −4

Se puede ver que si considero un vector de la forma

68

sin

(πliM

)sin(πmj

M

)con l,m = 1, ...,M

tengo entonces un autovector de A con autovalor

Ω = −4

(sin2

(πl

2M

)+ sin2

(πm2M

))

Como G = I −D−1A, resulta que los autovalores de G son de la forman

λ = 1− Ω

d

λ = 1−[sin2

(πl

2M

)+ sin2

(πm2M

)]

=1

2−[cos

(πl

M

)+ cos

(πmM

)]

El autovalor mas grande es para l = m = 1, en ese caso λ = cos( πM

), entonces

el metodo converge.

Si M >> 1 (tiene una grilla grande) puedo hacer Taylor y queda

ρ ≈ 1− π2

2M2

Por ejemplo si M = 100, ρ ≈ 0,9995⇒ log(ρ) = −0,0002. Entonces

− 1

log(ρ)= 4664 = numero de iteraciones

Por lo tanto, reduzco un error un orden de magnitud en aproximadamente

4000 iteraciones. Puede parecer un numero muy grande, pero hay que considerar el

numero total de iteraciones, que en Jacobi es M2 ⇒ el numero total de operaciones

N sera

69

N = 4000×M2 = 4 · 107

Para comparar todo con la eliminacion de Gauss:

2

3(M2)3 ≈ 1006 = 1012

Son 5 ordenes de magnitud mas!!!

Para el caso de Gauss-Seidel:

G = I − (D + L)−1A

Analogamente, se puede ver que

λ =1

4

[cos

(πl

M

)+ cos

(πmM

)]2

ρ(g) = cos2( πM

)Si M>>1−−−−−→ ρ ∼ 1− π2

M2

La unica diferencia es que falta un 2 en el denominador, lo que hace que converja

mas rapido que Jacobi. Por ejemplo, si M = 100 tenemos

− 1

log(ρ)= 2331 −→ la mitad que para Jacobi

Por ultimo, para el caso de SOR. Hay que elegir un w para que mejore las

cosas, un w optimo (wopt):

wopt =2

1 +√

1− ρ2j

→ esto vale para la ecuacion de Poisson

Donde ρj es el radio espectral del metodo Jacobi. ρmin = wopt − 1, elegida con

70

el wopt.

Vimos que ρj = cos( πM

), entonces

wopt =2

1 + sin(πM

) ≈ 2

(1− π

M+

π2

M2+ ...

)

ρmin = wopt − 1 ≈ 1− 2π

M

Se ve que ρmin es mejor que el de Jacobi

(1− π2

2M

)y que el de Gauss-Seidel(

1− π2

M

).

Por ejemplo, si M = 100 entonces

− 1

log(ρmin)= 35

Capıtulo 6

Capıtulo 6

6.1. Metodos Espectrales

Idea general: Supongamos un problema del tipo U = U(x). Esta funcion satis-

face

L(U) = F (x)

Donde L es un operador diferencial y esto vale en un intervalo (a, b). Ademas

las condiciones de borde estan definidas: U(x = a) = Ua, U(x = b) = Ub.

Propongo expandir U = U(x) con un cierto numero de funciones de base φn(x)

(es como una expansion de Fourier).

U(x) 'N∑n=0

Cnφn(x) = UN(x)

Por ejemplo, si las funciones son trigonometricas, entonces queda una serie de

Fourier. Ademas si puedo extender infinitamente a la funcion, entonces la suma-

toria es infinita:

71

72

U(x) '∞∑n=0

Cneinx2πL

Ahora estamos considerando como un truncamiento de esta serie ya que la

sumatoria solo va hasta ν.

Entonces vamos a reemplazar en la ecuacion diferencial y pido que se minimice.

L(UN)− F (x) = RN(x) −→ residuo (∼ error) debido al truncamiento

Entonces,

como elegimos las φn? Depende especialmente del caso y dependen fuerte-

mente de las condiciones de contorno. Es decir, si tengo condiciones de con-

torno no periodicas, entonces φn sern peraiodicas. Otras opciones son los

polinomios de Chebychev (que sirven para ecuaciones no periodicas), y otra

son funciones no nulas en secciones (metodos de elementos finitos). Lo bueno

de estas funciones es que son faciles de derivar.

Como obtenemos las Cn? Hay varias formas de obtener las Cn:

1. Galerkin: Se pide que

∫ b

a

RN(x)φN(x)w(x)dx = 0 −→ w(x) = funcion peso

Donde n = 0, 1, ..., N . Esto es el producto interno entre RN y φN . Es

decir que RN y φN son ortogonales, por lo que se puede decir que RN

esta fuera del subespacio generado por los φN , es por eso que se puede

decir que el error es chico o no nos interesa. Entonces tengo N + 1

ecuaciones con N + 1 incognitas (las Cn).

73

2. Metodo pseudoespectral (ps) o colocacion: Se discretiza el espacio en xi

puntos, obteniendo N+1 puntos en el intervalo (a, b). la forma de elegir

estos puntos dependera de como quiera resolver el problema. Entonces

tengo N + 1 puntos en [a, b] ↔ U0, U1, ..., UN se relacionan con los

C0, C1, ..., CN.

Este caso es una transformada discreta de Fourier. Este metodo pide

que RN(xi) = 0 tal que i = 0, 1, ..., N . Tengo N + 1 ecuaciones que

estaran en terminos de las CN .

Observaciones: Estos metodos son buenos porque son faciles de derivar ya que

se puede escribir las derivadas como funcion de φn:

d

dx

(N∑n=0

cnφn(x)

)=

N∑n=0

δnφn(x)

dφndx

en terminos de φ0, φ1, φ2, ..., φN

Otra observacion es que sidUNdx

depende de todos los coeficientes Cn. Por lo

tanto depende de los Un entonces es una derivada global. Es decir, la derivada

depende de la funcion en todos los puntos. En el caso de las diferencias finitas solo

interesaban los puntos vecinos. Esto permite tener un orden alto en el metodo. En

el caso de las diferencias finitas aproximando con 2 puntos centrados el orden es

de O(4x2). En el caso pseudoespectral el orden es de O(4xn).

Si duplico el N (numero de puntos) pero mantengo la aproximacion O(4x2)

entonces el 4x va a ir como 1n

entonces el error es como 1n2 .

En el caso pseudoespectral si hago lo mismo entonces el error es como 1nN

entonces es mucho mas preciso!!!

Donde se usan mas? Con condiciones de contorno. Por ejemplo, fluidos con

alto numero de Reynolds y mucha turbulencia. Otro ejemplo serıan los modelos

de circulacion global, que usan armonicos esfericos.

74

6.1.1. Metodo de Galerkin

L(U) = F (x) a ≤ x ≤ b

U(x) ' UN(x) =N∑n=0

Cnφn(x) → Rν(x) = L(U)− F (x)

⇒ (Rνmφn) =

∫ b

a

Rνφn(x)w(x)dx = 0

⇒ (L(U)− F (x), φn) = 0⇒

⇒ (L(UN), φN(x)) = (F (x), φn(x)) n = 0, ..., N

Veamos un ejemplo (sencillo):

∂2U

∂x2− 1

2U = −3

2cos(x)− 9

2cos(2x)

Con condiciones de contorno periodicas: U(x) = U(x+ 2π)

L() =∂2

∂x2− 1

2; F (x) = −3

2cos(x)− 9

2cos(x)

Elijo φn(x) = cos(nx) con ν = 2 y tomamos w(x) ≡ 1:

U2(x) = C0 + C1 cos(x) + C2 cos(2x)

(L(U2), φ0) =

∫ b=2π

a=0

[∂2

∂x2− 1

2

]U2(x) cos(nx)dx n = 0, 1, 2

(F1, φ1) =

∫ 2π

0

[−3

2cos(x)− 9

2cos(2x)

]cos(nx)dx

∂2U2

∂x2= −C1 cos(x)− 4C2 cos(2x)

Como quedan integrales de la forma

75

∫cos(mx) cos(nx)dx

entonces si m = n la integral es π, si son distintos se anula y si m = n = 0 la

integral vale 2π.

(L(U2), φ0) = −πC0 (F1, φ0) = 0 ⇒ C0 = 0

(L(U2), φ1) = −3

2πC1 (F1, φ1) = −3

2π ⇒ C1 = 1

(L(U2), φ2) = −9

2πC2 (F1, φ2) = −9

2π ⇒ C2 = 1

∴ U2(x) = cos(x) + cos(2x) ' U(x)

Problemas con dependencia temporal:

U = U(x) a ≤ x ≤ b

∂U

∂t= L(U) + F (x, t) U(x, 0) = g(x) y CC

UN(x, t) =N∑n=0

an(t)φn(x)

Por el metodo de Galerkin defino un residuo:

RN =∂UN∂t− L(UN)− F (x, t)

Ahora defino:

(f, g) '∫ b

a

F (x)g(x)w(x)dx

Es un producto y solo vale para funciones reales. Si son complejas:

76

(f, g) '∫ b

a

F (x)g∗(x)w(x)dx

Donde g∗(x) es la conjugada de g(x). Para que se cumpla Galerkin pido que,

(φm, RN) = 0 m = 0, 1, ..., N

Aplicando el producto queda

N∑n=0

[dan(t)

dt(φm, RN)− (φm,L(UN))

]− (φm, t) = 0 m = 0, 1, ..., N (6.1)

Esto me da un conjunto de N+1 ecuaciones diferenciales ordinarias para los

an(t). Es decir, pase de tener una ecuacion diferencial a tener N+1 pero que estan

acopladas entre sı. Es decir, para hallar uno tengo que tener los coeficientes de los

otros. Esto se puede escribir comosu

dandt

= F (a0, a1, ..., aN)

Si L es lineal entonces,

L(UN) =N∑m=0

an(t)L(φn(x))

Utilizando esto, la expresion (6.1) queda:

N∑m=0

[(φm, φn)

dandt− (φn,L(φn)) an(t)

]= (φm, F ) m = 0, 1, ..., N (6.2)

Esto se puede escribir de manera mas elegante definiendo

77

H −→ Hmn = (φm, φn)

a −→ a(t) = (a0(t), a1(t), ..., aN(t))

F −→ ((φ0, F ); (φ1, F ); ...; (φN , F ))

p −→ pmn = (φm,L(φn))

Con estas nuevas definiciones, la ecuacion (6.2) queda reducida a

Hda

dt− pa = F

Con condiciones iniciales

(φm, UN(t = 0)) = (φm, g)

Veamos un ejemplo: La ecuacion de difusion (1D).

∂U

∂t= ν

∂2U

∂x2U(x, 0) = g(x)

U(x = 0) = 0 = U(x = π)

0 ≤ x ≤ π

⇒ L = ν∂2

∂x2

Por lo tanto tenemos

78

UN(x, t) =N∑n=1

an(t) sin(nx) −→ sin(nx) = φn(x)

∂UN∂t

=N∑n=1

∂an∂t

sin(nx)

L(UN) = νN∑n=1

∂an∂tL (sin(nx)) L (sin(nx)) = −n2 sin(nx)

(φm, φn) =

∫ π

0

sin(mx) sin(nx)dx =π

2δmn

Entonces aplico Galerkin (φm, RN) = 0, m = 0, 1, ..., N quedando

N∑m=1

[dandt

(φm, φn) + (φm,L(UN)) an

]= 0

⇒N∑m=1

[dandt

π

2δmn + n2π

2δmnan

]= 0

Como todos los terminos dependen de δmn, solo sobreviran los terminos cuando

m = n. Entonces el sistema queda:

dandt

π

2+ νm2π

2am = 0 m = 1, ..., N

dandt

= −νm2am ⇒ am(t) = am(0)e−νm2t

Da una ecuacion de decaimiento. am(0) sale de la condicion inicial (φm, UN(x, 0)) =

(φm, g)

79

UN(t = 0) =N∑n=1

an(0) sin(nx)

(φm, UN(t = 0)) =N∑n=1

an(0)

∫ π

0

sin(mx) sin(nx)dx

=N∑n=1

an(0)π

2δmn

= (φm, g)

=

∫ π

0

sin(mx)g(x)dx

⇒ am(0) =2

π

∫ π

0

sin(mx)g(x)dx

⇒ UN(x, t) =N∑n=1

an(t) sin(nx)

La solucion exacta es la misma pero con sumatoria infinita:

∞∑n=1

an(t) sin(nx)

con an(t) =

(2

π

∫ x

0

g(x) sin(nx)dx

)e−n

2t

La solucion por el metodo de Galerkin es un truncamiento de la serie de Foourier

a N terminos. El error va a ser de orden e−N2.

Veamos ahora como sera el metodo de colocacion o Pseudoespectral.

6.1.2. Metodos Pseudoespectrales

En este caso, a diferencia de Galerkin, necesito definir una grilla espacial. Dis-

cretizo x:

80

xi =iπ

N + 1; 4x =

π

N + 1; x0 = 0 ; xN+1 = π

i = 0, ..., N + 1 ; U0 = 0 ; UN+1 = 0 ; Ui = U(xi, t) = 0

Vuelvo a plantear el truncamiento de la sierte

UN(x, t) =N∑n=1

an(t)φn(x) −→ φn(x) = sin(nx)

Las incognitas las puedo dejar en funcion de las an(t) o de los puntos U(x, t).

Estas dos cosas estan relacionadas entre sı mediante

U(xi, t) =N∑n=1

an(t)φn(xi) =N∑n=1

an(t) sin

(niπ

N + 1

)

∀i = 0, 1, ..., N

(6.3)

Esto es la transformada discreta de Fourier, donde se ve que las an:

an(t) =

[N∑i=1

U(xi, t) sin

(niπ

N + 1

)]2

N + 1−→ 2

N + 1= factor de normalizacion

Esto vale para cada n = 0, 1, ..., N .

Para poder invertir la matriz hay que tener en cuenta la siguiente identidad:

N∑n=1

sin

(niπ

N + 1

)sin

(nkπ

N + 1

)=N + 1

2δik

Para poder resolver el metodo de colocacion, necesito encontrar los U(x1, t).

81

L(UN) =N∑n=1

−n2an sin(nx)

∂UN∂t

=N∑n=1

dandt

sin(nx)

Planteo:

RN =∂UN∂t− L(UN)

⇒ RN(xk) = 0 k = 1, ..., N

⇒ ∂UN∂t− L(UN)|xk = 0

N∑n=1

[dandt

+ n2an

]sin(nxk) = 0 (6.4)

En este caso particular es facil ver que, para que se cumpla, necesito que[dandt

+ n2an

]= 0.

En el caso que no quede tan desacoplado, necesito replantear todo y hallar los

U(xi, t). Para esto utilizo la ecuacion (6.3) y reemplazo en la ecuacion (6.4).

an =2

N + 1

N∑i=1

U(xi, t) sin

(inπ

N + 1

)

⇒N∑n=1

2

N + 1

N∑i=1

[dU(xi, t)

dt+ n2(U(x, t))

]sin

(inπ

N + 1

)sin

(knπ

N + 1

)= 0

Utilizando las mismas identidades de sumatorias que vimos anteriormente, esta

ecuacion se puede reescribir de la forma:

82

N∑i=1

dU(xi, t)

dtδik +

2

N + 1

N∑i=1n=1

n2 sin

(niπ

N + 1

)sin

(nkπ

N + 1

)U(x, t)

dU(xi, t)

dt=

N∑i=1

DikU(xi)

donde Dik =2

N + 1

N∑n=1

n2 sin

(niπ

N + 1

)sin

(nkπ

N + 1

)

Dik es una matriz de diferenciacion (se relaciona con el operador L que en este

caso es aplicar∂2

∂x2.

6.2. Ecuacion de Burgers

∂U

∂t+ U

∂U

∂x= ν

∂2U

∂x2

U∂U

∂x−→ termino adveccion

ν∂2U

∂x2−→ termino difusivo

Donde U = U(x, t).

Se puede pensar como una aproximacion de la ecuacion de Navier-Stokes:

∂U

∂t+ (U · ∇)U = −∇p+ ν∇2

U + F

La ecuacion de Burgers tiene una solucion analıtica, si se tiene las condiciones

de contorno e iniciales necesarias:

83

x ∈ [0, 2π] ; U(x) = U(x+ 2π) −→ condicion de contorno

;∂U(x)

∂x=∂U(x+ 2π)

∂x−→ condicion de contorno

; U(x, 0) = g(x) −→ condicion inicial

6.2.1. Metodo de Galerkin para Burgers

UN(x, t) =

N2−1∑

k=−N2

+1

Ukeikx −→

(φk = eikx

)

(RN , φN) = 0 =

∫ 2π

0

(∂UN∂t− L(UN)

)φkdx

=

∫ 2π

0

[∂UN∂t

+ UN∂UN∂x− ν ∂

2UN∂x2

]e−ikxdx

con k = −N2

+ 1, ...,N

2− 1

(6.5)

∂UN∂t

=∂

∂t

N2−1∑

m=−N2

+1

Um(t)eimx

=

N2−1∑

m=−N2

+1

∂Um(t)

∂teimx

∂UN∂x

=

N2−1∑

m=−N2

+1

imUm(t)eimx

∂2UN∂x2

= −N2−1∑

m=−N2

+1

m2Um(t)eimx

Entonces,

84

UN∂UN∂t

=

N2−1∑

m=−N2

+1

Um(t)einx

N2−1∑

m=−N2

+1

imUm(t)eimx

=

N2−1∑

m=−N2

+1

imUm(t)ei(n+m)x

Uniendo todo y reemplazando en la ecuacion (6.5) tenemos

∫ 2π

0

N2−1∑

m=−N2

+1

dUmdt

eimx +

N2−1∑

m,n=−N2

+1

imUmUnei(m+n)x+

+

N2−1∑

m=−N2

+1

νm2Umeimx

e−ikxdx = 0

Ahora bien,

∫ 2π

0

ei(m−k)dx = 2πδm,k

∫ 2π

0

ei(m+n−k)dx = 2πδm+n,k

Mirando el resultado de estas integrales, la ecuacion se simplifica:

dUkdt

+ νk2Uk +

N2−1∑

m,n=−N2

+1m+n=k

imUmUn = 0 k = −N2

+ 1, ..., N2− 1

Esto da un sistema de ecuaciones ordinarias para Uk(t).

En el caso de metodo espectral, el error (si tengo N datos), es del orden de 1NN .

Sin embargo, para el metodo de diferencias finitas, el error es de 1N2 si el metodo

es de orden 2.

Podrıa disminuir eligiendo mas puntos, aumentando el orden y por lo tanto

85

disminuyendo el error. Esto trae como inconveniente que aumenta el numero de

operaciones. En el caso del orden 2, el numero de operaciones es del orden de N.

Es decir, que si bien el metodo espectral es muchısimo mejor en cuanto al error,

el de diferencias finitas es mejor porque utiliza menos operaciones.

El metodo de Galerkin es util para problemas chicos.

6.2.2. Metodo Pseudoespectral (o de colocacion)

Ya vimos un poco sobre los metodos PS hace unos capıtulos. Ahora los veremos

con mas atencion. Discreticemos el espacio de la forma

xj =2π

Nj j = 0, 1, ..., N − 1

UN(xj, t) =

N2−1∑

k=−N2

+1

Ukeikxj

Puedo pensar que las incognitas son los UN(xj, t) o los Uk(t). Ambos se pueden

relacionar a partir de la transformada discreta de Fourier. Esto me permite pasar

de un conjunto de incognitas al otro:

Uk(t) =1

N

N−1∑j=0

UN(xj, t)e−ikxj

∂UN(xj, t)

∂x=

N2−1∑

k=−N2

+1

ikUkeikxj

Ahora falta plantear RN(xj) = 0.

En la practica, se suele dejar todo expresado en funcion de Uk? Como funciona

el metodo pseudoespectral en la practica?

86

U(xj, t) = g(x)→ UN(xj, 0)DFT−−−→ Uk(0)→ ∂Uk(t)

∂t= −

[UN

∂UN∂x

]− νk2Uk

En la practica,

UNDFT−−−→ Uk →

∂x;∂2

∂x2

∂2

∂x2→ −k2Uk

∂x→ ikUk

DFT−1

−−−−→ ∂UN∂x

= UNDFT−−−→

[∂UN∂x

UN

]k

Este camino no parece muy eficiente porque realiza mas operaciones. Por re-

alizar las trnasformaciones de Fourier tengo que ver el orden de N2 operaciones.

Pero utilizando la transformada rapida de Fourier, el numero de operaciones

que tengo que realizar es N log(N). Si bien es mayor que resolviendo el metodo

de la forma mas directa (que realizan operaciones del orden de N), no es mucho

mayor.

El hecho de aplicar muchas veces la transformada rapida de Fourier puede traer

un problema que se conoce como aliasing.

6.2.3. Aliasing

U(xj) =

N2−1∑

m=−N2

+1

Umeimxj

∂U

∂x(xj) =

N2−1∑

n=−N2

+1

Uneinxj

Entonces

87

w(xj) = U(xj)∂U

∂x(xj) =

N2−1∑

n,m=−N2

+1

UnUmei(n+m)xj (6.6)

Ahora bien,

[

U(xj)∂U

∂x(xj)

]k

→ wk

Entonces,

w(xj) =

N2−1∑

k=−N2

+1

wkeikxj

w(xj) =1

N

N2−1∑

k=−N2

+1

wke−ikxj

Reemplazando la expresion (6.6) en la expresion dada para w(xj) tenemos:

w(xj) =1

N

N−1∑j=0

N2−1∑

m,n=−N2

+1

inUmUnei(m+n)xje−ikxj

=

N2−1∑

m,n=−N2

+1

1

N

N−1∑j=0

inUmUnei(m+n−k)xj

=

N2−1∑

m,n=−N2

+1

(inUmUn

1

N

N−1∑j=0

ei(m+n−k)xj

)

Ahora bien, xj = 2πjN

, y se que:

1

N

N−1∑j=0

eipxj = δp,qN q = 0,±1,±2, ...

Para nuestro caso tenemos que p = n+m−k. La integral va a dar 1 si p = qN .

88

Por como se mueven los ındices en la sumatoria, qN no puede ser mayor que N.

Entonces se llega a que qN puede ser 0 o N.

Si qN = 0 wk =∑m,n

m+n=k

inUmUn

Si qN = ±N wk =∑m,n

m+n=k±N

inUmUn

(6.7)

wk es la suma de las dos.

Pero por el metodo de Galerkin:

[U∂U

∂x

]k

=∑m,n

m+n=k

inUmUn

Este resultado es distinto a (6.7); sobra el termino que corresponde a qN = ±N .

Eso es porque ese termino es el que se relaciona con el aliasing y se debe a que la

grilla no distingue modos k +N o k −N del modo k.

Hay varias tecnicas para poder remover el aliasing. Uno de ellos es el metodo

de los 23:

Supongo M ≥ 23N y hago que los modos con |k| ≥ N

2sean 0. Es como un filtro

pasabajo, ya que elimino las oscilaciones mas chicas.

Esto me asegura que:

−M < −3

2N + 2 ≤ m+ n− k ≤ 3

2N − 2 < M

Cuando m+ n− k = ±M el metodo va a ser cero.

Es decir, dado un N del sistema, filtro los modos con |k| ≥ N3

. Esto lo tengo

que hacer en cada iteracion temporal.

Dado

89

U(xj, t = 0)→ Uk(0)→ ∂

∂x= ikxUk

∂2

∂x2= k2xUk

Luego aplico FFT−1:

FFT−1

−−−−→ U(xj)∂U

∂x(xj)

FFT−−−→[U(xj)

∂U

∂x(xj)

]k

→ Filtro |k| ≥ N

3

Esto solo para la parte temporal, luego tengo que iterar en el tiempo.

6.2.4. Balance de Energıa para la ecuacion de Burgers

]partialU

∂t+ U

∂U

∂x= ν

∂2U

∂x2U = U(x, t) 2π periodica

E ≡ 1

∫U2

2dx −→ Energia

Si a la ecuacion de Burgers la multiplico por U y le aplico la ecuacion de energıa

queda:

1

∫U∂U

∂t+ U2∂U

∂x=

1

∫νU

∂2U

∂x2

1

∫1

2

∂U2

∂t+

1

3

∂U3

∂x=

1

∫νU

∂x

(∂U

∂x

)

Quedando,

1

∫1

2

∂U2

∂t+

1

3

∂U3

∂x=

1

∫ν∂

∂x

(U∂U

∂x

)− 1

2πν

(∂U

∂x

)2

(6.8)

Integrando la ecuacion (6.8)tendremos:

90

∂E

∂t+

1

3 · 2π

∫ 2π

0

∂3U

∂x3dx =

ν

∫ 2π

0

∂x

(U∂U

∂x

)dx

∫ 2π

0

(∂U2

∂x

)dx

⇒ ∂E

∂t+

U3

3 · 2π

∣∣∣∣2π0

2πU∂U

∂x

∣∣∣∣2π0

− ν

∫ 2π

0

1

2

(∂U

∂x

)2

dx

Donde podemos ver que

U3

3 · 2π

∣∣∣∣2π0

= 0 −→ porque U es periodica

∂U

∂x

∣∣∣∣2π0

= 0 −→ porque U es periodica

Por lo tanto nos queda

∂E

∂t= −2νΩ

Donde

Ω =1

∫ 2π

0

1

2

(∂U

∂x

)2

dx

Como Ω > 0, se puede ver que en el caso de Burgers, la energıa esta dis-

minuyendo siempre. Ademas, si ν = 0 (no hay viscocidad) entonces la energıa se

conserva.

El metodo espectral satisface el balance de energıa:

E =1

∫ 2π

0

U2

2dx =

1

2

∑k

|Uk|2 =1

2N

∑j

|U(xj, t)|2

91

Para verlo vamos a analizar la siguiente expresion (ecuacion de Burgers luego

de aplicarle el metodo espectral):

dUkdt

+

[U∂U

∂x

]k

= −νk2Uk (6.9)

Ahora bien,

|Uk|2 = Uk · U∗k = Uk · UkU∗k = Uk −→ porque U ∈ R

Por otro lado, le multiplico U−k a la ecuacion (6.9), quedando,

U−kdUkdt

+ U−k

[U∂U

∂x

]k

= −νk2UkU−k (6.10)

Si reemplazamos U−k en la ecuacion (6.9) obtenemos

dU−kdt

+

[U∂U

∂x

]−k

= −νk2U−k (6.11)

Si a la ecuacion (6.11) le multiplicamos U−k, obtenemos

UkdU−kdt

+ Uk

[U∂U

∂x

]−k

= −νk2U−kUk (6.12)

Si ahora sumamos las ecuaciones (6.10) y (6.12), tenemos

U−kdUkdt

+ U−k

[U∂U

∂x

]k

+ UkdU−kdt

+ Uk

[U∂U

∂x

]−k

= −νk2U−kUk − νk2UkU−k

Reordenando un poco los terminos,

92

d(UkU−k

)dt

+ U−k

[U∂U

∂x

]k

+ Uk

[U∂U

∂x

]−k

= −2νk2U−kUk

Por lo tanto, si sumamos en todas las k,

como E =∑k

|Uk|2 =⇒

2dE

dt+∑k

[U−k

(U∂U

∂x

)k

+ Uk

(U∂U

∂x

)−k

]= −2ν

∑k

k2(Uk

)2

Llamando 2Ω =∑k

k2(Uk

)2

=⇒

dE

dt+

1

2

∑k

[U−k

(U∂U

∂x

)k

+ Uk

(U∂U

∂x

)−k

]= −2Ων

Para que se de el balance de energıa, necesito que las sumatorias den 0. Anal-

icemoslas un poco mas entonces.

∑k

Uk

(U∂U

∂x

)k

=∑k

U−k∑

m+n=k

imUmUn

=∑

m+n−k=0

imU−kUmUn

Si llamamos k′ = k me queda

∑m+n−k′=0

imUk′UmUn

Si ahora cambiamos m→ k′ y n→ k′ tendremos

93

∑m+n−n

2=0

1

3

(imUk′UmUn + ik′Uk′UmUn + inUk′UmUn

)=

=∑

m+m+k′=0

1

3i(m+ n+ k′)Uk′UmUn = 0

Analogamente podemos ver que la otra sumatoria se anula, y por lo tanto no

cuenta, y hay balance de energıa.

⇒ dE

dt= −2νΩ

6.2.5. Estabilidad de la ecuacion de Burgers con RK2

Tomemos la ecuacion de Burgers para el caso donde ν es despreciable (tomamos

ν = 0):

∂U

∂t+ U

∂U

∂x= 0

Si tomamos U → 〈U〉 = v la ecuacion se reduce:

∂U

∂t+ v

∂U

∂x= 0

Para el caso pseudoespectral tenıamos

∂Uk∂t

+ ikvUk = 0

Con U =∑Uke

ikx.

Con RK2 tendremos,

94

Un+ 1

2k = Un

k −4t2ikvUn

k

Un+1k = Un

k −4t2ikvU

n+ 12

k

Veamos la estabilidad del metodo:

εn ∝ Unk

εn+ 12 = εn − 4t

2ikvεn

εn+1 = εn −4tikv(εn − 4t

2ikv

)

=

[1−4tikv

(1−4tikv

2

)]εn

Llamando λ, factor de amplificacion a

λ = 1−4tikv(

1−4tikv2

)

Tenemos que

|λ|2 =

(1−4t2k

2v2

2

)2

+ (4tkv)2 = 1 +(4tkv)4

4≥ 1

Entonces el metodo resulta siempre inestable.

Sin embargo, como el factor de crecimiento es tolerable, se suele usar este

metodo. Ademas, si se le agrega la parte difusiva el factor disminuye.

Se suele pedir un criterio de estabilidad mas amplio.

|λ| ≤ 1 + α4 t

Donde α es un numero mayor a cero, pero chico. Si integro hasta un T fijo tal

95

que T = n4 t tenemos,

εn+1 = λεn . (1 + α4 t)εn ∼ (1 + α4 t)nε0

Como 4t =T

nentonces,

εn+1 ∼(

1 +αT

n

)nε0

Cuando n→∞ tenemos que

εn+1 ∼ e2πε0

Por lo tanto, el error es proporcional a eαT entonces va a crecer mas rapido

(lento) cuanto mas grande (chico) sea α (taza de crecimiento del error).

Para el caso de Burgers con RK2:

|λ|2 = 1 +(4tkv)4

4−→ λ =

√1 +

(4tkv)4

4

como vi+ x ≈ 1 +x

2=⇒

=⇒ λ ≈ 1 +4t4k4v4

γ≤ 1 + α4 t

∴ α =4t3k4v4

γ

tomando kmax =N

2⇒ αmax =

4t3N4v4

16γ

Para que el error sea fijo, si aumento N (resolucion), tengo que achicar4t ∼ 1

482

.

Esta condicion es del tipo CFL.

96

6.2.6. Metodo Pseudoespectral en 2D

Ejemplo donde se utilizarıa: Ecuacion de vorticidad. Sea U = U(x, y),

Ux = Ux(x, y, t)

Uy = Uy(x, y, t)

∇ · U = 0 =∂Ux∂x

+∂Uy∂y

La ecuacion de Navier-Stokes es:

∂U

∂t+(U∇

)U − ∇p

r+ ν∇2U

Se puede pensar que existe ψ = ψ(x, y, t) = funcion corriente, tal que

U = (Ux, Uy) =

(∂ψ

∂y;−∂ψ

∂x

)⇒

∇ · U =∂ψ

∂x∂y− ∂2ψ

∂y∂x= 0

w = ∇× w =

∣∣∣∣∣∣∣∂x ∂y 0

Ux Uy 0

∣∣∣∣∣∣∣ =

(0; 0;

∂wy∂y

;∂wz∂z

)= −∇2ψz

Si supongo ∇ · U = 0 en todo paso de iteracion, entonces ∇p = 0.

Por lo tanto, aplicandole rotor a Navier-Stokes:

∂w

∂t+∇× x

[(U − ν

)]U = ν∇2w

∂w

∂t= [ψ,w] ν∇2w

donde [ψ,w] es un corchete de Poisson:

97

[ψ,w] =∂ψ

∂x

∂w

∂y− ∂ψ

∂y

∂w

∂x

〈w2〉 = entropia −→ se conserva a menos de la parte de difusion.

Ademas, como w = ∇2ψ puedo hallar la solucion del problema (tengo 2 incogni-

tas: w y ψ).

La ecuacion de Burgers se puede reescribir como:

∂w

∂t=

∂y

(w∂ψ

∂x

)− ∂

∂y

(w∂ψ

∂y

)+ ν∇2ψ

w = −∇ψ

w → (x, y, t)

Ahora bien,

wN(x, y, t) =∑k

wk(t)eik·r

k = (kx, ky) ; r = (x, y)

⇒ eik·r = eikxxeikyy

wN =∑kx,ky

wk(t)eikxxeikyy

Con el metodo pseudoespectral discreto:

xj −2π

Nj j = 0, ..., N − 1

yl −2π

Nl l = 0, ..., N − 1