m etodos num ericos multidimensionales en...
TRANSCRIPT
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
2π
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
2π
L
)
La ecuacion (1.9) queda de la forma
(∂f
∂x
)j
' Aeikxj2πL
4xi.sen
(k4 x
2π
L
)= f(xj).i.sen
(k4 x
2π
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
2π
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.
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.
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
2π
∫U2
2dx −→ Energia
Si a la ecuacion de Burgers la multiplico por U y le aplico la ecuacion de energıa
queda:
1
2π
∫U∂U
∂t+ U2∂U
∂x=
1
2π
∫νU
∂2U
∂x2
1
2π
∫1
2
∂U2
∂t+
1
3
∂U3
∂x=
1
2π
∫νU
∂
∂x
(∂U
∂x
)
Quedando,
1
2π
∫1
2
∂U2
∂t+
1
3
∂U3
∂x=
1
2π
∫ν∂
∂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π
∫ 2π
0
∂
∂x
(U∂U
∂x
)dx
=ν
2π
∫ 2π
0
(∂U2
∂x
)dx
⇒ ∂E
∂t+
U3
3 · 2π
∣∣∣∣2π0
=ν
2πU∂U
∂x
∣∣∣∣2π0
− ν
2π
∫ 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π
∫ 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π
∫ 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