Sunteți pe pagina 1din 140

METODOS

COMPUTACIONALES en
FISICA
Patricio Cordero S.
Departamento de Fsica

Facultad de Ciencias Fsicas y Matematicas


Universidad de Chile
14 de julio de 2009
version

Indice general

1. Introduccion

1.1. Usos del calculo


numerico
. . . . . . . . . . . . . . . . . . . . . .

1.2. Errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

1.3. Tiempo de calculo


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

11

1.4. Adimensionalizar . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

1.5. Recurrencias, puntos fijos y ceros . . . . . . . . . . . . . . . . .

14

1.5.1. Estabilidad . . . . . . . . . . . . . . . . . . . . . . . . . .

15

1.5.2. Ceros. Metodo


de la secante . . . . . . . . . . . . . . . .

15

de una variable . . . . . . . . . . . .
1.5.3. Puntos fijos con mas

16

1.5.4. Metodo
de la secante en varias variables . . . . . . . . .

17

1.6. Problemas

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

18

1.7. Algunos temas basicos


no incluidos . . . . . . . . . . . . . . . .

20

2. Derivadas e integrales numericas

21

2.1. Derivadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

2.1.1. Tabla con derivadas a cuatro y cinco puntos . . . . . . . .

22

numerica

2.2. Integracion
directa . . . . . . . . . . . . . . . . . . . .

23

no uniforme sencilla . . . . . . . . . . . . .
2.2.1. Discretizacion

25

2.2.2. Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . .

25

y cambio de variable . . . . . . . . . . . . . . . . . .
2.3. Integracion

26

2.3.1. Planteamiento y ejemplos . . . . . . . . . . . . . . . . . .

26

2.3.2. Divergencias en el integrando . . . . . . . . . . . . . . . .

28

2.4. Integral de parte principal . . . . . . . . . . . . . . . . . . . . . .

30

2.5. Problemas

31

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3

INDICE GENERAL

3. Ecuaciones diferenciales ordinarias

35

a ecuaciones de primer orden . . . . . . . . . . . . .


3.1. Reduccion

35

3.1.1. Metodo
directo simple (de Euler) . . . . . . . . . . . . . .

36

3.1.2. Metodo
implcito . . . . . . . . . . . . . . . . . . . . . . .

37

3.1.3. Metodo
de Runge-Kutta . . . . . . . . . . . . . . . . . . .

38

3.1.4. Estabilidad de RK4 . . . . . . . . . . . . . . . . . . . . . .

40

3.2. Integradores multipaso . . . . . . . . . . . . . . . . . . . . . . . .

40

. . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1. Presentacion

40

3.2.2. Algoritmo predictor de Adams-Bashforth . . . . . . . . . .

41

3.2.3. Estimador de Adams-Moulton . . . . . . . . . . . . . . . .

43

3.2.4. Metodo
predictor-corrector . . . . . . . . . . . . . . . . .

44

3.3. Predictor-corrector de Gear . . . . . . . . . . . . . . . . . . . . .

45

3.4. Metodos
de Verlet y variaciones . . . . . . . . . . . . . . . . . .

46

3.4.1. Propiamente Verlet . . . . . . . . . . . . . . . . . . . . . .

46

3.4.2. Estabilidad del metodo


de Verlet . . . . . . . . . . . . . .

47

3.5. Algoritmos simplecticos


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

49

del problema . . . . . . . . . . . . . . . . . .
3.5.1. Formulacion

49

del algoritmo
3.5.2. Construccion

O( 3 )

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

50

3.5.3. El jacobiano asociado . . . . . . . . . . . . . . . . . . . .

50

3.5.4. Leapfrog . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

alto orden . . . . . . . .
3.5.5. Algoritmos simplecticos
de mas

51

final . . . . . . . . . . . . . . . . . . . . . . . . .
3.6. Recomendacion

52

3.7. Problemas

52

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

4. Problemas de condiciones de borde y problemas de autovalores

57

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1. Introduccion

57

4.2. El algoritmo de Numerov

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

58

4.3. Problemas de condiciones de borde . . . . . . . . . . . . . . . .

59

directa de un problema de condiciones de


4.3.1. Integracion
borde . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

de Green . . . . . . . . . . . . . . . . . .
4.3.2. Uso de funcion

61

4.4. Problemas de autovalores . . . . . . . . . . . . . . . . . . . . . .

62

4.4.1. Problemas sencillos de autovalores . . . . . . . . . . . .

62

de Schrodinger

estados li4.4.2. Ecuacion


en una dimension:
gados . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

63

de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

de Schrodinger

4.4.3. Ecuacion
radial . . . . . . . . . . . . . . .
4.5. Problemas

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

5. Integrales Monte Carlo y el algoritmo de Metropolis

5
64
66
67

5.1. Numeros

aleatorios r U(0, 1) . . . . . . . . . . . . . . . . . . .

67

5.2. Densidades de probabilidad . . . . . . . . . . . . . . . . . . . . .

68

y el promedio discreto . . . . . . . . . . . . .
5.2.1. Distribucion

68

5.2.2. Distribuciones relacionadas . . . . . . . . . . . . . . . . .

68

de secuencia W (x) a partir de U(0, 1) . . . . .


5.2.3. Obtencion

69

5.2.4. El caso de n variables . . . . . . . . . . . . . . . . . . . .

70

5.2.5. Cuando W (x) es una gaussiana

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

71

Monte Carlo . . . . . . . . . . . . . . . . . . . . . . .
5.3. Integracion

72

5.3.1. El problema . . . . . . . . . . . . . . . . . . . . . . . . . .

72

5.3.2. Primera forma . . . . . . . . . . . . . . . . . . . . . . . .

72

5.3.3. Aplicabilidad de los metodos


Monte Carlo . . . . . . . . .

74

5.3.4. Metodo
explcito . . . . . . . . . . . . . . . . . . . . . . .

74

5.3.5. Estrategia de von Neumann . . . . . . . . . . . . . . . . .

76

Monte Carlo en dimension


D. . . . . . . . . .
5.3.6. Integracion

77

Monte Carlo en dominios difciles . . . . . . .


5.3.7. Integracion

78

5.4. La estrategia Metropolis para calcular promedios . . . . . . . . .

78

5.4.1. El algoritmo de Metropolis . . . . . . . . . . . . . . . . . .

78

5.4.2. Por que funciona . . . . . . . . . . . . . . . . . . . . . . .

80

5.4.3. Metropolis en mecanica


estadstica . . . . . . . . . . . .

81

5.4.4. Propiedades necesarias . . . . . . . . . . . . . . . . . . .

83

5.4.5. Integrales usando el algoritmo de Metropolis . . . . . . .

84

5.5. Problemas

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

6. Ecuaciones elpticas

85
89

y condiciones de borde . . . . . . . . . . . . . . . . . .
6.1. Ecuacion

89

6.1.1. Integral de accion


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

90

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2. Discretizacion

91

en el volumen . . . . . . . . . . . . . . . .
6.2.1. Discretizacion

91

en los bordes en un caso tipo Neumann .


6.2.2. Discretizacion

91

6.2.3. Convergencia . . . . . . . . . . . . . . . . . . . . . . . . .

92

6.3. Fluidos incompresibles estacionarios . . . . . . . . . . . . . . . .

94

Universidad de Chile

Escuela de Ingeniera y Ciencias

INDICE GENERAL

6.3.1. Las ecuaciones . . . . . . . . . . . . . . . . . . . . . . . .

94

corriente, la vorticidad y la
6.3.2. Ecuaciones para la funcion
temperatura . . . . . . . . . . . . . . . . . . . . . . . . . .

95

6.3.3. Lneas de corriente

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

96

discreta de y . . . . . . . . . . . . . . . . . .
6.3.4. Version

96

6.4. Primer ejemplo: flujo y obstaculo


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

97

6.4.1. Las ecuaciones discretas en el volumen . . . . . . . . . .

97

6.4.2. Las ecuaciones en los bordes

99

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

termica

6.5. Segundo ejemplo: conveccion


. . . . . . . . . . . . . . . 101

7. Ecuaciones parabolicas

105

general . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.1. Ecuacion
7.2. Ecuaciones tpicas . . . . . . . . . . . . . . . . . . . . . . . . . . 105
de la ecuacion
de difusion
de calor . . . . . 106
7.3. Adimensionalizacion
explcita directa . . . . . . . . . . . . . . . . . . . . . 106
7.4. Integracion
7.4.1. Condiciones de borde rgidas . . . . . . . . . . . . . . . . 107
7.4.2. Condiciones de borde con derivada . . . . . . . . . . . . 107

7.5. El metodo
tridiagonal . . . . . . . . . . . . . . . . . . . . . . . . . 108
de calor . . . . . . . . . . . . . . . . . . . . . 108
7.5.1. La ecuacion
7.5.2. El algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . 110
de calor con conductividad variable . . . . . . . 111
7.5.3. Ecuacion

7.5.4. El caso con condiciones periodicas

. . . . . . . . . . . . 112

7.6. Metodo
implcito . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

7.7. Un caso parabolico


en 1+2 dimensiones . . . . . . . . . . . . . . 115

7.8. Dos metodos


adicionales . . . . . . . . . . . . . . . . . . . . . . 115

7.8.1. Metodo
de Richtmayer . . . . . . . . . . . . . . . . . . . . 115

7.8.2. Metodo
de Lees . . . . . . . . . . . . . . . . . . . . . . . 116
de Schrodinger

7.9. Ecuacion
dependiente del tiempo . . . . . . . . . 117

7.9.1. Usando el metodo


de Crank Nicolson . . . . . . . . . . . 117

7.9.2. El metodo
explcito de Visscher . . . . . . . . . . . . . . . 118

8. Ecuaciones hiperbolicas

121

8.1. Ecuaciones de primer orden . . . . . . . . . . . . . . . . . . . . . 121

8.1.1. Ejemplos para ilustrar los conceptos basicos


. . . . . . . 123
numerica

8.1.2. Integracion
a lo largo de una caracterstica . . . 126
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas


8.1.3. Sistema de ecuaciones hiperbolicas
de primer orden . . . 127
8.1.4. Fluido compresible . . . . . . . . . . . . . . . . . . . . . . 128

8.2. El metodo
de Lax-Wendroff para ecuaciones hiperbolicas
de primer orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.3. Ecuaciones de segundo orden cuasilineales . . . . . . . . . . . . 132

8.4. Ecuaciones hiperbolicas


. . . . . . . . . . . . . . . . . . . . . . . 134
8.4.1. Planteamiento del problema . . . . . . . . . . . . . . . . . 134
implcita . . . . . . . . . . . . . . . . . . . . . 135
8.4.2. Integracion
8.5. Condiciones iniciales y condiciones de borde . . . . . . . . . . . 138
8.6. Problemas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139


Introduccion

de 14 de julio de 2009
version

INDICE GENERAL

Facultad de Ciencias Fsicas y Matematicas

Captulo 1

Introduccion
1.1.

Usos del calculo


numerico

Una vez que un sistema (puede ser en fsica, qumica, ingeniera, biologa,
economa, etc) ha sido modelado con un conjunto de ecuaciones se debe
explorar las implicaciones. De esas implicaciones puede resultar algo esperable pero cuantitativamente no trivial, puede ocurrir que el modelo resulte no
pueser bueno (da comportamientos que no son verdaderos) etc. Tambien
de suceder que el modelo de patrones de comportamientos inesperados pero
correctos.

Hoy en da es inconcebible no utilizar calculo


numerico
en cada area
de la
unos pocos ejemplos
ciencia y la tecnologa. A continuacion

Comportamiento de atomos,
nucleos,

y el amplio mundo subnuclear de


fsica de partculas

Dinamica
de fluidos: tal como en meteorologa, oceonografa, simulacion
de aviones, en el comportamineto de
de tuneles

de viento en el diseno
estrellas etc etc

Mecanica
macroscopica
de solidos:
tensiones en estructutras complejas
(puentes, barcos..), roturas, grietas, explosiones ..
variadas moleculas,

Comportamiento de las mas


incluyendo algunas enormes proteinas.
de galaxias, soluciones de las comAstrofsica y cosmologa, evolucion

plicadas ecuaciones de gravitacion.


Los esfuerzos computacionales para atacar un problema abarcan desde
hacer integrales complicadas, hacer integrales en muchas (a veces demasia en sistemas estadsticos, hasta
das) dimensiones, estimar funciones particion
9


Introduccion

1.2. ERRORES

resolver ecuaciones diferenciales ordinarias, ecuaciones diferenciales a derivadas parciales, etc.


Salvo que las ecuaciones del modelo que se estudia sean de naturaleza
probable es que se requiera de una resolucion
numerica

muy sencilla, lo mas

de ellas. Uno de los retoscuando se resuelve numericamente un conjunto


numerica

de ecuacioneses saber si la solucion


obtenida es confiable, es

decir, si realmente es una solucion del problema o si los errores numericos

(o de otro tipo) que produce la metodologa numerica


usada invalidan total o
obtenida.
parcialmente la solucion

En estas notas se aprendera algunas tecnicas


para resolver ecuaciones de
sencillos veremos tambien
la forma de
diversa naturaleza y en los casos mas

mantener los errores bajo control. Habra un permanente trabajo practico.

1.2.

Errores

Al hacer calculos
numericos
introducimos errores que tienen diverso ori comunes son:
gen. Los mas
de los datos. Por ejemplo, el valor de puede ser
- Errores en la precision
3,1416 en lugar de 3,141593 . . .
de baja precision,
Por ejemplo, en lugar del valor ex se usa
- Errores de truncacion.
N

xk

k!

(1.2.1)

k=0

y el N no es lo suficientemente grande. Estos errores aparecen normal


mente por la naturaleza iterativa de los metodos
y en algun
momento es

necesario detener la iteracion. Por ejemplo, para calcular sin x se puede

usar el siguiente codigo


C,
se = 1.0;
x = 0.3;
/* valor deseado
x2 = x*x;
u = x;
for(k = 2; k<N; k+2)
{ u = -u*x2/k/(k+2);
se = se + u/k;
}

de x */

y el resultado es naturalmente mejor mientras mayor sea N.

- Errores de redondeo. Estos se deben al tama no finito de la informacion


que se guarda en memoria por cada numero

real. Por ejemplo, cuando


calculamos
d sin(x) sin(x + ) sin(x )

cos(x) =
dx
2
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

11

el resultados es mejor cuanto menor sea hasta que se produce un


problema al restar dos numeros

demasiado parecidos. Por ejemplo: sin.c


epsilon
0.04978706836786394446248
0.00247875217666635849073
0.00012340980408667956121
0.00000614421235332820981
0.00000030590232050182579
0.00000001522997974471263
0.00000000075825604279119
0.00000000003775134544279
0.00000000000187952881654
0.00000000000009357622969
0.00000000000000465888615
0.00000000000000023195228

dsin(1.0)/dx
0.5400791
0.5403018
0.5403023
0.5403023
0.5403023
0.5403023
0.5403023
0.5403022
0.5402991
0.5401011
0.5442437
0.4940679

cos(1.0)
0.5403023
0.5403023
0.5403023
0.5403023
0.5403023
0.5403023
0.5403023
0.5403023
0.5403023
0.5403023
0.5403023
0.5403023

cos - deriv
0.000223185
0.000000553
0.000000001
0.000000000
-0.000000000
-0.000000000
-0.000000000
0.000000077
0.000003182
0.000201187
-0.003941389
0.046234439

Estos valores se obtuvieron con el programa que sigue:


#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define
N
14
FILE
*archivo;
main()
{ int
ii;
double
deriv,epsi,co;
co = cos(1.0);
archivo = fopen("sin.dat","wt"); /* w=write t=text */
for(ii=1; ii<N-1; ii++)
{ epsi
= exp(-3.0*ii);
deriv = (sin(1.0+epsi) - sin(1.0-epsi))/2.0/epsi;
fprintf(archivo,"%26.23f %10.7f %10.7f %12.9f\n",
epsi,deriv,co,co-deriv);
}
fclose(archivo);
}

1.3.

Tiempo de calculo

Cuando se programa un calculo


cuyo tiempo de calculo
sabemos que va a
ser grande es importante tener alguna idea sobre los elementos que hacen que

este calculo
sea lento y conviene estudiar si hay alguna forma de optimizar. Por
ejemplo, si en forma reiterativa en un programa se debe calcular una integral y

se va a usar la formula
#
"
Z
N1

f (x) dx

xi
Universidad de Chile

f (x0 ) + 2

f (xi ) + f (xN ) h

i=1

a+

ba
i
N

(1.3.1)
Escuela de Ingeniera y Ciencias


Introduccion

1.4. ADIMENSIONALIZAR

debe tenerse presente que este calculo


tarda un tiempo que es O(N).

El calculo
de la energa de N cargas implica calcular
m
2

q j qk
2
j=1 k= j+1 r jk

v2k +

k=1

El primer termino
toma un tiempo O(N) mientras el segundo tiene un costo

O(N 2 ). El algoritmo optimo


para invertir una matriz de N N es O(N 3 ).

1.4.

Adimensionalizar

Suele ocurrir que los problemas reales que debemos resolver tienen mas

parametros
de los necesarios, en el sentido que existe un problema numerico

equivalente que se expresa con menos parametros.


Por ejemplo, en el caso

de un oscilador armonico
m x = k x ,

x(0) = A ,

x(0)
= v0 .

de control:
si se define 02 = k/m el problema aparenta tener tres parametros
0 , A y v0 . Sin embargo, si se hace el cambio de variables x = A z, t = t /0 , el
problema equivalente es
z = z ,

z(0) = 1 ,

z (0) =

v0
v0 .
A 0

que es un problema con un solo parametros


de control, v0 .
se escoge con cuidado se trabaja con cantidades
Si la adimensionalizacion
de orden 1 y por tanto se disminuye una fuente de errores.
Ejemplo sencillo: dos puntos rebotando Dos puntos de masas m1 y m2
se mueven en una recta, bajo los efectos de gravedad. Llamaremos 1 a la
partcula de abajo y 2 a la de arriba. Se escoge unidades tales que
g

= 1

m1 + m2

= 1

Einic

= 1

(1.4.1)

y se define el parametro
R tal que
m1 =

1
1+R

m2 =

R
1+R

(1.4.2)

La energa inicial es
Einic =
de 14 de julio de 2009
version

R v22
y1
R y2
v21
+
+
+
2(1 + R) 2(1 + R) 1 + R 1 + R

(1.4.3)

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

13

Entre ellas el choque es elastico,


es decir, el choque implica
v1 + R v2 = v1 + R v2 ,

v21 + R v22 = v1 2 + R v2 2

(1.4.4)

2v1 + (R 1)v2
1+R

(1.4.5)

que implica
v1 =

2Rv2 (R 1)v1
,
1+R

v2 =

Notese
que si R = 1 entonces hay un simple intercambio de velocidades. En el
instante en que y1 = 0 y puesto que Einic = 1 se cumple que
y2 =

1 + R v21 v22

R
2R 2

(1.4.6)

que es una familia de parabolas


en el plano (y2 , v2 ) para cada valor de v1 . La
grande de estas parabolas

mas
se da cuando v1 = 0.
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define
#define
#define

Largo
R
R1

4000
6.71
(1.0+R)

double
long
FILE

z1,z2,v1,v2,v1p,v2p,ts,tc;
cont;
*archivo;

void Ini() /* ----------------------*/


{ z1
= 0.0;
v2
= 0.6;
printf("v1=");/* v1 = 0.61 tb 0.77*/
scanf("%lf",&v1);
z2 = (2.0*R+2.0-R*v2*v2-v1*v1)/(2.0*R);
if(z2<0)
{ printf("z2 = %lf\n",z2);
exit(0);
}
}
void Suelo()/* ------------------*/
{ z2 = -ts*ts/2 + v2*ts + z2;
v2 = -ts + v2;
z1 = 0;
/*velocidad ya rebotada */
v1 = ts - v1;
}

void Choque()/* ------------ */


{ z2 = -tc*tc/2 + v2*tc + z2;
z1 = z2;
/*velocidades antes del choque*/
v2 = -tc + v2;
v1 = -tc + v1;
v2p = (2*v1 + v2*(R-1))/R1;
v1 = v1 + R*(v2-v2p);
v2 = v2p;
cont++;
}
void Evolucion()/* ------------*/
{ /* t a proxima colision
*/
tc = (z2 - z1)/(v1 - v2);
/* t a proximo choque con suelo */
ts = sqrt(v1*v1 + 2*z1) + v1;
if((ts<tc) || (tc<=0))
{Suelo();
fprintf(archivo,
"%10.7f %10.7f\n",z2,v2);
}
else Choque();
}
main()/* -----------------*/
{ archivo=fopen("2b.dat","wt");
cont
= 0;
Ini();
do{Evolucion();
}while(cont<Largo);
fclose(archivo);
}

(y algunos de mala prograEl codigo


anterior presenta varios ejemplos de buena programacion

macion).
La rutina main es corta y sencilla: (0) inicializa, (1) calcula los dos tiempos relevantes,
(2) llama a la rutina Suelo o la rutina Choque segun
lo que corresponda y vuelve a (1) y esto se
repite mientras el contador de choques este debajo de una cierta cota. Las rutinas que manejan
el cambio de velocidades debido a un choque con el suelo o un choque entre las dos partculas
tienen una caractarstica de apariencia trivial que, para el programador distraido, pueden ser fuen de 1 con z1 = z1 + v1*ts, que es
te de un error fatal: En Suelo no se actualiza la posicion
z1 nunca queanalticamente correcto, sino que con z1 = 0. Con el primer tipo de actualizacion
dara exactamente con el valor cero (error de redondeo) y si llega a quedar con un valor negativo
Universidad de Chile

Escuela de Ingeniera y Ciencias


Introduccion

1.5. RECURRENCIAS, PUNTOS FIJOS Y CEROS

puede ocurrir que 1 se vaya a . Similarmente en el caso de Choque se actualiza z2 en forma

estandar y luego en lugar de actualizar z1 en la misma forma, se coloca z1 = z2 lo que impide


criticable de este codigo

que, por error de redondeo, se puedan cruzar. Posiblemente lo mas


es
que se usa demasiadas variables globales.

Durante el vuelo libre ambas partculas obedecen


1
ya (t) = t 2 + vat + ya
2

(1.4.7)

de
donde (ya , va ) son las condiciones iniciales de ese vuelo libre. La condicion
choque entre ellas es
y2 y1
tC =
(1.4.8)
v1 v2
para que 1choque con el suelo es tS2 /2 + v1tS + y1 = 0 lo que
y la condicion
da
q
tS = v1 + v21 + 2y1
(1.4.9)
El programa adjunto permite obtener las curiosas formas que dibujan los
de este sistema.
puntos (y2 , v2 ) definidos cuando y1 = 0 durante la evolucion
En C, en lugar de escribir z2 = -ts*ts/2+v2*ts+z2; v2 = -ts +
v2; se puede escribir z2 += -ts*ts/2+v2*ts; v2 -= ts; lo que ha
veloz. En estas notas se
ce menos amistoso la lectura del codigo
pero mas
de codigos

usara el estilo de presentacion


amistoso. El archivo de resultados
conveniete es
2b.dat puede ser visto en gnuplot y, en el caso actual lo mas
set data style dots antes de dar
dar, dentro de gnuplot, la instruccion
el comando plot 2b.dat porque dots representa cada dato con un solo
pixel, en cambio por defecto los datos son representados por points que son
rombos.
pequenos

1.5.

Recurrencias, puntos fijos y ceros

Muchos metodos
numericos
hacen uso de metodos
iterativos. Es interesan
te entonces saber decidir cuando estos metodos
son estables y bajo que condiciones convergen. Una sucesiones puede ser convergente, divergente o tener
complicado. Un caso clasico

algun
comportamiento mas
es el mapa logstico
xn+1 = A xn (1 xn) ,

con

0<A4

(1.5.1)

definida para 0 x < 1. Compruebe, por ejemplo, que para A = 3,1 los xn terminan saltando entre dos valores fijos.
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

1.5.1.

Metodos
Computacionales en Fsica

15

Estabilidad

La recurrencia
x = g(x)

(1.5.2)

tiene punto fijo en el valor x si x = g(x ). Interesa saber si ese punto fijo es
estable.
Al iterar a partir de un punto muy cercano a x se obtiene
x +

= g(x + )
g(x ) + g (x )
= g (x )

(1.5.3)

converge hacia el punto


de donde se concluye que si |g (x )| < 1 la iteracion

fijo, lo que se conoce como estabilidad lineal del punto fijo x de g(x). Tambien
se dice que x es un atractor, ya que los puntos cercanos son atraidos, via la
(1.5.2), hacia x .
iteracion
Por ejemplo, (1.5.1) tiene un punto fijo trivial x = 0 y otro, x = 1 A1 . El
punto fijo trivial es estable cuando A < 1. El segundo punto es estable tan
solo si 1 < A < 3. Se deja como ejercicio hacer un programa que muestre el
comportamiento de (1.5.1) en todo el rango permitido de A.

1.5.2. Ceros. Metodo


de la secante

Una forma de buscar en forma precisa y rapida


los ceros de una funcion
se conoce en forma aproximada, consiste en iterar usando
f (x), cuya ubicacion
g(x) = x

f (x)
f (x)

(1.5.4)

comprobar que g (x0 ) = 0, que implica que x0


Si x0 es un cero de f (x), es facil

es punto fijo (localmente) estable de g(x). Este es le metodo


de Newton para
obtener ceros.
precisa de los ceros de
Suele ocurrir que se necesite conocer la ubicacion

una funcion demasiado complicada para poder tener una forma analtica para

f (x). Esto impide poder hacer uso de (1.5.4). Existe un metodo


inspirado en el
de programar y normalmente de convergencia muy rapida.

anterior que es facil


En lugar de (1.5.4) se usa
xn+1 = xn

fn
f n f n1
xn xn1

que se simplifica a
xn+1 =
Universidad de Chile

xn1 fn xn fn1
fn fn1

(1.5.5)
Escuela de Ingeniera y Ciencias


Introduccion

1.5. RECURRENCIAS, PUNTOS FIJOS Y CEROS

y que se conoce como el metodo


de la secante y estrictamente corresponde a
xn+1 = g(xn , xn1 ).

main()/*****************/
{ printf("semilla=");
scanf("%lf",&xs);
cero(xs);
}

void cero(double xs)/*****************/


{ double cn;
xp = xs + 1e-2;
fs = f(xs);
fp = f(xp);
do
{ xa = (xs*fp - xp*fs)/(fp-fs);
fs = fp;
xs = xp;
fp = f(xa);/* notar que f es llamada*/
xp = xa;
/* una sola vez
*/
cn = fabs(xp-xs);
printf("%14.11f %14.11f\n",xp,fp);
}while(cn>tolerancia muy chica);
}

sencilla para usar metodo

que se
Version
de la secante. Note que la instruccion
ha puesto es printf("semilla"); y no printf("semilla\n");
En el caso de arriba no se
Un buen programa no debe producir error jamas.
ha tenido cuidado que el denominador fn fn1 pueda ser nulo. Tampoco se
se logre convergencia de la secuencia.
ha previsto la posibilidad de que jamas
Conviene poner un contador que no permita que se sobrepase algun numero

de iteraciones.
estable
Compruebe que el siguiente algoritmo, publicado en 2007, es mas
que el de de la secante1 :
xn+1

= xn1
=

xn1 fn1
f f

n1
fn1 + xn1 xnn xn1

fn fn1
x2
xn1 fn 2xn1 fn1 + xn fn1 n1

(1.5.6)
(1.5.7)

Determine todos los ceros reales de Pa = x5 3x4 2x2 + 11x 1 y de Pb = 16x5


168x4 + 657x3 1161x2 + 891x 243 usando los algoritmos descritos.

1.5.3.

de una variable
Puntos fijos con mas

Lo anterior se puede generalizar al caso de N variables planteando la rela de recurrencia


cion
~x = ~g(~x )
(1.5.8)
1 C.

Hu, Computing in Science and Engineering v.9, #5, p.78 (2007)

de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

17

Si ~x0 es punto fijo de g entonces


~x0 +~

= ~g(~x0 +~ )
= ~g(~x0 ) +~ (~g)x0

(1.5.9)

explcita es
donde el ultimo

termino
en forma mas


gi
j
x j x0
De (1.5.9) se obtiene entonces que
~ = J0~

(1.5.10)

El punto ~x0 es un punto fijo estable si los autovalores k del Jacobiano J


de ~g(~x ), evaluado en ~x0 , tienen parte real menor que la unidad, es decir, si se
escriben en la forma
k = eak +i bk
son tales que todos los ak son positivos.

1.5.4. Metodo
de la secante en varias variables
Se desea encontrar los ceros de

F1 (~r )
~F(~r ) = ..
Fn (~r )

(1.5.11)

donde ~r = (x1 , x2 , . . . xn ). Es decir, se busca puntos ~r0 en los que todas las fun
ciones Fn (~r ) se anulan simultaneamente.

El metodo
de Newton generalizado a este problema se plantea a partir de
definir
~r = ~g(~r ) ~r J1 (~r ) ~F(~r )
(1.5.12)

F. En efecto, el lado izquierdo se escribe en


donde J es el Jacobiano xFij de ~
~ ~g(~r0 +~ ) ~g(~r0 ) +~ . El correspondiente lado derecho es
torno a un cero de F:
el producto de las expansiones de J1 y de ~F. Pero la expansion
de
~r0 +~ mas
J0~ , donde el ndice cero indica que el Jacobiano
este ultimo

es ~
F(~r0 ) = 0 mas
es evaluado en ~r0 . Siendo J0~ una cantidad de primer orden, no es

 necesario
1
. Con
expandir el factor J (~r ) sino que basta con tomar sencillamente J1
0
todo lo anterior se ve que a primer orden, el lado derecho de (1.5.12) se anula:
~g(~r ) evaluado en los ceros de ~F (no confundirlo
el Jacobiano J de la funcion
con J que es el Jaconbiano de ~
F) tiene autovalores nulos. Esto garantiza que
los ceros de ~
F se comportan como puntos fijos estables de la recurrencia que
define (1.5.12).
Universidad de Chile

Escuela de Ingeniera y Ciencias


Introduccion

1.6. PROBLEMAS

En el caso de dos funciones F1 y F2 en las variables x e y se tiene


!
!
F1
F1
F2
F1

1
x
y
y
y
J=
,
det(J) =
&
J1 =
F2
F2
F2
F1

x
y
x
x

El metodo
de la secante se obtiene a partir de lo anterior usando, en lugar
de J, la matriz de cantidades tipo
Fi (xj ) Fi(xj 1 )
Fi

xj
xj xj 1

(1.5.13)

-esima.

donde el ndice se refiere a la iteracion


Para no hacer muy pesada
se ha usado como argumento de Fi solamente la variable x j que
la notacion,
se esta cambiando.

1.6.

Problemas

1. Determine los ceros de 5x4 x3 65x2 + 73x 12 utilizando semillas y

el metodo

el metodo
de Newton. Use tambien
de la secante. Observe la
cantidad de iteraciones necesarias para obtener cada cero con tolerancia
fija.

2. Resuelva numericamente
el sistema de ecuaciones: f1 = x4 y4 9 y
y
3
3
f2 = x y xy 2 2
un excelente ejemplo para poner a prueba la capacidad
3. A continuacion
en forma eficiente. Una partcula de
de encontrar ceros de una funcion
vertical (eje Y ) rebotando contra
masa m se mueve en una sola dimension
un suelo que oscila sinusoidalmente, z(t) = A sin( t). La regla de choque
contra el suelo oscilante es
v p (t ) = (1 + ) vs (t ) v p (t )
donde t es el instante del bote, v p y v p son las velocidades de la partcu del bote, vs es la velocidad del suelo en ese instante y
la antes y despues
( = 1 en el caso elastico).

(entre 0 y 1) es un coeficiente de restitucion

Se puede escoger que inicialmente la partcula este en contacto con el

suelo y con velocidad hacia arriba mayor que este,


es decir, la condicion
inicial (y0 , v0 ) satisface y0 = z(t = 0) y v0 y(0)
> z(0).

Una de las caractersticas de este sistema es que normalmente tiende


inicial el
a generar soluciones estables. Es decir, dada una condicion
hasta
sistema pasa por un perodo que se puede llamar de relajacion
periodica.

alcanzar una solucion


Bajo algunas circunstancias la solucion
es trivial porque la partcula tiende a pegarse al suelo y en otras (poco
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

19

periodica.

periodica

sencilla
comunes) no hay solucion
La solucion
mas
corresponde a la partcula golpeando el suelo con el mismo perodo T =
2

tiene. En general, el sistema comienza en (y0 , v0 ), vuelve


que este
a golpear al suelo con (y1 , v1 ), etc. y se genera una secuencia (yk , vk ).
Esta es una recurrencia que escribimos (yk+1 , vk+1 ) = g(yk , vk ) y lo que se
los puntos fijos de g g etc. La
busca son puntos fijos de g como tambien

idea es dejar que el sistema evolucione hasta que este en un regimen

estacionario y luego escribir a archivo los valores de vn por los proximos


(por ejemplo 50) botes. Si se ha alcanzado un punto fijo de g estos 50
numeros

debieran resultar iguales.


Una historia del sistema queda totalmente definida si se dan los valo inicial (y(0), v(0)). Se

res de los parametros


(A, , , m, g) y la condicion
puede adimensionalizar con m = 1, g = 1 y A = 1. Puesto que ya se ha
inicial solo requiere de v0 y
escogido la forma de tomar y0 , la condicion

de los parametros
del problema solo sobreviven y .
(a) Habiendo desarrollado su programa, utilselo con = 0,15 y haga un

grafico
de los vn=1..N (N 50) versus con 1,66 1,79 que resultan
de relajar al sistema. Este intervalo de divdalo en unos 100
despues
invalores distintos. Si hay algun
punto del eje que le parezca mas
fina. Despues
del ciclo con el primer
teresante, ah haga una trama mas
inicial el estado final del caso
valor de , conviene usar como condicion
anterior.

(b) Describa el criterio usado para decidir cuando


el sistema ya ha relajado. Depende su criterio del valor de ?
(c) Describa las mayores dificultades encontradas para programar este

eficiente (rapido)?

sistema. Como
se logra que sea mas
R ECOMENDACIONES : Desarrolle su programa en etapas. Primero asegurese

siendo predichos correctamente y que


que los eventos choque con el suelo esten

nunca predice que el proximo


choque sera antes del actual. Asegurese

que por
y(t) pueda ser menor que z(t). La dificultad mas
grande
ningun
error de precision

posiblemente reside en calcular correctamente el instante del proximo


choque
alguna forma de buscar, de entre los diversos ceros de
porque hay que disenar

F(t) = y(t) z(t), aquel que corresponde al proximo


choque. Este calculo
es tal
vez el principal problema que hara lento al programa. Conviene que una vez
que se haya visto que los diversos algoritmos funcionan correctamente, haga un

programa que vaya automaticamente


resolviendo el problema para los diversos

valores de y as tenga un unico

archivo para hacer el grafico


solicitado.
El problema de encontrar los ceros fsicamente interesantes de F(t) puede re F(t) se mantiene positiva
solverse (algo burdamente) observando que la funcion
a medida que se avanza de a saltos de tiempo = 0,1 T . Tan pronto se detecta

que F cambia de signo se usa una busqueda con el metodo


de la secante entre
del cambio de signo de F para determinar
los valores de t justo antes y despues
el cero preciso de F(t). El instante que arroja la rutina secante es el momento
del siguiente choque.
Inicialice con el reloj en t = 0, y(0) chico y velocidad negativa de modo que en
Universidad de Chile

Escuela de Ingeniera y Ciencias


Derivadas e integrales numericas

1.7. ALGUNOS TEMAS BASICOS


NO INCLUIDOS

pequena
de T = 2 / se produzca el bote. Por otro lado la velocidad
una fraccion
inicial debiera ser la necesaria para volver a tocar el suelo aproximadamente un
Eso asegura valores razonables y convergencia rapida.

tiempo 2 / despues.

1.7.

Algunos temas basicos


no incluidos

o Metodo
de pivoteo de Gauss para resolver un sistema de N ecuaciones

algebraicas lineales con N incognitas.


de la solucion
a mnimos cuadrao Ligado al problema anterior: obtencion
dos de un sistema lineal sobredeterminado.
o Autovalores de matrices de N N.

o Metodos
de interpolacion.

de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Captulo 2

Derivadas e integrales

numericas
2.1.

Derivadas

tpica de plantear una derivada es


La forma elemental mas
f (x)

f (x + h) f (x)
h

(2.1.1)

El desarrollo en serie
f (x + h) = f (x) + h f (x) +

h2
f (x) + . . .
2

(2.1.2)

muestra que en (2.1.1) se desprecia algo que es O(h). En cambio la siguiente


es mas
precisa,
expresion
f (x) =

f (x + h) f (x h)
+ O(h2)
2h

(2.1.3)

El error que aqu se indica es un error analtico. Ya se ha comentado que si h


se produce un error de redondeo.
es muy pequeno
Existe una famila de expresiones para derivadas de cualquier orden. Ex

fk f (x + k h) , se
presiones simetricas
y no simetricas.
Usando la notacion
tiene, por ejemplo, que

f1

f2

h2 h3
f
f + O(h4)
2 0 3! 0
4h3
f + O(h4)
f0 2h f0 + 2h2 f0
3 0

f0 h f0 +

21

(2.1.4)


Derivadas e integrales numericas

2.1. DERIVADAS

de donde
f2 2 f1 + f0
+ O(h)
h2

(2.1.5)

f1 2 f0 + f1
+ O(h2)
h2

(2.1.6)

f0 =

y tambien
f0 =

ver que la primera derivada de una funcion


f (x) se puede expresar
Es facil

en terminos
de fh1 = f (x h1 ), fh2 = f (x + h2 ) y de la propia f (x) como
h2 fh + (h22 h21) f h22 fh1
df
1 2
+ O(h1h2 f )
dx
h1 h2 (h1 + h2)

(2.1.7)

y con los valores de f en estos mismos tres puntos la segunda derivada se


puede escribir
h1 fh2 (h1 + h2 ) f + h2 fh1

d2 f
2
+ O((h2 h1) f )
2
dx
h1 h2 (h1 + h2)

(2.1.8)

Determine que derivada es proporcional a


11 f2 56 f1 + 114 f0 104 f1 + 35 f2

e indique el orden del error de esta expresion.


sea proporcional a f mas
un
Obtenga el valor de a tal que la siguiente expresion
error,
a f2 32 f1 + 72 f0 96 f1 + 50 f2

2.1.1.

Tabla con derivadas a cuatro y cinco puntos

Una derivada de orden n tiene una variedad de expresiones usando p


algunos ejemplos.
n + 1 puntos. A continuacion

de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

23

A cuatro puntos

A cinco puntos

1
(2 f1 3 f0 + 6 f1 f2 )
6

1
( f2 8 f1 + 8 f1 f2 )
12

h2 f

f1 2 f0 + f1

1
( f2 + 16 f1 30 f0 + 16 f1 f2 )
12

h3 f

( f1 + 3 f0 3 f1 + f2 )

1
( f2 + 2 f1 2 f1 + f2 )
2

h4 f iv

no hay

f2 4 f1 + 6 f0 4 f1 + 2 f2

hf

2.2.

numerica

Integracion
directa

Metodo
trapezoidal: Se desea integrar numericamente
dividiendo el intervalo (a, b) en N intervalos de largo h con los puntos x0 = a, x1 , x2 , ..., xN1 ,
se comienza por
xN = b. Para obtener este primer algoritmo de integracion
escribir
f (x)

1
fk + (x xk ) fk + (x xk )2 fk + . . .
2

fk+1 fk
fk + (x xk )
+ O (x xk )2
h

(2.2.1)

para integrar en uno solo de los intervalos: desde xk hasta xk + h,


Z xk +h

f (x) dx

xk

h2 fk+1 fk
+ O(h3 )
2
h
h ( fk+1 + fk )
+ O(h3) (2.2.2)
=
2
fk h +

es el area

La ultima

expresion
del trapecio de la figura. Al sumar k sobre N sitios y tomando en cuenta
que N h1 se obtiene,

fk+1

fk
h

sumando las areas


de los trapecios, que


Z b
f0 + f1 f1 + f2
fN1 + fN
f (x) dx =
h
+
+ ...
2
2
2
a
h
( f0 + 2 f1 + 2 f2 + .. + 2 fN1 + fN ) + O(h2 )
=
2
(2.2.3)
Universidad de Chile

Escuela de Ingeniera y Ciencias

NUMERICA

2.2. INTEGRACION
DIRECTA

Derivadas e integrales numericas

3 f

y el error es de orden O(h2 f ) = O( (ba)


N2

).

precisa es la de Simpson que

Metodo
de Simpson: Una formula
algo mas
surge de integrar en forma explcita en x entre xk1 = xk h y xk+1 = xk + h. La

expresion

f (x)

fk+1 fk1
(x xk ) +
2h


fk1 2 fk + fk+1 (x xk )2
+ O (x xk )3 + O (x xk )4 (2.2.4)
2
h
2

fk +

en (xk h, xk + h) de los terminos

La integracion
(x xk )r con r impar da cero.
anterior sobrevive la integracion
del termino

De la expresion
con (x xk )2 , el
5

termino
cubico

no contribuye al error y el ultimo

da un O(h ) y se obtiene

2h fk +

fk1 2 fk + fk+1 1 2h3 h


= ( fk1 + 4 fk + fk+1 ) + O(h5)
h2
2 3
3

(2.2.5)

se obtiene el algoritmo de Simpson que se aplica


Componiendo esta expresion
con N par,

Z b

h
[ f0 + 4 ( f1 + f3 + .. fN1 ) + 2 ( f2 + f4 + .. + fN2) + fN ] + O(h4)
3
(2.2.6)
precisamente es O(h4 f IV )
y el error mas
a

f (x) dx

Viendo la logica
de (2.2.4) y como
conduce a (2.2.6) resulta obvio obtener
precisas para hacer una integral.
expresiones aun mas
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

/*

"simpson.c"
Programa generico para hacer
la integral de F(x) desde
x=a hasta x=b usando
el metodo de Simpson

double simpson()
{ int k;
double sumaPar,sumaImp,xk;
sumaPar = 0.0;
sumaImp = 0.0;
xk
= a;
for(k=0; k<nu-1; k++)
{
xk
+= h;
sumaImp += F(xk);
xk
+= h;
sumaPar += F(xk);
}
sumaImp = sumaImp + F(xk+h);
sumaPar = 2.0*sumaPar +F(a) +F(b);
return( (4.0*sumaImp + sumaPar)*h/3.0);
}

Autor: anonimo
*/
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define
#define
#define
#define
#define

N
nu
a
b
h

20
(N/2)
0.0 //limite inferior
1.0 //limite superior
((b-a)/N)

double F(double x)
{ return(x*x*x*x);
}

25

main()
{ double inte;
inte = simpson();
printf("integral = %14.11f\n",inte);
}

//Aqui se pone
//integrando F

no uniforme sencilla
2.2.1. Discretizacion

Tanto el metodo
trapezoidal como el de Simpson han sido planteados con
uniforme, pero no es necesario proceder de ese modo. En el
discretizacion

(2.2.2) con un
caso del metodo
trapezoidal se puede tomar cada contribucion
h propio, y la integral es
N1
hk
( fk + fk+1 )
I=
k=0 2

En el caso del metodo


de Simpson se integro los intervalos de a pares y fue
crucial que los dos miembros de un par fueran iguales, pero distintos pares
pueden tener hk distintos. La integral queda
N1

I=

hk
( fk1 + 4 fk + fk+1 )
k=1,3,5... 3

Esta vez la suma va de par en par de intervalos por lo que es necesario sumar
solo sobre ndices impares. El primero es k = 1 y el ultimo

es k = N 1.

2.2.2. Limitaciones

Estos metodos
no debieran o no pueden ser usados en forma directa si:
Universidad de Chile

Escuela de Ingeniera y Ciencias

Y CAMBIO DE VARIABLE
2.3. INTEGRACION

Derivadas e integrales numericas

es infinito
- el intevalo de integracion
vara mucho en el intervalo (funcion

- la funcion
con alto contraste)
- hay una divergencia en el intervalo
- ..

2.3.
2.3.1.

y cambio de variable
Integracion
Planteamiento y ejemplos

En general para hacer una integral numerica


es conveniente hacer algun

tipo de cambio de variable. En particular los problemas mencionados antes


y = g(x) , esto es,
se superan haciendo un cambio de variable de integracion

dy = g (x) dx. Genericamente


I

Z b

f (x) dx


Z g(b) 
f (x)
g(a)

g (x)

dy

(2.3.1)

x=g1 (y)

y la segunda forma de la integral se discretiza uniformemente. Notese


que

g(x) debe ser monotona


para que g no tenga ceros en el intervalo que interesa. Discretizar uniformemente en la nueva variable y es equivalente a una
no uniforme en la variable original x. Otra limitante practica

discretizacion
para
inversa g1 .
g(x) es que debemos conocer la funcion

El procedimiento practico
normalmente define una sola vez en la rutina un
x = g1 (y) el que es usado para calcular [ f (x)/g (x)]. Es decir, se genera la
secuencia regular de valores y, con cada uno de ellos se calcula x, y se va
sumando f (x)/g (x).
Al hacer un cambio de variable se debe cuidar que los valores de


f (x)
s(y) =
g (x) x=g1 (y)

(2.3.2)

sean finitos en todo el intervalo, en particular en los extremos g(a) y g(b).


Al hacer el cambio de variable y = g(x) se debe cumplir:

a) g(x) es monotona
en el intervalo (a, b) original,
b) el nuevo intervalo (g(a), g(b)) es finito
c) el nuevo integrando s(y) debe ser regular y de poco contraste.
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

27

Como ya se dijo, el cambio de variable equivale a tomar intervalos no regulares en la variable original x. Los puntos regulares yk en la nueva variable
definen puntos xk = g1 (yk ) en el eje original.

El gran inconveniente de los metodos


con cambio de variable presentados
hasta aqu es que esta limitado a gunciones g(x) para las cuales se conoce
inversa g1 (y). Mas
adelante, en el captulo correspondiente a los
la funcion

metodos
Monte Carlo se podra superar este inconveniente.

Ejemplo con intervalo infinito: Consideremos


I=

Z
0

2 +x

ex

dx

ln y. La integral pasa a ser



Z 1 x
e
I=
dy
2x x= ln y
0

Si se toma y = ex y por tanto x =

que no es aceptable porque se obtiene un integrando divergente.


Pero si se escoge y = g(x) = ex , es decir,
2 +2x

s(x) = ex
la integral que se debe evaluar es
I=

Z 1h
0

2 +2x

ex

x= ln y

dy

El problema ha sido reducido al de una integral en intervalo finito y poco contraste.


Integrandos con mucho contraste: Aun en casos en que no hay divergen vara mucho en el intervalo (mucho contraste) se debe hacer
cias, si la funcion
el cambio y = g(x) pasando as a una integral sobre la variable y con integrando
[ f (x)/g (x)]x=g1 (y) y g(x) se debe escoger de tal forma que el nuevo integrando
plano posible. El colmo sera conseguir que fuese una constante,
sea lo mas
pero en tal caso el problema estara resuelto antes de comenzar.

Veamos como
suavizar el integrando con el ejemplo
Z 1

f (x) dx

con

f (x) =

1 x2 / 2
e

1.

Se trata de buscar un g(x) apropiado. Puesto que g tiene que tener una forma

parecida al integrando f (x) entonces g debe tener la forma de un escalon


Universidad de Chile

Escuela de Ingeniera y Ciencias

Y CAMBIO DE VARIABLE
2.3. INTEGRACION

Derivadas e integrales numericas

redondeado. Escojamos que satisfaga g(1) = 1 y g(1) = 1. Por ejemplo, se


puede tomar

arctan ax

g(x) =
arctan 1a

Se deja como ejercicio ver el a optimo


para cada valor de .

Si el integrando tiene muchos picos se subdivide el intervalo de integracion


para tener integrales con un solo pico en cada segmento y tratar cada caso
segun
lo que convenga.

Encontrar un cambio de variable apropiado para calcular


Z 40
1

2.3.2.

dx
x2 (1 + x)

Divergencias en el integrando

del integrando
Metodo
1: regularizacion
Si hay divergencias en el intervalo pero aun as la integral es finita, se debe
tratar separadamente cada parte. Para ello se redefine intervalos de integra que dejan al punto de divergencia en un extremo para pasar a estudiar
cion
la forma de tratar una integral que es divergente en un extremo del intervalo.
Tomemos el caso
Z
b

f (x) dx

I=

con f (0) =

Para que I sea convergente a pesar del valor infinito de f en x = 0 es necesario


que
lm x f (x) = 0
x0

Para abordar este problema suele ser conveniente hacer el cambio de variable
y = g(x) = x , con > 0 porque dy = x 1 dx y

Z b 
f (x)
I=
dy
x 1 x=y1/
0
y se debe escoger tal que
lm

f (x)

y0 x 1

sea finito

lentamente
Pero I es no divergente tan solo si f (x) diverge en el origen mas
que 1/x. Entonces definamos , 0 < < 1, tal que
| f (x 0)| <
de 14 de julio de 2009
version

A
x1

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

29

a la integral que proviene de una vecindad


Lo que intereza es la contribucion
al origen,

Z h 
f (x)
Ih =
dy
x 1 %
0

Z h 
A

dy
x1 x 1 %
0
Z
A h h i
dy

x
0
%
Z h
A
y( )/ dy

(2.3.3)
0
que es convergente si . Se debe escoger un positivo menor o igual a
.

Ejemplo 1: Calcular:

Z 1 1/3
x
0

sin x

dx

Cerca del origen el integrando es f x2/3 es decir, = 1 2/3 = 1/3 y se


puede escoger cualquiera de los casos 0 < 1/3. Si se toma = 1/3 la
integral se convierte en
Z 1
y3
dy
3
3
0 sin y
Ejemplo 2: Para calcular

Z 1

P(x) ln(x) dx

suave, basta con tomar y = x1/100 para tener un


donde P(x) es una funcion
integrando F(y) suave.
Calcular

Z 1
sin(x)
0

dx
1 x2

Metodo
2: tratamiento analtico de la divergencia
Otra forma de tratar integrales que tienen divergencias en el integrando es
tratar en forma analtica el trozo que contiene la divergencia. Por ejemplo,
Z 1
0

Universidad de Chile

dx
(1 x)1/3 x2/3
Escuela de Ingeniera y Ciencias


Derivadas e integrales numericas

2.4. INTEGRAL DE PARTE PRINCIPAL

Para tratar la singularidad en x = 0 se separa la integral


Z h

dx

(1 x)1/3 x2/3

Z h
dx
0

x2/3

= 3h1/3

se procede en forma similar en el lmite superior. El resto de la integral se hace


en la forma usual.

2.4.

Integral de parte principal

Suele ser necesario calcular la integral


I=

Z b
f (x)
a

x x0

x0 [a, b]

dx

en que tanto la integral desde a a x0 como la de x0 a b son divergentes y f (x)


es regular en x = x0 . Es conocido que la parte principal se define por medio de
Z b
f (x)
a

x x0

dx = P

Z b
f (x)
a

x x0

dx + i f (x0 )

y la parte principal es
P

Z b
f (x)

x x0

dx = lm

h=0

Z

x0 h

f (x)
dx +
x x0

Z b

f (x)
dx
x0 +h x x0

Para calcular numericamente


la parte principal se razona a partir de reescribir I en la forma
Z b
f (x)

x x0

dx =

Z b
f (x) f (x0 )
a

x x0

dx +

Z b
f (x0 )
a

x x0

dx

(2.4.1)

La primera integral, que denotamos I1 , es no singular y se hace en forma

estandar,
mientras que la segunda integral es
Z b
f (x0 )
a

x x0

dx

=
=
=

b x0
f (x0 ) ln
a x0


b x0
+ ln(1)
f (x0 ) ln
x0 a


b x0
f (x0 ) ln
+ i
x0 a

(2.4.2)

Se ha aislado el termino
i f (x0 ). La labor de obtener numericamente
la par
te principal consiste en evaluar numericamente
la integral I1 utilizando algun

metodo
estandar
y sumarle f (x0 ) ln bx
.
x a
0

de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

2.5.
1.

Metodos
Computacionales en Fsica

31

Problemas

a) Tal vez sea bueno comenzar por escribir programas de integracion


trapezoidal y Simpson e intregrar sin cambio de variable
Z 1

xn dx

con n = 3, 4, 5 . . .

viendo cuanto
debe valer N para tener un error de menos del 1 %.
que puede ser N.
Se vera lo sorprendentemente pequeno
b) Trate de obtener un error menor al 1 %.
a integrar y la funcion
que resulc) Puede serle util
graficar la funcion
de cada cambio de variable. De esa manera se puede
ta despues
entender la fuente de los posibles errores.
d) Para el caso x = 10 debe tener cuidado con la forma de evaluar la

potencia t 9 para que sea rapida


y no cometa mucho error.
e) Por razones obvias, no se debe calcular la integral por partes, ni
hacer algun
truco que permita llevarla a una integral analtica.
gamma, (x), se define como la siguiente integral
2. La funcion
(x) =

Z
0

t x1 et dt

(2.5.1)

que converge para todo x positivo, pese a que para 0 < x < 1 el integrando
tiene una divergencia en t = 0.

anterior, la
Se pide calcular numericamente,
a partir de la definicion
para x = 10 y x = 1/2, valores para los cuales se conocen los resultados
analticos:
(10) = 9! = 362880

(1/2) =

(2.5.2)
(2.5.3)

En cada caso se debe indicar el(los) cambio(s) de variable usado(s), el


el metodo

(trapenumero

de puntos en la discretizacion,
de integracion
zoidal o Simpson), el resultado obtenido y el error cometido respecto al
valor analtico.

3. Calcule numericamente
las integrales
I (1) =

Z
0

I (2) =

Z 1
1+x
0

Universidad de Chile

ex ln x dx

1 x3

1
ln dx
x
Escuela de Ingeniera y Ciencias


Derivadas e integrales numericas

2.5. PROBLEMAS

El problema consiste en hacer numericamente


las integrales de arriba
con algun
cambio de variable para tener un integrando suave en un intervalo finito. Se debe obtener un resultado razonablemente bueno teniedo
que evaluar el integrando final el menor numero

(N) de veces que sea


posible. Como criterio de convergencia debe usar alguna cantidad como
err =

I IN
< 10n
I

con n = 2, 3, 4, 5, 6. Como ya se dijo, una de las metas es conseguir que


N sea lo menor posible teniedo un resultado confiable.
En cada caso se debe indicar el (los) cambio(s) de variable usado(s),
el metodo

el numero

N de puntos en la discretizacion,
de integracion
(trapezoidal o Simpson, nada superior), el resultado obtenido y el error

numerico
cometido respecto al valor de I. No debe usar el conocimiento analtico de la integral sino su propio criterio para estimar ese error.
Explique y justifique.
Dibuje el integrando f (x) y separadamente el integrando final h(y) =
[ f (x)/g (x)]x=... que haya usado (cada cual es su dominio). Dibujar los
valores IN versus N1 para algunos valores de N.
por partes, ni
Por razones obvias, no se permite recurrir a integracion
hacer algun
truco que permita llevarla a una integral analtica.
fsica. Para muchos efectos la fuerza entre atomos

4. Motivacion
puede ser
tratada exitosamente con el potencial central, llamado de Lennard-Jones,

 
a 12  a 6
(2.5.4)

V = 4V0
r
r
cuyo valor mnimo es V0 y se anula cuando r coindice con el radio de
Bohr. Una partcula atrapada en este potencial (energa menor que cero),
tiene un movimiento en el intervalo (rmin , rmax ) donde ambos radios son

mayores que a. Cuanticamente


solo hay un conjunto discreto de energas
p2

+V (r) o equivalentemente la magnitud


En posibles. Clasicamente
E = 2m
p
del momentum depende de r en la forma p(r) = 2m (E V (r)). Una
forma aproximada de plantear el problema de encontrar los valores de los

de Bohr-Sommerfeld
niveles cuanticos
En consiste en exigir la condicion


I
1
p(r)
dr = 2 n +
2
h
con n entero nonegativo. La integral es sobre un ciclo completo de osci El problema se adimensionaliza haciendo las sustituciones
lacion.
E = V0 E ,
de 14 de julio de 2009
version

r = a ,

V0 =

2 h 2
2 a2 m

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

33

El valor de en el caso de la molecula


de hidrogeno
es 21,7, en el de O2
es 150.

integral de arriba se convierte en la exigencia que se anule


La condicion

la funcion
Fn (En ) =

Z max
min

En 4

1
1

12 6

n+

1
2

(2.5.5)

Es decir, el problema consiste en encontrar los ceros de Fn dados = 150


y n = 0, 1, 2 con 1 < En < 0 sabiendo que

min =

1/6
1/6

2 + 2 n
2 2 n
, max =
1 n
1 n

donde n = 1 + En.
debe ser util
con otros potenciales
El programa que se disene
tambien
V (r).

En la busqueda

de los ceros debe usar el metodo


de la secante (indican
do, entre otras cosas, la tolerancia usada y cuantas
iteraciones fueron
necesarias).

Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

de 14 de julio de 2009
version

2.5. PROBLEMAS

Facultad de Ciencias Fsicas y Matematicas

Captulo 3

Ecuaciones diferenciales
ordinarias
3.1.

a ecuaciones de primer orden


Reduccion

El problema de resolver
d2g
= F( , g, g )
d 2

(3.1.1)

puede ser replanteado en la forma


d~y ~
= f ( ,~y)
d
donde
~y =
es decir

+

dg
d
dy2
d

g
y2

de borde
alguna condicion

(3.1.2)

(3.1.3)

~f =

y2
F

= y2
= F( ; (g, y2 ))

(3.1.4)

Se puede adivinar de lo anterior que siempre se puede reducir un problema


de ecuaciones diferenciales ordinarias a un sistema de ecuaciones de primer
orden.
F puede plantearse definiendo
Por ejemplo ~x = m1 ~

 

~v
~x
~f =
~y =
1~
~v
mF
35

(3.1.5)

A ECUACIONES DE PRIMER ORDEN


3.1. REDUCCION

Ecuaciones Difrenreciales Ordinarias

con lo que el problema consiste en resolver


d~x
= ~v
dt

d~v
1
= ~F
dt
m

(3.1.6)

se vera una serie de metodos

A continuacion
para atacar (3.1.2).

3.1.1.

Metodo
directo simple (de Euler)

Este metodo
consiste en plantear (3.1.2) en la forma


h
yn+1 yn

O
y = fn
yn+1 =
h
2
y de aqu definir la recurrencia
yn+1 = yn + h fn + O(h2)

(3.1.7)

podra consistir en aproximar


Una forma para tratar de mejorar la precision
a iterar es
y (yn+1 yn1)/2h con lo que la ecuacion
yn+1 = yn1 + 2h fn + O(h3 )

(3.1.8)

pero ambas recurrencias sufren del mismo problema de estabilidad.


exacta del problema discreto. Se
Estabilidad de (3.1.8): Sea y la solucion
define n tal que yn = yn + n con lo cual (3.1.8) pasa a ser
yn+1 + n+1

= yn1 + n1 + 2h f (n , yn + n )


f (n , yn )
n
= yn1 + n1 + 2h f (n , yn ) +
y

(3.1.9)

de donde

f (n , yn )
(3.1.10)
n
y
que da la forma como se propaga el error. Si la funcion
f
que es la ecuacion
no es muy sensible a y se puede razonar suponiendo que es constante y en tal
se puede resolver
caso se trabaja con n+1 = n1 + 2 n . Esta ultima

ecuacion
suponiendo que
n = 0 n
p
2
porque (3.1.10) se recuce a 2 1 = 0 que da las raices = 1 + 2
y entonces
n = A +n + B n
(3.1.11)
n+1 = n1 + 2h

Si > 0 entonces + > 1 y +n crece con n y el error crece.


p
Si < 0 se obtiene = | | 1 + 2 y < 1 y n crece con n
numerica

cambiando de signo. La solucion


que se obtiene va oscilando en

torno a la solucion y con amplitud creciente.

Es decir, el metodo
es incondicionalmente inestable y no sirve.
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

37

3.1.2. Metodo
implcito
(3.1.2) se plantea
La ecuacion
 


dy
= f n+ 1 , yn+ 1
2
2
d n+ 1

(3.1.12)

El lado izquierdo se reescribe como


yn+ 1 + 1 yn+ 1 1
2

2 h2

+ O(h2 ) =

yn+1 yn
h

(3.1.13)

y el lado derecho se reemplaza por el promedio de los valores en n y en n + 1,


1
2 [ f n + f n+1 ] con lo cual resulta
yn+1 = yn +

h
( fn + fn+1) + O(h3 )
2

(3.1.14)

La incognita,
yn+1 aparece en ambos lados, por tanto, en cada paso de itera se debe buscar el cero de la funcion

cion
h
G(z) = z yn [ f (n , yn ) + f (n + h, z)]
2

Estabilidad del metodo


implcito:
dio en el caso anterior se plantea

En forma analoga
a como se proce-

h
yn+1 + n+1 = yn + n + ( f (n , yn + n ) + f (n+1, yn+1 + n+1 )
2

(3.1.15)

Expandiendo y trabajando un par de pasos se obtiene que


h
n+1 = n + (y fn n + y fn+1 n+1 )
2

(3.1.16)

El ultimo

n+1 puede ser reemplazado por n ya que la diferencia es de mas


alto orden. Entonces


h
(3.1.17)
n+1 n 1 + (y fn + y fn+1 )
2

anterior. Si es
Lo crucial es el signo del parentesis
redondo en la expresion
negativo el error decrece.
es crecienComo se ve, lo que importa es el signo de dy/d . Si la funcion
te, el error crece (aunque puede que porcentualmente crezca menos que la
y si la funcion
decrece el error decrece. El metodo

funcion)
puede funcionar y
puede no funcionar: es condicionalmente estable.
Universidad de Chile

Escuela de Ingeniera y Ciencias

A ECUACIONES DE PRIMER ORDEN


3.1. REDUCCION

Ecuaciones Difrenreciales Ordinarias

3.1.3.

Metodo
de Runge-Kutta

Esta vez (3.1.2) se plantea en la forma


d~y
= ~f ( ,~y)
d
~y(0) = ~y0
Y se usa dos expansiones de Taylor,
h2
~yn + O(h3 )
(3.1.18)
2
h
(3.1.19)
~yn+ 1 =~yn + ~yn + O(h2 )
2
2
De la ultima,

multiplicada por h, se obtiene



h2 
(3.1.20)
~yn = ~yn+ 1 ~yn h + O(h3)
2
2
original
Que se reescribe utilizando la ecuacion


2
h
(3.1.21)
~yn = ~fn+ 1 ~yn h + O(h3)
2
2
en (3.1.18) se cancelan las primeras derivadas
Al reemplazar esta expresion
y se obtiene
h
h
~yn+1 = ~yn + h ~f (n + ,~yn + ~fn )
(3.1.22)
2
2
Este resultado final conocido como RK2, tradicionalmente se reescribe en la
forma
~k1 = h ~f (n ,~yn )
~yn+1 =~yn + h~yn +

~k2
~yn+1

h
1
= h ~f (n + ,~yn + ~k1 )
2
2
= ~yn +~k2 + O(h3)

RK2

(3.1.23)

Este metodo
es explcito, el error es orden h3 y puede hacerse estable. La
f debe ser llamada dos veces en cada iteracion.

desventaja es que la funcion


Otra ventaja es que, puesto que avanza paso a paso y no requiere de informa anterior, se puede ir ajustando el paso h a medida que se avanza en la
cion

integracion.
alto orden.
Siguiendo un camino semejante se obtiene algoritmos de mas
RK3:
~k1
~k2
~k3
~yn+1
de 14 de julio de 2009
version

h ~f (n ,~yn )
h
1
= h ~f (n + ,~yn + ~k1 )
2
2
= h ~f (n + h,~yn ~k1 + 2~k2)

1
= ~yn + ~k1 + 4~k2 +~k3 + O(h4 )
6

(3.1.24)

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

/*
Runge Kutta 4 para
sistema 1D newtoniano
*/
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define h
...
#define h2
h*h
#define iiMAX
...
double
double
double

y[2], /* y0=x
y1=vx */
f[2]; /* f0=vx f1=ax */
k1[2],k2[2],k3[2],k4[2];
t;

void Inic()
{ y[0] = ...;/* x inic */
y[1] = ...;/* v inic */
t
= 0.0;
}
void efe(double t,
double posic, double vel)
{double x;
f[0] = vel;
x
= y[0];
...
f[1] = ..;/* aqui fuerza/m */
}
void cal_k1()
{ efe(t,y[0],y[1]);
k1[0] = h*f[0];
k1[1] = h*f[1];
}

39

void cal_k2()
{ efe(t+0.5*h,y[0]+0.5*k1[0],
y[1]+0.5*k1[1]);
k2[0] = h*f[0];
k2[1] = h*f[1];
}
void cal_k3()
{ efe(t+0.5*h,y[0]+0.5*k2[0],
y[1]+0.5*k2[1]);
k3[0] = h*f[0];
k3[1] = h*f[1];
}
void cal_k4()
{ efe(t+h, y[0]+k3[0], y[1]+k3[1]);
k4[0] = h*f[0];
k4[1] = h*f[1];
}
void Itera()
{ long ii;
for(ii=0;ii<iiMAX;ii++)
{ cal_k1();
cal_k2();
cal_k3();
cal_k4();
y[0] +=(k1[0]+2.0*k2[0]
+2.0*k3[0]+k4[0])/6.0;
y[1] +=(k1[1]+2.0*k2[1]
+2.0*k3[1]+k4[1])/6.0;
t
= t + h;
}
}
main()
{Inic();
Itera();
}

RK4:
~k1
~k2
~k3
~k4
~yn+1

= h ~f (n ,~yn )
h
1
= h ~f (n + ,~yn + ~k1 )
2
2
h
1~
~
= h f (n + ,~yn + k2 )
2
2
= h ~f (n + h,~yn +~k3 )

1
= ~yn + ~k1 + 2~k2 + 2~k3 +~k4 + O(h5 )
6

(3.1.25)

Ventajas: es h5 , es estable, permite adaptar el paso. Tiene amplia aplicabilidad.


Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

3.2. INTEGRADORES MULTIPASO

Desventajas: se debe calcular f cuatro veces en cada iteracion.

Sobre el paso variable. Para que el metodo


sea preciso la magnitud de
los ~ka deben ser mucho menores que k~yn+1 ~yn k. Si se va detectando que
chico. Por el contrario,
tales magnitudes se acercan a se debe escoger h mas
si k~ka k entonces se debe agrandar h.

3.1.4.

Estabilidad de RK4

particular que se quiera tratar,


Un analisis
completo de estabilidad depende de la ecuacion
puede sondearse estudiando lo que
pero la tendencia general de cada esquema de integracion
y = y. En lo que sigue se estudiara para esta ecuacion

ocurre en el caso de la sencilla ecuacion


para yn+1 dada en
la estabilidad de RK4. Calcularemos los ka y finalmente usaremos la expresion
(3.1.25). En las expresiones de los ka se reemplaza f por multiplicando al segundo argumento

de f que, genericamente
es y, obtieniendose
k1

k2

k3

=
=

k4

h yn




1
h
h yn + k1 = h 1 + yn
2
2


 
h
h
h yn + 1 + yn
2
2



h
h
h 1+ 1+
yn
2
2




h
h
yn
h 1 + h 1 + 1 +
2
2

(3.1.26)

para yn+1 y escribiendo yn+1 = yn+1 + n+1 y siAl reemplazar estos valores en la expresion
exacta de la ecuacion
discreta, se obtiene
milarmente yn = yn + n (donde los y son la solucion
que
n+1
(h )2 (h )3 (h )4
+
+
(3.1.27)
= 1 + h +
n
2
6
24
Para que haya estabilidad este cuociente tiene que tener un valor absoluto menor que 1 y puede
comprobarse que esto requiere que
2,7853 < h < 0
Por ejemplo, si = 1 entonces la estabilidad esta garantizada con 0 < h < 2,7853, que da un
absolutamente estable aun cuando, si h no es pequeno,

amplio margen para tener una ecuacion


va a ser posiblemente poco confiable.
la solucion

3.2.
3.2.1.

Integradores multipaso

Presentacion

generica

Nuevamente considerese
la ecuacion
y = f ( , y)
de 14 de julio de 2009
version

(3.2.1)

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

41

Al integrarla entre n y n+1 se obtiene


yn+1 yn =

Z n+1
n

f ( , y( )) d
| {z }

(3.2.2)

F( )

El integrando sera denotado F( ) y debe tenerse presente que es un valor de


y = f .
inicial: y0 =
En este tipo de algoritmo se supone que se tiene una condicion
conocida, entonces de (3.2.1) se tiene
y(0 ). Puesto que f ( , y) es una funcion
y (0). El valor y1 se puede obtener, al menos en una aproximacion
de
tambien
puntos iniciales
bajo orden, por medio de y1 y0 + h y (0). Si se necesitara mas
(por ejemplo y0 , y1 , y2 ), estos algoritmos deben obtener esos primeros valores
con alguna estrategia diferente como puede ser, por ejemplo, RK4 con paso
muy fino.
Si se aproxima F( ) Fn entonces la integral en (3.2.2) vale h Fn + O(h2 ) y
se obtiene
yn+1 = yn + h Fn + O(h2)
que es el algoritmo de Euler, que ya se sabe que es inestable.

3.2.2. Algoritmo predictor de Adams-Bashforth

se basan en la prediccion

Los metodos
AB que se discuten a continuacion
del valor de F en el intervalo que se requiere en (3.2.2) usando como informa valores anteriores: Fn , Fn1 . . .
cion
que F( ) = a + b y que exige que tal exSi se toma como aproximacion
sea valida

presion
en = n1 y en = n se obtiene
F( ) =

+ n
n1
Fn1 +
Fn + O(h2 )
h
h

(3.2.3)

lo que conduce a poder hacer, en el intervalo que sigue, (n , n+1 ), la integral


Z n+1
n

F d = h


1
3
Fn Fn1 + O(h2)
2
2

(3.2.4)

Es decir, se usa el conocimiento de F en (n1 , n ) para extrapolar al interva descrita. Esta extrapolacion
conduce al
lo (n , n+1 ) y hacer la integral recien
integrador AB3,
yn+1 = yn +

h
(3 Fn Fn1) + O(h3 )
2

AB3

(3.2.5)

como una forma de predecir el


Claramente aca se ha usado la extrapolacion

comportamiento de la funcion.
Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

3.2. INTEGRADORES MULTIPASO

versiones mas
precisas. En la que sigue se aproxima F =
A continuacion,
a 2 + b + c y los coeficientes (a, b, c) se determinan exigiendo que den los
valores Fn2 , Fn1 y Fn . Una vez que se tiene tales coeficientes se tiene una

forma cuadratica
para F que se integra en el intervalo (n , n+1 ). Finalmente se
obtiene:

yn+1 = yn +

h
(23Fn 16Fn1 + 5Fn2) + O(h4)
12

AB4

(3.2.6)

En forma semejante pero ahora tomando en cuenta Fn3 , Fn2 , Fn1 y Fn se


obtiene:

yn+1 = yn +

h
(55Fn 59Fn1 + 37Fn2 9Fn3) + O(h5)
24

AB5 (3.2.7)

y rapidos

Estos son metodos


explcitos de alto orden (error pequeno)
porque F se evalua una sola vez en cada paso. Pero se extrapola en lugar de
interpolar como lo hace Runge-Kutta y por tanto falla si F es muy variable. Por
su propia naturaleza el paso h debe permanecer fijo.
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

43

3.2.3. Estimador de Adams-Moulton


/* Se usa un predictor corrector de bajo
orden para integrar un pendulo simple:
d2 phi/dt2 = -sin phi
Notacion:
Y
= phi
o
= omega
F = [omega, -sin(phi)] :
Fu = F_up
Fd = F_down*/
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define h
0.01
FILE
*archivo;
/*No se usa arreglos, sino tan solo el conocimiento de phi, omega y F en tres instantes distintos que en los apuntes se
llaman (n-1,n, n+1) y que aqui se llaman (0,1,2).
Es feo usar tanta variable global.
*/
double t, Y0, o0, Y1, o1, Y2, o2;
double
Fu0,Fd0,Fu1,Fd1,Fu2,Fd2;
//Inicializacion poco elegante
void Inic()
{ Y0 = 1.0;
//phi(0)
= 1
o0 = 0.0;
//dotphi(0) = 0
Y1 = Y0 - h*o0;//phi(dt)=phi0-omega*dt
o1 = -sin(Y0)*h;//omega1=-sin(phi0)*dt
}
//Se llama AB3 en los apuntes:
void Predice()
{ Y2 = Y1 + 0.5*h*( 3.0*Fu1 - Fu0 );
o2 = o1 + 0.5*h*( 3.0*Fd1 - Fd0 );
}
//Solo aqui entra fuerza -sin(phi)
void Estima()
{ Fu2 = o2;
Fd2 = -sin(Y2);
}

//Se llama AM3 en los apuntes


void Corrige()
{ Y2 = Y1 + 0.5*h*(Fu1 + Fu2 );
o2 = o1 + 0.5*h*(Fd1 + Fd2 );
}
void Itera()
{ Predice();
Estima();
Corrige();
//Se traspasa valores
Y0 = Y1;
o0 = o1;
Fu0 = Fu1;
Fd0 = Fd1;
Y1 = Y2;
o1 = o2;
Fu1 = Fu2;
Fd1 = Fd2;
}
main()
{ int k;
archivo = fopen("angulo.dat","wt");
Inic();
k = 0;
t = 0.0;
do
{ Itera();
k++;
t += h;
if(t>600)//.. partir de t>600
{ if(k%20==0)//se usa formato %g
{fprintf(archivo,
"%8g
%12g\n",t,Y2);}
}
//No es necesario guardar
} while(t<800); // para todo k
fclose(archivo);
}

de un pendulo

En el ejemplo de arriba se usa AB3 y AM3 para integrar la ecuacion


simple

En este caso se estima fn+1 y en el caso AM3 se usa tan solo n y n+1 .
AM3:

Se toma
F( ) =

n+1
n
Fn +
Fn+1 + O(h2 )
h
h

que permite obtener que la integral de la derecha sea


I=

Fn + Fn+1
h + O(h3)
2

por lo cual
h
yn+1 = yn + (Fn + Fn+1) + O(h3)
2
Universidad de Chile

AM3

(3.2.8)

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

3.2. INTEGRADORES MULTIPASO

Este es un metodo
implcito y es equivalente a alguno de lo metodos
que ya
se haba visto. Para determinar yn+1 se debe buscar el cero de
h
G(z) = yn + (Fn + f (n+1 , z)) z
2
G(yn+1 ) = 0.
Por definicion

AM4: Esta vez f ( ) en el intervalo (n, n + 1) se aproxima con una parabola


que pasa por los valores Fn1 , Fn y Fn+1 y se obtiene
I=

h
(5Fn+1 + 8Fn Fn1) + O(h4 )
12

y entonces
yn+1 = yn +

h
(5Fn+1 + 8Fn Fn1) + O(h4)
12

AM4

(3.2.9)

AM5: En forma analoga


que en el caso anterior pero usando un polinomio
de (n 2, n 1, n, n + 1) y se obtiene
cubico

con la informacion
yn+1 = yn +

h
(9Fn+1 + 19Fn 5Fn1 + Fn2) + O(h5 )
24

AM5

(3.2.10)

Puesto que estos metodos


son implcitos se debe determinar un cero con

metodos
como el de la secante y eso conlleva un riesgo. Pero en lo que sigue se muestra una variante muy exitosa.

3.2.4.

Metodo
predictor-corrector

Este metodo
consiste en mezclar metodos
explcito y otro implcito del mismo orden.
mas
sencilla de predictor-corrector es la regla trapezoidal de
La version
Nystrom que se puede enunciar como sigue:
(P)

1. Primero se predice yn+1 = yn1 + 2 h fn .


obtenido de yn+1 se evalua fn+1
2. Con el valor recien
3. El valor de yn+1 se corrije calculando yn+1 = yn + 2h ( fn + fn+1 )

En el metodo
general de esta serie y que hace uso de los algoritmos AB y
AM se procede como sigue:
(P)

de puntos anteriores;
P: Usando AB se obtiene yn+1 a partir de la informacion
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

45

(E)

E: el ultimo

valor obtenido de yn+1 se usa para calcular Fn+1 = f (n+1 , yn+1 );


(E)

(C)

C: el ultimo

valor, Fn+1 , se usa en AM para obtener yn+1 .

En el paso C se usa Adams-Moulton como si fuese un metodo


explcito.
El paso P se hace una sola vez, pero los pasos (EC) se pueden hacer sucesivamente para lograr algun
tipo de convergencia, lo que se denota P(EC)n .
f de la ecuacion
que se
El paso E es el unico

que hace uso de la funcion


esta resolviendo.

3.3.

Predictor-corrector de Gear

sencilla de esta estrategia predictor-corrector para


Aqu se da una version
de Newton r = a, donde a(r, v) es una funcion
conocida. En general
la ecuacion
todas estas cantidades tienen varias componentes.
En la etapa predictiva se calcula
rn+1
hvn+1
h2
2 an+1
h3
6 bn+1

= rn
=
=
=

h
+
2 an
h2
+ 2 2 an
h2
2 an

+ h vn
hvn

+
+
+

h3
6 bn
3
3 h6 bn
3
3 h6 bn
h6
6 bn

(3.3.1)

Con los actuales valores en rn+1 y vn+1 se puede calcular un valor corregido
acn+1, lo que define un error

h2 c
an+1 an+1
2

En el calculo
de acn+1 es el unico

lugar donde interviene el lado derecho de la


de movimiento. Una vez determinado este error se calcula nuevas
ecuacion
cantidades
rn+1
= rn+1
+ c0 n+1
hvn+1
= nvn+1
+ c1 n+1
(3.3.2)
h2
h2
2 an+1 = 2 an+1 + c2 n+1
h3
h3
6 bn+1 = 6 bn+1 + c3 n+1
n+1 =

C.W. Gear (en trabajos de 1966 y 1971) determino los valores optimos
para

los coeficientes c j en diversos casos. Dependen, por ejemplo, de si la ecuacion


que se resuelve es de primer orden (como las ecuaciones de Hamilton) o de
depende del orden de la expansion
que
segundo orden (Newton) y tambien
se haga (en (3.3.1) se expandio hasta b = r ). En el caso que aqu se ha
presentado los coeficientes de Gear son
1
6

5
6
c=
1

(3.3.3)

1
3

Universidad de Chile

Escuela de Ingeniera y Ciencias


3.4. METODOS
DE VERLET Y VARIACIONES

Ecuaciones Difrenreciales Ordinarias

que los metodos

Al reves
predictor multipaso vistos antes, este
determina directamente los valores en n + 1 conociendo los valores en n.

3.4.

Metodos
de Verlet y variaciones

Se trata de resolver ecuaciones de Newton


x = a(x,t)

(3.4.1)

sin pasar a ecuaciones de primer orden. Estos metodos


se definen cuando
a(x,t) no depende de las velocidades. Sin embargo es generalizable al caso
en que existe una fuerza viscosa lineal en la velocidad x = a0 (x,t) cv. Se usa
x
x
v = n+12h n1 .
L. Verlet presento su algoritmo por primera vez en su trabajo Computer
experiments on classical fluids. I. Thermodynamical properties of LennardJones molecules, Phys. Rev. 159, 98-103 (1967).

3.4.1.

Propiamente Verlet

(3.4.1) se discretiza,
La ecuacion
xn+1 2xn + xn1
+ O(h2) = an
h2
con lo cual,
xn+1 = 2xn xn1 + h2 an + O(h4)
se evalua a una sola vez y el error es orden
En cada iteracion
no aparece.

(3.4.2)
h4 .

La velocidad

Las iteraciones son (xn1 , xn ) xn+1 , pero si las condiciones iniciales son
x0 y v0 se puede integrar con RK4 desde x0 hasta x1 y luego se procede con
3
2
(3.4.2) o bien usando x(h) = x(0) + h v(0) + h2 a(0) + h6 a (0).

es la misma,
Notese
que igualmente se puede despejar xn1 y la ecuacion
es decir, el algoritmo es reversible en el tiempo.
Para evaluar la velocidad se puede hacer
vn =

xn+1 xn1
+ O(h2)
2h

(3.4.3)

que es un error muy grande frente a h4 .


suele tener
Si bien (3.4.2) aparece con un error de truncamiento pequeno,
error de redondeo grande porque a una diferencia de dos numeros

grandes
(orden 1), 2xn xn1 , se le suma una cantidad de segundo orden, h2 an . Para

evitar esta fuente de error existe el metodo


leapfrog.
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

47

3.4.2. Estabilidad del metodo


de Verlet
exacta de (3.4.2) con h fijo y definamos
Sea x la solucion
xn = xn + n
donde los representan desviaciones que se han introducido de alguna ma de esta definicion
en la ecuacion
de Verlet
nera que no interesa. La sustitucion
da

(3.4.4)
n+1 2 + h2 an n + n1 = 0
donde an se escribio como a(xn + n ) a(xn ) + n an .

/*Verlet para orbita planetaria*/


#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define h
0.004
#define h2
h*h
#define largo 20000
FILE
*archivo;
int
ii;
double
x[3],y[3];
void Inic() /*-----------------*/
{double vx,vy;
x[0] = 4.0;
vx
= 0.0;
y[0] = 0.0;
printf("(ojo: 0.1<vy<=0.6) VY[0]=");
scanf("%lf",&vy);/* << por teclado*/
x[1] = x[0] + h*vx;
y[1] = y[0] + h*vy;
}
void Verlet()
{double xx,yy,r,r3,ax,ay;
xx
= x[1];
yy
= y[1];

r
r3
ax
ay
x[2]
y[2]

=
=
=
=
=
=

sqrt(xx*xx + yy*yy);
r*r*r;
-xx/r3;
-yy/r3;
2.0*xx - x[0] + h2*ax;
2.0*yy - y[0] + h2*ay;

}
void Itera()
{ii = 0;
do
{if(ii%10==0)
fprintf(archivo,"%9.6f %9.6f %9.6f\n",
h*ii,x[1],y[1]);
Verlet();
ii++;
x[0] = x[1]; y[0] = y[1];
x[1] = x[2]; y[1] = y[2];
}while(ii<largo || fabs(x[1]-4.0)>0.1);
}
main()
{ Inic();
archivo = fopen("orbita.dat","wt");
Itera();
fclose(archivo);
}

Algoritmo de Verlet para calcular una orbita


planetaria (~r = r3~r) que comienza en (x = 4,0, y = 0) mientras que vx (0) = 0 y
vy (0) se ingresa por teclado. Se itera al menos 20 mil veces y se detiene cuando x vuelve a estar cerca de 4.0. Si vy es muy
El archivo es a tres columnas con t, x(t), y(t). La instruccion
scanf() espera datos por teclado.
chico se pierde precision.
El printf() anterior advierte y no tiene cambio de lnea.

se analiza el caso de una fuerza

Caso de fuerza armonica:


A continuacion

armonica,
a(x) = 2 x
a (x) = 2
entonces

n+1 2 (1 R) n + n1 = 0
Universidad de Chile

(3.4.5)

Escuela de Ingeniera y Ciencias


3.4. METODOS
DE VERLET Y VARIACIONES

Ecuaciones Difrenreciales Ordinarias

donde 2R = h2 2 . Se reemplaza n = 0 n lo que


inmediatamente conduce a

Im
+

2 2(1 R) + 1 = 0

(3.4.6)

Re

cuyas raices son


p
= 1 R R2 2 R

(3.4.7)

por lo que puede ser complejo.


Si R = 0 entonces = 1.

Si R = 1 entonces = i.

Si R = 2 entonces = 1.

Si R entonces = 1 R R
= .

que + = 0 y que
1 R2 concluyendose

En resumen, cuando R crece desde cero hasta infinito, + recorre primero la semicircunferiencia Im > 0 unitaria del plano complejo y luego avanza
desde + = 1 hasta + = 0 mientras que recorre primero la semicircunferiencia Im < 0 unitaria del plano complejo y luego avanza desde = 1
hasta = .
Si R 2 se tiene | | = 1 que garantiza estabilidad, mientras que R > 2
implica | | > 1 que garantiza inestabilidad.
Puesto que R =

h2 2
2 ,

R 2 corresponde a
la condicion
h

y si se reemplaza =

2
T

es
entonces la condicion

(3.4.8)

Otros casos: Si se trata de otras fuerzas que provienen de un potencial

U(x), la cota maxima


para h esta dada porp
el perodo mnimo, es decir, por la

frecuencia maxima, que es proporcional a U (xmin ).

Si bien de esta manera se obtiene estabilidad, eso no quiere decir que se


aceptable. Normalmente se debe usar
tenga confiabilidad, es decir, precision
un h bastante menor que el que garantiza estabilidad.

de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

3.5.

49

Algoritmos simplecticos

del problema
3.5.1. Formulacion
Las ecuaciones de movimiento de un sistema conservativo de N partculas
puede escribirse en la forma
d
dt

~ra
~va

~va
~fa

(3.5.1)

~a sobre la partcula a dividida por la


donde a = 1, 2, . . . , N y ~fa es la fuerza total F
usando
masa de ella ma . Estas mismas ecuaciones pueden escribirse tambien
el operador Liouvileano,
L ~va ra + ~fa va
a

Ellas toman la forma


d
dt

~ra
~va

(3.5.2)

=L

~ra
~va

(3.5.3)

formal del movimiento entonces es


La solucion




~ra ( )
~ra (0)
L
=e
~va (0)
~va ( )

(3.5.4)

no puede hacerse en forma sencilla alguna.


El problema es que esta operacion
conviene escribir
Sin embargo, si las fuerzas dependen solo de la posicion
e L = e A+ B

(3.5.5)

(donde A = a ~va ra y B = a ~fa va ) porque en tal caso el operador e A ac sobre los vectores posicion,
es una simple traslacion
de la posicion,

tua solo
sobre los vectores velocidad y es una
mientras que el operador e B actua solo
de velocidades, es decir,
traslacion
e A

~ra
~va

~ra + ~va
~va

e B

~ra
~va

~ra
~va + ~fa

(3.5.6)

Integrar el movimiento es no trivial porque


e (A+B) 6= e A e B
aproximada es
Una forma conocida de encontrar una solucion

e (A+B)+O( ) = e 2 B e A e 2 B
3

Universidad de Chile

(3.5.7)

Escuela de Ingeniera y Ciencias


3.5. ALGORITMOS SIMPLECTICOS

Ecuaciones Difrenreciales Ordinarias

3.5.2.

del algoritmo O( 3)
Construccion

se muestra en detalle como actua


A continuacion
el operador compuesto
(3.5.7). El operador a la extrema derecha actua sobre (rn , vn ):



 
 

rn
B
rn
rn
rn
2
=e
=
=
vn+ 1
vn
vn + 2 f (rn )
vn + 2 fn
2
El siguiente operador actua sobre este resultado
! 
 




rn + vn+ 1
rn
rn+1
rn + vn + 2 fn
A
2
= e
=
=
vn+ 1
vn+ 1
vn+ 1
vn + 2 fn
2
2
2
!
2
rn + vn + 2 fn
=
2
vn + 2 fn
Y finalmente


rn+1
vn+1

=e

rn+1
vn+ 1
2

rn + vn + 2 fn
vn + 2 ( fn + fn+1 )
2

Es directo comprobar que este ultimo

resultado coincide con (??).

3.5.3.

El jacobiano asociado

Por simplicidad se calcula el jacobiano asociado al algoritmo unidimencional

2
fn
2

xn+1

= rn + vn +

vn+1

= vn + ( fn + fn+1 )
2

(3.5.8)

Se comprueba que

xn+1
xn
xn+1
vn
vn+1
xn
vn+1
vn

1+

2 fn
2 xn

fn fn+1 xn+1
=
+
xn xn+1 xn
fn+1 xn+1
= 1+
2 xn+1 vn

Se comprueba trivialmente que


J=

de 14 de julio de 2009
version

xn+1 vn+1 xn+1 vn+1

=1
xn vn
vn xn

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

51

3.5.4. Leapfrog
El problema se plantea como
vn+ 1
2

= vn 1 + h an

xn+1

= xn + h vn+ 1

(3.5.9)
2

y se le resta otra replica

Si se toma la segunda ecuacion


de ella en la que
se ha reemplazado n n 1 se obtiene (3.4.2) lo que demuestra que leapfrog
se refiere.
es O(h4 ) en lo que a la posicion

Este metodo
es ampliamente usado por su reconocida confiabilidad.

alto orden
3.5.5. Algoritmos simplecticos
de mas

alto
Un teorema nos dice como construir algoritmos simplecticos
de mas
orden. Una familia de ellos toman la forma
e(A+B) +O(

n+1 )

= ea j A eb j B ,

aqu se define n

(3.5.10)

j=1

Esta forma general es muy importante porque es trivial demostrar que una
de posicion
sin trasladar las velocidades o vice versa es una transtraslacion
r ,~v )
con Jacobiano unitario: det (~(~
formacion
r,~v ) = 1. Esta propiedad es necesaria
y suficiente para que se conserve el volumen del espacio de fase, que es una

propiedad basica
de las evoluciones hamiltoneanas.
Los coeficientes {a j , b j } se determinan exigiendo dos condiciones: que n
sea maximal (es decir, minimizando el error por truncamiento) y que haya in temporal. La primera exigencia se traduce en muchas
variancia a la inversion
condiciones dependiendo del valor de N. De todas esas condiciones la que
siempre se debe cumplir es

aj = 1,

bj = 1

Para ver como


exigir invariancia temporal se debe recordar primero que
etA1 etA2 . . . etAK

1

= etAK . . . etA2 etA1

(3.5.11)

Cuando se expande (3.5.10) toma una forma como (3.5.11). Si se resume


temporal quiere decir que
(3.5.11) como U 1 (t) = V (t), simetra a la inversion
V (t) = U(t), lo que hace necesario que A1 = AK , A2 = AK1 etc.
El algoritmo (3.5.7) que se ha analizado corresponde a (N = 2, n = 2, a1 =
0, a2 = 1, b1 = b2 = 21 ). Un caso superior [encontrado por Forest y Ruth, Physica
Universidad de Chile

Escuela de Ingeniera y Ciencias

FINAL
3.6. RECOMENDACION

Ecuaciones Difrenreciales Ordinarias

D, 43, 105 (1990)]: (N = 4, n = 4, a1 = 0, a2 = a4 = , a3 = 1 2 , b1 = b4 = 2 , b2 =


b3 = 12 ) y = (2 21/3)1 .

sobre esto puede verse en el artculo de Omeyan, Mryglod


Muchsimo mas
y Folk en Phys. Rev. E 66, 026701 (2002) y en referencias que ah se citan.

3.6.

final
Recomendacion

Si f se puede evaluar rapidamente


conviene usar RK4.
debe usarse RK4.
Si se necesita ir adaptando el paso tambien
de Newton conservativa se debe usar alguno de los
Si es una ecuacion

algoritmos simplecticos.

Si f es muy lento de evaluar conviene usar un metodo


predictor corrector.

3.7.

Problemas

de un oscilador armonico

1. Considere la ecuacion
forzado
x + 2 x = A sin (kx t)

(3.7.1)

de una partcula cargada moviendose

Ella proviene de la ecuacion


en

un campo magnetico
uniforme a lo largo del eje Z al que se superpone

una electrostatica
plana que se propaga a lo largo del eje X. Ver Physcis
es
Today de noviembre 1988, p27. Esencialmente la misma ecuacion
en Physics Today, marzo 1987, p9.
mencionada tambien
de la ecuacion
de van der Pol
2. Integrar la evolucion
x = (1 x2) x x

(3.7.2)

un termino

Representa a un oscilador armonico


mas
que podra repre
sentar un freno viscoso, pero para |x| < 1 ese termino
acelera en lugar
de frenar.
del oscilador de Duffing
3. Integrar la evolucion
x = x x3 a x + b cos t

(3.7.3)

4. Se trata de calcular, usando RK4, el comportamiento de un pendulo


amortiguado por un roce viscoso y forzado. Este sistema consiste en
una vara ideal rgida de largo L, de masa despreciable, en cuyo extremo hay una masa m. El punto de apoyo O no esta fijo sino que oscila
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

53

verticalmente con amplitud A y frecuencia . Se puede demostrar que la


para el angulo

ecuacion
es

+ + 02 sin =

(2 )2 A
cos(2 t)
L

donde 02 = Lg , g = 9,81 y L = 1m.


a) Tome A = 0,07m, = 0,1seg1 , (0) = 10o y (0) = 0 y estudie la

de la frecuencia
amplitud angular asintotica
(t ) como funcion
en el rango: 0,9 1,1 con = 0,001. (Amplitud angular es el

valor maximo
que toma (t)).
b) Tome A = 0,3m, = 0,4seg1 , (0) = 0 y = 3seg1 . Obtenga la evo de tanto cuando (0) esta alrededor de 10o como cuando
lucion
esta alrededor de 170o.

5. Modifique el algoritmo de Verlet original para el caso en que la ecuacion


de movimiento bidimensional pueda tener una fuerza de roce viscoso

lineal, ~r = ~a(~r) c~v. Con ese nuevo algoritmo integre numericamente


la

orbita
en el caso
~a = k1~r k2 r2~r
(3.7.4)
y tome k1 = 1, k2 = 0,05 y c = 0,1. Use condiciones iniciales (x = 4,0, y =

0,0), (vx = 0,0, vy = 1,0) y dibuje la orbita


durante tiempo suficiente para
que corte al eje X ocho veces.

6. Estudie el movimiento de un pendulo


plano, que en lugar de hilo tiene

un resorte de constante elastica


k y largo natural R. La masa del punto
material es m = 1. Use coordenadas cartesianas para integrar usando el
algoritmo de Verlet. Las ecuaciones son
x =
y =

(r R) x
r
(r R) y
k
g
r

Use: k = 5, R = 4, g = 1, tome condiciones iniciales: (x = 0, y = R


del punto
g/k, vx = 0,1, vy = 0) e integre hasta t = 20. Calcule la evolucion
material con RK4 y con Verlet usando el mismo dt = . Escoja este incremento de modo que ambos algoritmos den soluciones parecidas pero

distinguibles (al menos en la parte final). Para hacer esta comparacion

dibuje x(t), y(t) y y(x). Compruebe que usando un dt varias veces mas
Cual de
chico ambos algoritmos dan esencialmente la misma solucion.
cerca de la solucion
mas
prelas dos soluciones originales estaba mas
cisa?
Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

3.7. PROBLEMAS

7. Integre la ecuacion
= ~r
~r(t)
r3
directamente en coordenadas cartesianas (x(t), y(t)) usando como condiciones iniciales:
~r (0) = 2
~v (0) = 0,1 j
alla de completar una vuelta
En todos los casos integre hasta poco mas

y dibujando la orbita
en el plano (x, y) usando N 5 000 aun cuando el
resultado sea insatisfactorio.
Convierta las ecuaciones a un sistema de primer orden e integre usando
RK4.
de una cadena uni8. Para obtener el algoritmo para integrar la evolucion
dimensional de N osciladores amortiguados usando Verlet se comienza
con las ecuaciones de movimiento del sistema conservativo. El lagrangeano del sistema (naturalmente sin amortiguar) es
N

L=

N
m q2a
k

2 2 (qa+1 qa)2
a=0
a=1

(3.7.5)

Aqu los qa son las desviaciones del punto de equilibrio de cada oscilador.
de movimiento generica

La ecuacion
es m qa = k (qa+1 + qa1 2qa) de
la ecuacion
queda m qa = k (qa+1 + qa1 2qa)
ah que si se agrega amortiguacion
c qa o equivalentemente
qa = 2 (qa+1 + qa1 2qa) qa

(3.7.6)

Al discretizar usando el algoritmo de Verlet se obtiene


n
n1
qn+1
a 2qa +qa
2

= 2 qna+1 + qna1 2qna

n1
qn+1
a qa
2

entre las partcuEl problema consiste en tratar dos medios: la interaccion

las de la 0 a la A esta caracterizada por un 1 y de la A + 1 hasta la ultima


por un 2 (pero se usara el mismo ). La partcula A es la frontera entre
diferente.
ambos medios y es la que satisface una ecuacion
Las partculas de la 1 a la A 1 interactuan igual que en el caso anterior.
Lo mismo con las partculas de la A + 1 en adelante.
qa<A
qa>A

= 12 (qa+1 + qa1 2qa) qa


= 22 (qa+1 + qa1 2qa) qa

(3.7.7)

y debe ser discretizada tomando esto encuenta. La partcula A que hace


de frontera, en cambio, satisface
qA = 22 qA+1 + 12 qA1 (12 + 22 )qA qA
de 14 de julio de 2009
version

(3.7.8)

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

55

semejamte al ya usado.
y usted debe discretizarla siguiendo un patron
Considere a = 0, 1, .,500, es decir, 501 puntos, donde A = 250, 12 = 2,
22 = 1 y = 0,008. El punto a = 0 satisface q0 (t) = sin t tan solo si t 2 ,
de eso permanece cero para siempre. Tome = 0,1. El punto
despues
a = 500 esta siempre quieto. De modo que lo que se debe evolucionar
inicial es qa = 0, qa = 0.
son las partculas a = 1, 2, . . . , 499. La condicion

Haga seis graficos


qa (t) versus a para un t fijo (cada uno de los cuales re
presenta instantaneas
del sistema) separadas por t = 120seg. Es decir,
clael sistema en t = 120, t = 240 .. hasta t = 720. Para que quede mas
ro lo que representa cada figura, es mejor que dibuje lo dicho con lnea

debil
o de puntos el estado del sistema unos 4
solida
y con lnea mas

segundos antes, de esa manera se vera el sentido de la evolucion.

Universidad de Chile

Escuela de Ingeniera y Ciencias

Condicones de borde y autovalores

de 14 de julio de 2009
version

3.7. PROBLEMAS

Facultad de Ciencias Fsicas y Matematicas

Captulo 4

Problemas de condiciones
de borde y problemas de
autovalores
4.1.

Introduccion

En este captulo se aprendera a resolver ecuaciones lineales de la forma


d2y
+ k2 (x) y = S(x)
dx2

(4.1.1)

real. Cuando k2
donde S(x) es un termino
inhomogeneo
y k2 es una funcion
de la ecuacion
homogenea

es positivo la solucion
(esto es, con S = 0) son
oscilantes con numero

local de onda k, mientras que cuando k2 es negativo la


crece o decae exponencialmente con una tasa local k2 .
solucion

Por ejemplo, si se busca el potencial electrostatico


V generado por una
de Poisson 2V =
de carga (~r ) se debe plantear la ecuacion
distribucion

4 que, si hay simetra esferica,


puede simplificarse a


1 d 2 dV
(4.1.2)
r
= 4
r2 dr
dr
estandar

y si se hace la sustitucion
V (r) = (r)/r se llega a
d 2
= 4 r
dr2

(4.1.3)

que es de la forma (4.1.1) con k2 = 0 y S = 4 r . Similarmente, el problema


de Schrodinger

radial asociado a la ecuacion


es


( + 1)h2
d 2R
2m
2
2
E

+
k
(r)
R
=
0
,
k
(r)
=

V
(r)
dr2
2m r2
h 2
57

Condicones de borde y autovalores

4.2. EL ALGORITMO DE NUMEROV

que tiene la forma (4.1.1) con S = 0.

Ambos ejemplos podran ser resueltos con metodos


ya vistos excepto que
hay situaciones que complican tal metodologa. En estos problemas es tpico
que las condiciones de borde deban imponerse en puntos diferentes y, en el
tipo Schrodinger,

caso de una ecuacion


hay un problema de autovalores que
resolver.

4.2.

El algoritmo de Numerov

Expandiendo y(x h) hasta O(h6 ) se obtiene




h2 IV 2

yn+1 2yn + yn1 = yn + yn h + O(h6 )


12

(4.2.1)

Por otro lado, tomando la segunda derivada de (4.1.1) resulta

yIV
n

=
=


d2  2
k y + S n
2
dx
(k2 y)n+1 2(k2y)n + (k2 y)n1

h2
Sn+1 2Sn + Sn1
+
+ O(h2 )
h2

(4.2.2)

para yIV
para la segunda derivada que da la
Esta expresion
n y la expresion
original, (4.1.1) se sustituyen en (4.2.1) y se reordena, obteniendose

ecuacion
basica

la expresion
para el algoritmo de Numerov:






h2 2
5h2 2
h2 2
1 + kn+1
yn+1 2 1
yn1
kn yn + 1 + kn1
12
12
12
=

h2
(Sn+1 + 10Sn + Sn1) + O(h6)
12

(4.2.3)

se puede despejar ya sea yn+1 o yn1 para tener una


A partir de esta expresion
de recurrencia que resuelve hacia adelante o hacia atras
la ecuacion

relacion

las funciones k2 y S
con un error O(h6 ). Notese
que en cada paso de iteracion
son llamadas una sola vez.
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

4.3.

Metodos
Computacionales en Fsica

59

Problemas de condiciones de borde

directa de un problema de condiciones de


4.3.1. Integracion
borde

Primer ejemplo: Se vera como


resolver el caso especial de (4.1.3) en que la
densidad de carga tiene una forma exponencial,
d 2
r
= er
dr2
2

(4.3.1)
R

Esto da = 81 er que implica una carga total Q = d 3 r = r2 dr d cos d =


1. Puesto que (r) es regular en el origen entonces (0) = 0. Y por lo que se

sabe de electrostatica
la forma asintotica
(r ) es V Q/r = 1/r y por tanto
= rV debe tender a 1 en infinito, () = 1.
Este problema se puede intentar resolver en la forma

n+1 = 2n n1 +

h2
(Sn+1 + 10Sn + Sn1)
12

(4.3.2)

donde S = 2r er . Para proseguir se escoge un rmax suficientemente grande


en ese valor tiene un valor asintotico

para considerar que ya la solucion


muy
cercano a la unidad.
Para integrar se da inicialmente un valor arbitrario a 1 = (h). El valor en
rmax va a depender del valor arbitrario dado a 1 . Si se integra desde infinito
hacia la izquierda partiendo del valor = 1 no se obtendra cero en r = 0.
La rutina que usa (4.3.2) comienza con valores conocidos en un punto de
la izquierda y otro central (y0 y y1 ) para calcular los valores a la derecha. El
rango 0 r rmax es dividido en N intervalos de largo h. La rutina toma como
datos iniciales conocidos los valores Sizq = S(r = 0) y Scen = S(r = h) y luego
entra en un ciclo
for(k=2;k<=N;k++)
{ r
= k*h;
Sder = S(r);
F[k] = 2*F[k-1] - F[k-2] + c0*(Sder + 10*Scen + Sizq);
Sizq = Scen;
Scen = Sder;
}
de borde se hace ineviAl integrar tomando en cuenta una sola condicion

En el
table incorporar caractersticas de la solucion general de la ecuacion.
homogenea

caso particular que se esta viendo la ecuacion


tiene como solu general h = a + b r lo que implica que la solucion
general de la ecuacion
completa, de la forma gen = p + h crece linealmente con r. El algoritmo
cion
Universidad de Chile

Escuela de Ingeniera y Ciencias

Condicones de borde y autovalores

4.3. PROBLEMAS DE CONDICIONES DE BORDE

particular p que asintoticamente

(4.3.2) arroja, entonces, una solucion


crece
() = 1.
linealmente con r, lo que no es trivial compatibilizar con la condicion
buscada consiste en tomar un
Una forma algo brutal de obtener la solucion
cierto valor rmax como si ya fuese infinito y definir

(r) = p (r) +

m p(rmax )
r
rmax

(4.3.3)

donde m es el valor que deseamos imponer que tenga en r = rmax , ya que

as es automatico
que (0) = 0 y que (rmax ) = m . En resumen, se integra im numerica,

poniendo tan solo p (0) = 0 y una vez que se tiene esta solucion
que
llamamos p , se calcula usando (4.3.3). Los valores que toma p dependen
del valor arbitrario inicialmente dado a (h), pero ese efecto es borrado al usar
tiene sentido tan solo porque la
(4.3.3). La forma lineal de reparar la solucion

solucion general de la ecuacion homogenea en este ejemplo es lineal.

en general, para integrar cualquier ecuacion


de la forma (4.1.1), con
Mas
S 6= 0, dadas las condiciones y(a) = ya y y(b) = yb se puede comenzar desde

y que satisface la ecuacion


y
x = a hacia la derecha, obteniendose
una funcion
de borde en x = a. Por otro lado se usa una solucion
de la ecuacion

la condicion

homogenea,
yh (x) que en x = a satisfaga yh (a) = 0. Con y e yh se construye la
y(x) buscada utilizando la expresion

funcion
y(x) = y(x)
+

yb y(b)

yh (x)
yh (b)

(4.3.4)

comprobar que en efecto esta funcion


y(x) satisface ambas condicioEs facil
fue construida como combinacion
lineal de una solunes de borde. Ademas
particular y de la ecuacion
inhomogenea

de la ecuacion

cion
y una solucion

de la ecuacion
lineal original.
homogenea,
lo que garantiza que y es solucion
En los casos en que b = se debe escoger un xmax . En tales casos es

delicado escoger el valor que debe colocarse en lugar de yb en la expresion


sano es estudiar el comportamiento asintotico

anterior. Lo mas
analtico de
descrito por una funcion
yasint e imponer que y(xmax ) = yasint (xmax ).
la solucion,
Por ejemplo, resolviendo (4.3.1), en lugar de tomar m = 1 en (4.3.3) se puede

primero ver que la forma asintotica


debe ser de la forma 1 + x ex y consistencia en x requiere que = 12 , entonces es conveniente usar m =
xmax .
1 xmax
2 e

Al integrar hacia la derecha desde x = a se debe dar un valor arbitrario a


y(a + h). Debe ponerse cuidado con el valor que se escoja para evitar que y
pueda tomar valores muy grandes y en general debiera ser y(a) + O(h). De

otro modo, los dos terminos


en (4.3.4) seran muy grandes de signo opuesto y

la solucion y(x) resultara poco confiable.


conveniente integrar de derecha a
- En algunos problemas suele ser mas
izquierda.
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

61

homogenea

- Si las soluciones de la ecuacion


son muy dispares, este metodo puede no ser muy preciso.

de Green
4.3.2. Uso de funcion
Este es un caso que hace uso marginal del algoritmo de Numerov, pero
se intercala por ser otra forma de atacar algunos problemas de condiciones
homogenea

de borde. Cuando las soluciones de la ecuacion


tienen comporta
mientos muy diferentes los metodos
directos pueden dar resultados pobres.
general
Consideremos nuevamente la ecuacion
y + k2 (x) y = S(x)
formal de este procon condiciones de borde y(0) = 0 y y() = 0. La solucion
blema se puede escribir
y(x) =

Z
0

G(x, x ) S(x ) dx

(4.3.5)

de Green G satisface G(0, x ) = 0, G(, x ) = 0 y


donde la funcion

 2
d
2
+ k (x) G(x, x ) = (x x )
dx2

(4.3.6)

se ve que si x 6= x entonces G satisface la ecuacion

De esta ultima

expresion

homogenea.
Ademas


 
dG
dG

=1
(4.3.7)
dx x=x +
dx x=x

homogenea

Para usar este metodo


se integran numericamente
la ecuacion

dos veces: a) desde x = 0 hacia la derecha obteniendose una solucion y (x)

que es nula en el origen y b) de derecha hacia la izquierda obteniendose


una

solucion y+ (x) que es nula en x . Estas dos integraciones numericas


de
homogenea

la ecuacion
se pueden hacer usando el algoritmo de Numerov.

de borde.
Notese
que en ambas se usa una sola condicion
Si se define W = y (x) y+ (x) y+ (x) y (x) es directo demostrar, usando que
homogenea,

y e y+ son soluciones de la ecuacion


que W = 0 es decir, que W
es una constante. Seguidamente se normaliza estas dos soluciones de modo
que W = 1, es decir,
y (x) y+ (x) y+ (x) y (x) = 1
(4.3.8)
Habiendo obtenido estas dos soluciones de la ecuaciones ya normalizadas,
se define G(x, x ) de tal modo que
G(x < x )
G(x > x )
Universidad de Chile

= y (x) y+ (x )
= y+ (x) y (x )

(4.3.9)

Escuela de Ingeniera y Ciencias

Condicones de borde y autovalores

4.4. PROBLEMAS DE AUTOVALORES

En forma obvia G satisface las condiciones de borde en el origen y en infinito.


se ve que G satisface la ecuacion
homogenea

Si x 6= x tambien
porque los
y la satisfacen. Finalmente, gracias a (4.3.8), se puede comprobar que esta
G satisface (4.3.7). En resumen, la funcion
G definida en (4.3.9), es la
funcion
de Green buscada y por tanto
funcion
y(x) = y+ (x)

Z x
0

y (x ) S(x ) dx + y (x)

Z
x

y+ (x ) S(x ) dx

(4.3.10)

y(x) haciendo dos integrales


Es decir, en este utimo

paso se obtiene la solucion


por cada punto x.

Debo hacer lo anterior en detalle para que no me quepa


y validacion.

duda alguna sobre su fundamentacion

4.4.

Problemas de autovalores

Estos son problemas de ecuaciones lineales homogeneas


de segundo orden con condiciones de borde en puntos diferentes.

4.4.1.

Problemas sencillos de autovalores

Una cuerda: Considerese


el problema

= k2
(0) = (1) = 0

(4.4.1)

de la funcion
es arbitrario y los
En este tipo de problemas la normalizacion
valores posibles de k2 deben ser determinados.
sencillo porque k2 es consEn este caso el algoritmo de Numerov es mas
tante,






(hk)2
(hk)2
5(hk)2
n+1 2 1
n + 1 +
n1 = 0
1+
(4.4.2)
12
12
12
que se puede reescribir como

n+1 = n1 +

24 10 (hk)2
n
12 + (hk)2

(4.4.3)

Usando esta ultima

forma se integra desde x = 0 hacia la derecha obte


niendose
en el extremo derecho un valor que depende del valor que se ha
dado a k,
F(k) = N
y se utiliza, por ejemplo, una rutina secante para buscar los ceros de F(k).
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

63

de Schrodinger

estados
4.4.2. Ecuacion
en una dimension:
ligados
de Schrodinger

El problema tpico de autovalores con la ecuacion


es
h 2
+ V (x) = E
(4.4.4)
2m
entonces tiene la forma
Se usa unidades tales que 2m = 1 y h = 1. La ecuacion
+ k2 = 0, esto es, k2 E V (x).

Para el caso de estados ligados existe un rango finito (xizq , xder ) fuera del
de interes
decae exponencialmente.
cual E < V (x), es decir k2 < 0 y la solucion
tambien
admite una solucion
exponencialPero fuera de (xizq , xder ) la ecuacion
mente creciente.

Los lmites (xizq , xder ) de esta zona son los puntos de retorno y el algoritmo
general crece exponencialmente fuera
debe abordar el hecho que la solucion
de las fronteras definidas por los puntos de retorno: (xizq , xder ). Un problema
de este tipo no puede ser simplemente integrado de izquierda a derecha o
vice versa porque inevitablemente los errores de redondeo haran aparecer
exponencialmente creciente y ninguna rutina de reparacion
sera
la solucion
confiable.
Para evitar esto se integra desde algun
punto xmin a la izquierda de xizq
alla de algun

hasta poco mas


punto intermedio de empalme xe . A esta funcion
se integra desde un punto xmax a la derecha de xder
se la llama I . Ademas
a la izquierda del mismo punto de empalme. Para hacer estas
hasta poco mas
integraciones se escoge N y h = N1 (xmax xmin), xn = xmin + n h de tal modo que
xe = xmin + e h. Supondremos que se integra D desde la extrema derecha hasta
n = e 1 y I desde la extrema izquierda hasta e + 1.
Para integrar desde los extremos lo
sencillo es suponer que I (xmin ) =
mas
0 y que D (xmax ) = 0, pero esto puede ser insatisfactorio. En general es
apropiado determinar los compormas

tamientos asintoticos
de a ambos lados y hacer uso de ellos.
x
izq

x
der

Se debe exigir que tanto como sean continuas en xe .


se consigue renormalizando una de las funciones.
La primera condicion
Por ejemplo:


D [e]
I [n]
I [n]
(4.4.5)
I [e]
n=0,1,..,e+1

a
Esto garantiza que en el punto de empalme n = e haya un valor [e] comun
ambas funciones.
Universidad de Chile

Escuela de Ingeniera y Ciencias

Condicones de borde y autovalores

4.4. PROBLEMAS DE AUTOVALORES

se obtiene definiendo
La segunda condicion
F(E) =

D [e + 1] D[e 1] I [e + 1] I [e 1]

h [e]
h [e]

(4.4.6)

y con una rutina secante se puede buscar los ceros de F(E). Ellos son los
autovalores del problema de estados ligados.
anterior de F(E) corresponde a una definicion
particular de
La definicion
mas
precisa para la
la derivada en xe . Si se escoge utilizar una expresion
puntos a la derecha de n = e y
derivada es necesario integrar I por mas
lo propio para D hacia la izquierda.

En resumen:
1. Se escoge un valor semilla para E y un valor dE
2. Se calcula xizq y xder . Con ellos se escogen (xmin , xmax ), se escoge el valor
entre el ndice disde N y se calcula h = (xmax xmin )/N. La asociacion
el punto del discreto que
creto n y x es x = xmin + n h. Se escoge tambien
se usara para el empalme, n = e, el que debiera estar entre los puntos de
retorno o coincidir con uno de ellos.
3. Se integra I desde n = 0 hasta n = e + 1; se integra D desde n = N
hasta e 1.

4. Se renormaliza I utilizando (4.4.5) con lo que se logra que ellas compartan un valor comun
[e].

5. Se calcula F(E)
6. Se define nuevo E E + dE y se repite lo anterior hasta que F(E) cambie
de signo.
7. Se ingresa a la rutina secante que terminara por encontrar un valor de
E tal que F(E) sea nulo, es decir, un valor de E para el cual la derivada
en xe sea continua.

4.4.3.

de Schrodinger

Ecuacion
radial

de Schrodinger

En problemas con potencial central la ecuacion


es reduci
para la parte radial, R(r) y el potencial
da en forma estandar
a una ecuacion
efectivo contiene la barrera centrfuga tal como ya fue escrito al comienzo de
este captulo,


( + 1)h2
d2R
2m
2
2
E

+
k
(r)
R
=
0
,
k
(r)
=

V
(r)
(4.4.7)
dr2
2m r2
h 2
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

80

65

"morse1.dat" u 1:(40*$2)

"" u 1:3
A diferencia del caso unidimen60
"" u 1:4
radial se anusional, aca la funcion
0
40
la en el origen salvo que el potencial
rapido

20
diverga mas
que r2 . Tal como antes se busca un punto de em0
palme, de modo que se integra des-20
alla del
de r = 0 hasta un punto mas
de empalme y, por otro lado se inte-40
0
1
2
3
4
5
6
gra hacia la izquierda desde un punto
de onda del primer estado excitado de
Funcion
lejano que hace el papel de infinito.
El proceso de hacer el empalme es un potencial de Morse.
igual que antes: se exige continuidad
de R y de R en el punto de empalme, lo que determina el espectro de autovalores y autofunciones.

Si el potencial es muy singular como es el caso con el potencial de Lennard


Jones 6-12 comunmente

usado en simulaciones moleculares,


VLJ

 
 6 
12
2
=E
r
r

lo usual es comenzar integrando desde un rmin > 0 y en ese punto se comienza


analtica de R en la vecindad del origen. En esa vecindad
con la aproximacion

se puede despreciar de k2 (r) todos sus terminos


excepto aquel con r12 . Es

util
saber que la ecuacion
R =

a2
R
r12

muy cerca del origen tiene solucion


h a
i
R = exp r5
5
Es usual tomar 0,5 rmin 0,8 .

en general, si el potencial en el origen diverge como


Mas
verse que el comportamiento de R en el origen debe ser


R exp
donde =

n2
2

1
rn

y n > 2 puede

2a
n2 .

puede no necesitar a un punto de empalme integrandose

La integracion
en

una sola direccion.


Universidad de Chile

Escuela de Ingeniera y Ciencias

Condicones de borde y autovalores

4.5.

4.5. PROBLEMAS

Problemas

1. Obtenga numericamente
las funciones propias normalizadas y los valores propios asociados al potencial
V (x) =

x4 16
1 + 4 x6

en x correspondientes a los primeros cuatro autovalores.


de
2. Obtenga los tres primeros autovalores del problema de la ecuacion

Schrodinger estacionaria adimensionalizada




d2
2 +V = E
dx
x

con 0 x y con V = 5 ex .

de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Captulo 5

Integrales Monte Carlo y el


algoritmo de Metropolis
persistente en este captulo es como

La pregunta mas
generar una secuencia de numeros

que tengan una


W conocida.
distribucion

5.1.

Numeros

aleatorios r U(0, 1)

Desde los primeros tiempos en que se abordo problemas numericos


con
primitivos computadares se vio la importancia de los numeros
los mas

aleato
rios. Lo que interesa en metodos
computacionales es generar una secuencia
de numeros

(enteros o reales), {x0 , x1 , x2 , . . .} que pueda ser considerada aleatoria. El concepto de aleatoriedad, sin embargo, es sutil y en muchas de sus
aleatorios realmente es la secuenaplicaciones interesa poder decidir cuan
cia que se construye. No existen medidores universales de aleatoriedad sino
ciertos criterios reconocidos como condiciones necesarias que las secuencias
deben satisfacer. Existe una amplia literatura sobre el tema. Para fines introductorios basta con estudiar los criterios que se encuentran en Numerical Recipies. En lo que sigue no nos ocuparemos de estos problemas y aceptaremos
el generador de numeros

aleatorios que nos da el compilador que estemos


usando.
Se supondra que se cuenta con un generador de numeros

aleatorios r
uniformemente distribuidos en el intervalo (0, 1). Para no tener que usar la
numeros
expresion

r uniformemente distribuidos en el intervalo (a, b) se dira


r U(a, b)
67

(5.1.1)

Condicones de borde y autovalores

5.2. DENSIDADES DE PROBABILIDAD

Si se tiene un generador de r U(0, 1) se puede definir una variable


r = (b a) r + a

(5.1.2)

la que satisface r U(a, b). Una sencilla rutina r U(0, 1) para usar con el
lenguaje C es drand48().

A un generador de numeros

aleatorios se le puede dar usos desde los mas


sencillos hasta algunos muy elaborados.

5.2.
5.2.1.

Densidades de probabilidad
y el promedio discreto
Distribucion

Las secuencias {x j } de numeros

aleatorios reales usuales son las que


uniformemente distribuidas en el intervalo [0, 1], pero es de mucho inestan
saber generar secuencias que estan
distribuidas de acuerdo a una disteres
escogida W (x) en (a, b).
tribucion
no
Se define una densidad de probabilidad W (x) en (a, b) con una funcion
negativa en ese intervalo que esta normalizada,
Z b

W (x) dx = 1

(5.2.1)

h(x) con x (a, b),


Con ella se define el promedio de cualquier funcion
hhiW =
La variancia h2 de h es

Z b

W (x) h(x) dx

(5.2.2)


2
h2 = h2 W hhiW

(5.2.3)

estandar

de h, es una medida de cuanto


se
y a h , que se llama la desviacion
desva h de su promedio.

Para calcular numericamente


(5.2.2) se debe utilizar una secuencia de
W (x) y utilizar
numeros

{xi }i=1..N en el intervalo (a, b) que tengan distribucion


la forma aproximada
hhiW

1
N

h(x j )

con

j=1

xj W

(5.2.4)

Pero, como
generar la secuencia x j W ?

5.2.2.

Distribuciones relacionadas

de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

Supongamos que se tiene una variable aleatoria x en el intervalo (a, b) gene W (x) y ademas
sea
rada con distribucion
monotona:

y = g(x) una relacion


y = g(x) ,

dy = g (x) dx

g(b)
y

(5.2.5)

Es decir, se asocia a cada x j de una se W un valor y j =


cuencia con distribucion
g(x j ) en el intervalo (g(a), g(b)). Que dis se debe asociar a los y j ?
tribucion

69

g(x)

g(a)
x
a

Puesto que la probabilidad asociada a un intervalo x en torno al punto x


es P = W (x) x, la misma probabilidad tiene asociado el correspondiente intervalo y en torno a y = g(x), siempre que y = dg
dx x. Es decir, la probabilidad
e (y) y = W
e (y) g (x) x = W (x) x.De la ultima
asociada a este intervalo y es W

igualdad se despende que los y j se distribuyen segun



W (x)
e
W (y) =
g (x) x=g1 (y)

(5.2.6)

e (y) = [W (x)/g (x)] 1 en el intervalo


W
La variable y tiene la distribucion
x=g (y)
W (x) en el
[g(a), g(b)] si y solo si la variable x = g1 (y) tiene distribucion
intervalo (a, b).
e tiene la normalizacion

correcta. En efecto, si
Es automatico
que W
1 se obtiene
Z g(b)
g(a)

Rb
a

W dx =

e (y) dy = 1
W

de secuencia W (x) a partir de U (0, 1)


5.2.3. Obtencion
En particular, si y U(0, 1), es decir, g(a) = 0, g(b) = 1 y los valores de y
e (y) = 1 y los
uniforme, U(0, 1), entonces W
son generados por una distribucion
1
distribuidos de acuerdo a
x j = g (y j ) estan
W (x) = g (x)

(5.2.7)

implica que si se
en el intervalo [a = g1 (0), b = g1 (1)]. Esta ultima

relacion
g(x) definida por
conoce W (x), la funcion
g(x) =

Z x
a

Universidad de Chile

W (x ) dx

(5.2.8)

Escuela de Ingeniera y Ciencias

Condicones de borde y autovalores

5.2. DENSIDADES DE PROBABILIDAD

permite definir un cambio de variable


y = g(x) tal que y [0, 1].

Si y U(0, 1) entonces los x =


se distribuyen de acuerdo a
W (x) donde W y g se relacionan por
(5.2.8).

g(b) = 1

g1 (y)

Este metodo
es de uso limitado
porque para poder aplicarlo se requiere tanto poder calcular g(x) =
Rx

a W (x ) dx como poder invertir la fun g, para obtener x j = g1 (y j ).


cion

g(x)

g(a) = 0
a

Por ejemplo, si se escoge la distribucion de velocidades


W (c) =

2 c c2 /T
e
T

c>0

con

esto es, a = 0 y b = , entonces y = g(c) =

Rc
0

y = g(c) = 1 ec

(5.2.9)

W (c ) dc es

/T

o equivalentemente
c = g1 (y) =

T ln(1 y)

Puesto que si y U(0, 1) entonces 1 y U(0, 1) y se puede usar y en


lugar de 1 y,
p
c = T ln y
es

y j U(0, 1), la secuencia c j =


p decir, dada una secuencia de numeros
(5.2.9).
T ln y j tiene la distribucion

5.2.4.

El caso de n variables

descrito puede facilmente

El razonamiento recien
ser generalizado a n variables. Se tiene un n-uplo de variables aleatorias, X = {x1 , . . . , xn } en un domi W (X). Ademas
se tiene una funcion
X Y invertible,
nio VX con distribucion
en el dominio VY = G(VX ). La
Y = G(X), donde las nuevas variables Y estan,
e (Y ) para las variables Y y ambas
G induce una distribucion
W
transformacion
distribuciones se relacionan por


e (Y ) = W (X)
W
J(Y ; X) X=G1 (Y )
donde J(Y ; X) es el Jacobiano J = det [ G(X)/ X]. Esto es as porque

de 14 de julio de 2009
version

e (Y ) dY = W
e (Y ) J(Y ; X) dX = W (X) dX
W

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

71

es, al igual que en la subseccion


anterior, el caso en
De especial interes
uniforme y el dominio VY es el hipercubo unitario,
que los Y tienen distribucion
e (Y ) = 1 en este hipercubo. Dada
es decir 0 ya 1 para todo a. En tal caso W
G(X) se define secuencia de n-uplos X = G1 (Y ) los cuales tienen
una funcion

una distribucion
W (X) = J(Y ; X)
(5.2.10)

Un ejemplo de esto se da a continuacion.

5.2.5. Cuando W (x) es una gaussiana

El metodo
visto en 5.2.3 no se puede aplicar en forma directa cuando se
gaussiana
quiere generar una secuencia {x j } segun
la distribucion
W (x) =

2
1
2
e(xa) /2
2

esta trivialmente relacionada con la distribucion


centrada en el
La distribucion
origen y con variancia unidad:
2
1
W (x) = ex /2
2

(5.2.11)

que tampoco se puede resolver en forma directa porque


ser escrito con funciones elementales.

Rx

W (x

) dx no puede

generar dos (!) distribuciones gausSin embargo, como veremos, es facil


sianas:
1 (x2 +x2 )/2
W (x1 )W (x2 ) =
e 1 2
2
Basta con replantear el problema en coordenadas polares x1 = cos , x2 =
se debe escoger
sin . En lugar de se usa 2 y2 para que 0 y2 1. Ademas
2 +x2 )/2
(x
1
2
y1 = e
, que implica que 0 y1 1. Lo crucial es que se obtiene que el
Jacobiano:
1 (x2 +x2 )/2
e 1 2
(5.2.12)
J(y; x) =
2
que se obtiene para (x1 , x2 )
y, de acuerdo con (5.2.10), esta es la distribucion
si y1 U(0, 1) y y2 U(0, 1).
En resumen, si los valores (y1 , y2 ) son generados uniformente entre 0 y 1,
entonces los valores de (x1 , x2 ) definidos por

x1 = 2 ln y1 cos 2 y2
(5.2.13)

x2 = 2 ln y1 sin 2 y2

resultan ser secuencias asociadas a sendas distribuciones gaussianas (5.2.11)


debido a (5.2.12) y (5.2.10).
Universidad de Chile

Escuela de Ingeniera y Ciencias

MONTE CARLO
5.3. INTEGRACION

Condicones de borde y autovalores

Monte Carlo
Integracion

5.3.
5.3.1.

El problema

Se discutira la forma de calcular


I=

Z b

f (x) dx

utilizando secuencias de numeros

aleatorios.

5.3.2.

Primera forma

Sea {x j } j=1..N una muestra aleatoria de valores de la variable aleatoria x


1
W en (a, b). Si en (5.2.2) se toma W (x) = cte = ba
con distribucion
y h se
R
b
1

denota f (la funcion a promediar), entonces h f i = ba a f (x) dx que, por (5.2.4)


es N1 f j . Multiplicando por (b a) se obtiene que si x esta uniformemente
distribuida en (a, b),

Z b

f (x) dx

v
u
ba
1
ba u
f j N t N
N j=1
|
N

donde los xi U(a, b) y f j = f (x j ).

f j2

j=1

1
N

{z
f

fj

j=1

!2

(5.3.1)

La incertidumbre con que se evalua la integral depende tanto de la des estandar

N de
viacion
intrnseca de f en este intervalo, f , como del tamano

la muestra. Notese
que es necesario cuadruplicar el valor de N para disminuir la incertidumbre a la mitad. Esto contrasta con la regla trapeziodal que

es O(N 2 ). Sin embargo, como se vera en 5.3.3, en el calculo


de integrales

eficiente.
sobre muchas variables, el metodo
Monte Carlo es mas
Monte Carlo es
En resumen, la primera forma de integracion
Z b
a

f (x) dx =

ba
N

f (x j ) + O( N ) ,

j=1

Este metodo
da, por lo general, resul bien pobres, salvo que se
tados mas
N muy granuse muestras de tamano
de o bien f vare poco en el intervalo.
Un punto a favor es que se usa un solo
drand48 y no hay ningun
if.
de 14 de julio de 2009
version

x j U(a, b)

MC1 (5.3.2)

n
= 0;
suma = 0.0;
do { x
= a + (b-a)*drand48();
suma += f(x);
n++;
}while(n<=N}
integral = (b-a)*suma/N;

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

73

Si f = f0 es constante la integral es exactamente (ba) f0 , y el lado derecho


(ba) f
vale N 0 N = (b a) f0 para todo N. La forma MC1 de calcular una integral
ingenua de integrar usando numeros
es la mas

aleatorios dentro de aquellas


Monte Carlo.
que pertenecen a la categora integracion

Por ejemplo el calculo


de

R
0

sin(x) dx:

res = 0.0;
for(n=0; n<N; n++)
{ x
= PI*drand48();
res += sin(x);
if(n%50==1) /* cada 50 pasos escriba el resultado */
{ intgr = PI*res/(1.0*n);
printf(" %10d %12.8f\n",n,intgr);
}
}

es constante el resultado que


Como se acaba de comentar, si la funcion
arroja MC1 es exacto (en particular no depende de N) y si f vara muy poco

este metodo
da valores razonables. Pero en general se requiere hacer uso de
elaboradas de integracion
Monte Carlo, las que usan valores x j
formas mas
W escogida especialmente.
que provienen de una distribucion
del metodo

descrito es que es aplicable tan


La otra obvia limitacion
recien
solo si el dominio es acotado. Con dominios infinitos o con integrandos de alto
contraste se procede siguiendo un camino emparentado al que se vio en 2.3

El algoritmo MC1 es generalizable a muchas dimensiones con la siguiente


se define como relaciones entre las vadificultad: si el dominio de integracion
2
2

riables (e.g., x + y < 1 & x y > 0) se debe encontrar una forma economica de generar puntos uniformemente distribuidos sobre ese dominio y na Normalmente la unica
razonable consiste en generar punda mas.

solucion
grande pero sencillo (e.g.,
tos uniformemente distribuidos en un dominio mas
1 x 1 y 1 y 1) y hacer uso tan solo de los puntos que caen dentro

del verdadero dominio de integracion.

adelante tendra interes


saber que la propia formula

Mas
MC1 sugiere que
una forma de calcular hhiW es
hhiW =

ba
N

W (x j ) h(x j )

j=1

con

x j U(a, b)

(5.3.3)

ya que la anterior no es sino MC1 con f = W h. Esta es una primera manera


de resolver el problema que plantea (5.2.4).
Ya se ha comentado que si el integrando vara fuertemente en el dominio
este algoritmo puede dar resultados muy pobres. Una forma
de integracion

sencilla que suele dar buenos resultados sin abandonar lo basico


de MC1,
integrable fe(x) que sea parecida a f (x).
consiste en encontrar una funcion
Universidad de Chile

Escuela de Ingeniera y Ciencias

MONTE CARLO
5.3. INTEGRACION

Condicones de borde y autovalores

se cumple que f (x)


Es decir, se conoce el valor I = ab fe(x) dx y ademas
apropiadamente plana en el dominio, de modo que
f (x) fe(x) es una funcion
MC1 en ella es satisfactoria. En tal caso
Z b
a

5.3.3.

f (x) dx I +

Z b

f (x) dx
| a {z }
con MC1

MC1b

(5.3.4)

Aplicabilidad de los metodos


Monte Carlo

D tomando un total de N
Si se quiere calcular una integral en dimenson
deben ser subdivididos en N 1/D inpuntos, los intervalos en cada dimension
h N 1/D . La integral en cada dimension
arroja un error de
tervalos de tamano

order O(h ) ( = 2 con el metodo


trapezoidal y = 3 con el metodo
Simpson)
y este mismo es el orden del error de la integral sobre todas las dimensiones:
O(h ) = O(N /D ). Si se desea calcular integrales en muchas dimensiones
(por ejemplo, D = 10) el error es bastante significativo salvo que N sea muy
grande.
En cambio una integral Monte Carlo siempre tiene un error O(N 1/2 ) que
conveniente cuando la dimension
es algo mayor que
normalmente resulta mas
4.

5.3.4.

Metodo
explcito
R

de la funcion
en este intervalo
Se desea calcular ab f (x) dx pero la variacion
es muy grande o el intervalo es infinito o ambas cosas a la vez. En tal caso se

w(x)
debe seguir el siguiente metodo
que se basa en escoger una distribucion
tal que h(x) = f (x)/w(x),
=

Z b

f (x) dx

Z b

w(x) h(x) dx

donde w(x) debe satisfacer

w(x) 0

Z b

en

(a, b)
(5.3.5)

w(x) dx = 1

Haciendo el cambio de variable


y = g(x) =

Z x
a

de 14 de julio de 2009
version

w(x ) dx

g(a) = 0 ,

g(b) = 1

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

75

se obtiene que
dy = g (x) dx = w(x) dx

dx =

dy
w(x)

que permite escribir


Z 1

1
e
h(y j )
h g1 (y) dy =
h(y) dy e
N j
0
0
i
h
f (x )
por lo cual
pero e
h(y j ) = h(g1 (y j )) = w(x j )
1

I=

Z 1

1
N

j=1

f (x j )
w(x j )

x j =g

y j U(0, 1)

(y j )

con y j U(0, 1)

x j =g1 (y j )

(5.3.6)

MC2

(5.3.7)

En lugar de usar x U(0, 1) como en MC1, se usa una secuencia sesgada


h = f /w.
x j = g1 (y j ) para sumar valores de la funcion

estandar

Este metodo
es exitoso si la desviacion
de los valores e
h(y j ) =
Lo ideal sera escoger w proporcional a f , de tal
[h(x j )]x j =g1 (y j ) es pequena.
modo que h sea tan solo una constante. Esto en general no es posible si se
desea
satisfacer las condiciones de hacer analticamente la integral g(x) =
Rx
inversa g1 .
w dx y de conocer la funcion
En resumen

Z b

f (x) dx

MC2 explicto


Z 1
f (x)

dy
w(x) x=g1 (y)


f (x j )
1
N
w(x j ) x j =g1 (y j )
j
0

con y j U(0, 1)

e
donde g = 0x w y w se escoje para que la funcion
h sea de poco contraste en
el intervalo [0, 1]
e
h(y) =

f (x)
w(x)

x=g1 (y)

w(a x b) 0 ,

Z b

w(x) dx = 1

(5.3.8)
El error en el caso MC2 continua siendo O( f /N 1/2 ). La diferencia esta en que
estandar

con MC2 se puede lograr una desviacion


mucho menor. Metropolis es muy
de implementar, pero puede dar errores mayores salvo que se tome precauciones especiales como hacer
facil
un cambio de variable. Pero nada de eso se pide aqu.

debe ser entendido aplicable al


Todo lo que se ha dicho en esta seccion
caso multidimensional.
Universidad de Chile

Escuela de Ingeniera y Ciencias

MONTE CARLO
5.3. INTEGRACION

Condicones de borde y autovalores

Ejemplo. Se plantea calcular numericamente


la integral I =

R 2 x2
e
dx
0

que se sabe que vale 1 y se escoge w(x) = 1a ex/a . Con este w se obtiene
que
Z x
1 x /a
e
dx = 1 ex/a
y = g(x) =
0 a
que se puede invertir a
relacion
x = a ln(1 y)
Es decir, si la secuencia y j proviene de U(0, 1) entonces x j = a ln(1 y)
se distribuye de acuerdo a w(x) = 1a ex/a . Pero los y j y los 1 y j tienen la
lo que permite escribir
misma distribucion
2
2a
h(x) = ex +x/a ,

y la integral I en la forma aproximada


I

2a

j=1

2
2a
e
h(y) = y(1+a ln y)

h 2
i
ex +x/a

x j =a ln(y j )

y j U(0, 1)

Un codigo
posible para ejecutar la estrategia anterior, tomando a = 1, es
res = 0.0;
for(n=0; n<N; n++)
{ y
= drand48();
x
= -log(y);
res = res + exp(-x*x + x);
}
final = 2.0*res/(sqrt(PI)*N);

5.3.5.

Estrategia de von Neumann

F(x)

F(x)
Consideremos una funcion
no negativa en el intervalo (a, b) y
sea F0 un valor mayor o igual al mayor valor de F(x) en el intervalo. En
la figura adjunta se ha dibujado la
curva F(x) en una caja de altura F0

y base (b a). El area


de la caja es

(b R a) F0 y el area
bajo la curva es
I = F dx. Si se lanza puntos al azar
uniforme en la cacon distribucion
ja, la probabilidad que caigan
bajo
R
1
la curva F(x) es p = (ba)
F
dx
y,
F0
computacionalemnte p n1 /n donde n es el total de puntos lanzados y n1 son los que cayeron bajo la curva, lo
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

77

que permite concluir que


I=

Z b
a

F(x) dx

n1
(b a) F0
n

(5.3.9)

Para hacer integrales de funciones que cambian de signo se debe integrar se


paradamente cada tramo donde no haya cambio de signo. Este metodo
resulta
muy pobre si F(x) es de alto contraste. En general primero se debe hacer un
cambio de variable.
R

Una rutina que ejecuta el calculo


de F es
n
= 0;
n1
= 0;
do
{ x
= a + (b-a)*drand48();
y
= F0*drand48();
Fx = F(x);
n++;
if(y<Fx) n1++;
}while(n<=N}
integral = (b-a)*n1*F0/N;

Vale la pena probar el metodo


calculando

Se genera un x U(a,b) y un y

U(0,F0 ). Con n se cuenta el total de pun-

tos mientras que n1 cuenta los puntos


que caen bajo la curva F(x). La secuancia que resulta tiene asociada una distriF(x)
W (x) = (ba)
bucion
.
F
0

R
0

sin x dx.

En el metodo
anterior n1 cuenta los puntos (x, y) que satisfacen y F(x). Es
claro que la probabilidad de que un punto (x, y) sea aceptado es proporcional a
F(x). El costo de cada nuevo punto es llamar dos veces a la funcion

la funcion
hay un if. Comparese

drand48(), una vez a F(x) y ademas


con MC1.

Monte Carlo en dimension


D
5.3.6. Integracion
Monte Carlo en dimension
D toma las formas ya vistas. La
La integracion

formula basica es la generalizacion trivial de (5.3.1),


s
Z
h f 2 i h f i2
(5.3.10)
f (~r ) dV = V h f iU(V ) V
N
donde todos los promedios de arriba se refieren a los que se obtiene de
hAi =

1
N

A(~ri )

i=1

~ri U(V )

(5.3.11)

y U(V ) designa un generador de puntos aleatorios y uniformemente distribui La integral se puede calcular usando una
dos en el volumen V de integracion.
directa de MC1, (5.3.2),
extencion
Z

f (~r ) dV =

V
N

f (~ri ) ,

i=1

~ri U(V )

(5.3.12)

Sin embargo el dominio sobre el cual se quiere hacer la integral puede ser
suficientemente complejo para que no valga la pena calcular su volumen. En
Universidad de Chile

Escuela de Ingeniera y Ciencias

Condicones de borde y autovalores

5.4. LA ESTRATEGIA METROPOLIS PARA CALCULAR PROMEDIOS

tal caso se define un volumen sencillo Vs que contiene a V y se genera puntos


los fi que corresponden a
uniformemente distribuidos en Vs y se suma solo
puntos en el interior de V . En tal caso la integral se calcula como
Z

f (~r ) dV =

Vs
N

f (~ri ) ,

~ri U(Vs )

i=1

(5.3.13)

y N son todos los puntos generados dentro de Vs . Si f fuese una constante


f (x) = f0 entonces el resultado anterior sera I = nN1 Vs f0 donde n1 son los puntos que caen dentro de V , pero n1 /N V /Vs y entonces se obtiene I V f0 que
es lo que debe ser.
Suele tener que hacerse cambios de variable (por ejemplo si el dominio es
tiene variancia grande). El cambio que se haga tiene que
infinito o la funcion
ser explcito.

5.3.7.

Monte Carlo en dominios difciles


Integracion

deR una dimension


se suele querer hacer integrales en dominios
En mas
complicados, f (~x ) d~x. Siempre se puede hacer un cambio f = w h donde w
se supondra que se integra directamente f
0. Para no complicar la exposicion
tal que f 0 en el dominio. En tal caso el problema es el de generar puntos
que aqu se plantea ya fue dada en 5.3.5.
equiprobables en . La solucion
Se define un dominio sencillo (pensemos en un hipercubo) que contiene a .
se escoge un valor f0 mayor o igual a todos los valores f (~x ) en el
Ademas
dominio y se procede como sigue
n = 0;
n1 = 0;
do
{
x = aleatorio uniforme en el hipercubo de vol=W0;
y = aleatorio en intervalo (0,f0);
n++;
if(y<f(x)) then n1++;
}while(n<=N)
integral = W0*f0*n1/N

no vare mucho dentro del dominio.


Es bueno siempre que la funcion

5.4.

5.4.1.

La estrategia Metropolis para calcular promedios


El algoritmo de Metropolis

El algoritmo de Metropolis fue concebido originalmente en el contexto de

Mecanica
Estadstica para calcular promedios asociados a sistemas estadsti de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

79

cos de sistemas en equilibrio. Esta estrategia sin embargo es de gran gene


ralidad y primero sera presentada sin hacer uso de los detalles que Mecanica

Estadstica require. Luego se vera como


se aplica, en particular, en Mecanica
Estadstica.
Reducido a su esencia, el algoritmo representa una estrategia para generar
de probabilidad W en
una secuencia X W (X) para cualquier distribucion

un un espacio de puntos X sobre los que se pueda asociar una distribucion


de probabilidad W (X). En un sentido muy poderoso, Metropolis resuelve el

problema planteado en (5.2.4) con un codigo


eficiente y breve. Un promedio,

como senala
(5.2.4), se logra con el simple promedio aritmetico
de los valores
generados.
Primero se va a definir el algoritmo de Metropolis y luego se va a argumentar que tiene las propiedades deseadas.
El algoritmo. Se escoge una semilla X0 y se entra en el ciclo que sigue:
a) Se usa receta para generar, a partir de Xn , un X p (el subndice p es por

prueba). Esta receta debe ser simetrica,


en el sentido que sea igualmente problable generar X p si se proviene de Xn que vice versa.
b) Se usa un criterio para aceptar o rechazar este punto de prueba.
c) Si se acepta entonces Xn+1 = X p y si se rechaza entonces Xn+1 = Xn .
conjunta (b) y (c) toEl algoritmo de Metropolis consiste en definir la accion
mando un r U(0, 1) y aplicar
if

W (X p )
>r
W (Xn )

then Xn+1 = X p

else

Xn+1 = Xn

(5.4.1)

Si Wp > Wn entonces Wp /Wn es mayor que cualquier r y el nuevo X p es acep probable que Xn .
tado. Es decir, X p es aceptado incondicionalmente si es mas
Si, por el contrario, X p es menos probable que Xn solo a veces X p es aceptado.

Se subraya que con este metodo


la secuencia {Xn } tiene puntos repetidos por
cada vez que un X p no es aceptado. Esto debe ser as por razones estadsticas.
es la probabilidad P(x) de que un
Dado un numero

x en el intervalo (0,1), cual


numero

aleatorio r en (0,1) satisfaga x > r? La respuesta es P(x) = x. El algoritmo


de Metropolis hace uso de esto.

Un problema que presentan algoritmos como estos es que X j y X j+1 no


sean independientes. Por la forma como se generan son puntos normalmente
entre ellos. Una
cercanos (en algun
sentido), es decir, hay una correlacion
forma de resolver esto consiste en no utilizar todos los X j generados, sino que
uno de cada de ellos. El valor de depende del
se toma en cuenta solo
problema que se este resolviendo.
Universidad de Chile

Escuela de Ingeniera y Ciencias

Condicones de borde y autovalores

5.4.2.

5.4. LA ESTRATEGIA METROPOLIS PARA CALCULAR PROMEDIOS

Por que funciona

Supongamos que se han generado N secuencias de largo n a partir de N


(i)
semillas X j con i = 1...N y j = 1...n.
(i)

Sea Dn (X) la densidad de probabilidad de presencia de los puntos Xn en


la vecindad de X y Dn (Y ) es la densidad en torno a Y . Y es el punto, antes
hay un
llamado X p , que sera aceptado o rechazado. Al iterar una vez mas
cambio en Dn que se debe a traspaso neto de puntos de la vecindad de X a la
vecindad de todos los puntos Y . Este cambio que sufre Dn (X) formalmente es
Dn (X) = Dn+1 (X) Dn(X) y debiera ser claro que es

Dn (X) =

Dn (Y ) P(Y X) Dn (X) P(X Y )


Y

{z

ganancia

} |


{z

perdida

P(Y X) Dn (X)

= Dn (Y ) P(X Y )
P(X Y ) Dn (Y )
Y

(5.4.2)

donde P(X Y ) es la probabilidad de que del punto X se pase al punto Y .

Asintoticamente
se alcanza un estado de equilibrio en el sentido que D(X) ya
esto es, D se anula. La solucion
general que anula el
no evoluciona mas,

lado derecho es muy difcil de encontrar. No demostraremos que la solucion


requiere que el corchete sea nulo para todos los pares (X,Y ).
Se dice que se alcanza la densidad de equilibrio Deq cuando en D(X) deja
de evolucionar en todos los puntos X y se satisface
Deq (X) P(Y X)
=
Deq (Y ) P(X Y )

(5.4.3)

es decir, D = 0, lo que hace a Deq un punto fijo.


Si D esta muy cerca de Deq y ocurre que
Dn (X) P(Y X)
>
Dn (Y ) P(X Y )

(5.4.4)

el factor en el corchete en (5.4.2) es negativo y hay traspaso neto hacia Y , lo


que acerca a D(X) al equilibrio. Las dos ultimas

propiedades muestran que el


mecanismo anterior conduce a un equilibrio estable. El punto fijo es un punto
de equilibrio estable.
Si se escribe
P(X Y ) = pXY AXY

(5.4.5)

donde pXY es la probabilidad de que si la semilla es X se intente Y , y AXY es


de
la probabilidad de que (5.4.1) acepte a Y si la semilla es X. Por definicion

la estrategia de Metropolis pXY es simetrica:


pXY = pY X . Entonces (5.4.3) se
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

81

puede escribir
Deq (X) AY X
=
Deq (Y ) AXY

(5.4.6)

Ahora analicemos (5.4.1) a la luz de (5.4.6). Teniendo X e Y fijos, y X como


semilla, se sortea un r U(0, 1).
WY
Si WX < WY , se ve que W
> 1 es
X
mayor que cualquier r y Xn+1 = Y .
Esto se traduce en el 1 del primer
casillero de la tabla.

AXY
AY X

WY
< 1, la
Si WX > WY , es decir W
X
probabilidad de aceptar a Y es
WY
WX , que es el valor superior derecho de la tabla.

En forma similar se obtiene los valores


abajo en la tabla para el caque estan
so en que Y es la semilla y X es el que
se acepta o rechaza. Se comprueba
inmediatamente que el valor del cuociente AY X /AXY es siempre el mismo y
es WX /WY , es decir,
Deq (X) WX
=
Deq (Y ) WY

WX < WY
1
WX /WY

WY < WX
WY /WX
1

Valores de A en los distintos casos.

Probabilidad de
aceptar estado Y

(5.4.7)

WY/ WX

y usando los casilleros de la derecha se obtiene lo mismo, lo que muestra que


Deq = W y por tanto queda aclarado que (5.4.1) finalmente conduce a W (X).

En el analisis
anterior se hizo uso de la ya cidada propiedad elemental:
dado un x en el intervalo (0, 1), la probabilidad de que un r U(0, 1) este entre
0 y x es exactamente P = x.

5.4.3. Metropolis en mecanica


estadstica
Es muy tpico considerar un sistema de N partculas cuyo hamiltoniano es
p2a
+ a<b Vab y querer calcular, por ejemplo, un promedio
de la forma H = a 2m

estadstico canonico
de una cantidad que solo depende de las posiciones de
las partculas, A(~ra ) como
hAi =

A(~r N ) eV /(kT )
eV /(kT )

(5.4.8)

donde V = a<b Vab quiere decir la energa potencial total del sistema y la suma
(integral) es sobre los estados configuracionales del sistema. Normalmente lo
Universidad de Chile

Escuela de Ingeniera y Ciencias

Condicones de borde y autovalores

5.4. LA ESTRATEGIA METROPOLIS PARA CALCULAR PROMEDIOS

anterior es una integral d N ~r sobre todas las posiciones posibles de las partcu
las del sistema. En la practica
la cantidad de estados es un continuo que no
puede ser integrado o es un discreto gigantezco, de modo que lo que se hace es un muestreo del espacio de estados, tal como se hace en la integral

Monte Carlo. El metodo


de Metropolis genera estados (configuracionales) di W requerida, por ejemplo,
rectamente con la distribucion

W=

e V
e V

(5.4.9)

Cuando, por ejemplo, se calcula en mecanica


estadstica el promedio de
una cantidad que depende tan solo de las coordenadas de las partculas del
W como en
sistemas (por ejemplo de un lquido), se utiliza una distribucion
en detalle, si se tiene un potencial interpartcula, Vab = V (rab ), el
(5.4.9). Mas
exponente simbolizado como V es

V =

Vab

(5.4.10)

a<b

Esta es una suma sobre todos los pares posibles de partculas del sistema. Si
el sistema tiene N partculas, la suma tiene O(N 2 ) sumandos. Para sistemas
medianamente grandes tal suma sera un inconveniente prohibitivo. Pero lo
que interesa es el cuociente Wp /Wn , es decir, interesa calcular V = Vn V p .

Xn X p se cambia las coordenadas de una sola partcula


Si en la iteracion
la partcula k-esima~rk ~r k entonces en la diferencia (5.4.10) la mayora de

los terminos
se cancela identicamente
y queda tan solo aquellos que involucran a la partcula k,


V = V (~ra ~r k ) V(~ra ~rk )

(5.4.11)

Esto hace que ahora la suma tenga O(N) sumandos. Aun esto es demasiado

cuando se desea hacer calculos


sobre sistemas muy grandes.
viene de una aproximacion
que solo puede hacerse si el potenLa solucion

cial Vab decae suficientemente rapido. Si decae rapido


se opta por aproximar a

cero el potencial mas alla de una distancia R0 , es decir, se hace la aproxima V (rab R0 ) = 0. Se dice que R0 es el radio de influencia de cada partcula.
cion
Una vez que se ha escogido el valor de R0 el sistema se divide en celdas cubi
mayor o igual a R0 . De esta manera se logra que cada partcula
cas de tamano
en su propia celda o en alguna de las celsolo interactue con otras que estan
das vecinas. Por cada celda c el programa mantiene una lista Lc con el nombre
de las partculas que hay en c
y cada
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

83

vez que una partcula cambia de celda el programa


actualiza borrando a esa partcula de la lista que

deja y anotandola
en la nueva. La suma (5.4.11)
se hace tan solo sobre las partculas de las celdas
que corresponda. Esta suma ya no dependen del
N del sistema y se dice que es O(1) precitamano
samente porque no depende de N.

del estado de prueba X p no es un asunto enteramente trivial.


La generacion
puede ser muy alta y
Si es muy cercano a Xn la probabilidad de aceptacion
entre los estados sucesivos. Por otro lado,
puede haber una gran correlacion
si X p es muy lejano a Xn la probabilidad de rechazo puede ser muy alta lo que
maxima.

hace muy probable que Xn+1 = Xn lo que implica correlacion


de
En la literatura en el tema suele decirse que el algoritmo de generacion
los X p sea ajustado en una corrida en blanco para lograr una tasa de acep de alrededor de 50 %. Y ademas
para promediar no se tome todos los
tacion
estados de la secuencia {Xn } sino uno de cada K estados, para desminuir los
entre estados consecutivos. Mi experiencia es que hay
efectos de correlacion
casos en que lo anterior es claramente inconveniente.
sobre los temas de este captulo se recomienda
Para saber mas

- Monte Carlo Methods in Statistical Physics, M.E.J. Newman & G.T. Barkena, Clarendon Press, Oxford, 1999.
- A guide to Monte Carlo Simulations in Statistical Physics, D.P. Landau, K.
Binder, Cambridge University Press, 2000.

5.4.4. Propiedades necesarias


Un algoritmo como el de Metropolis genera una secuencia de puntos X distribuidos segun
W (X). El algoritmo debe cumplir con una serie de propiedades

para ser satisfactorio a los propositos


de Mecanica
Estadstica.
Estas propiedades no necesariamente se refieren a toda la historia de la
secuencia generada, sino a las propiedades que la secuencia alcanza una vez
porque si el punto
que ha relajado al equilibrio. Es necesaria esta aclaracion
de partida es muy improbable, la primera parte de la secuencia puede ocurrir
W (X). Pero tarde o
en una zona muy poco representativa de la distribucion
temprano la secuencia va a alcanzar las zonas importantes de W y es a partir
de ah que se dice que se tiene propiedades de equilibrio.
Proceso de Markov. Para los fines de este captulo, un proceso de Markov genera aleatoriamente una secuencia de puntos X en algun
espacio cumpliendo
Universidad de Chile

Escuela de Ingeniera y Ciencias

Condicones de borde y autovalores

5.4. LA ESTRATEGIA METROPOLIS PARA CALCULAR PROMEDIOS

ciertas propiedades. La probabilidad P(X,Y ) de generar el punto Y si se proviene del punto X solo depende de estos dos puntos. En particular no depende
de la historia anterior de la secuencia y debe satisfacer Y P(X,Y ) = 1, es decir, dado un X siempre se produce un Y . La probabilidad P(X, X) puede ser no
nula (en el algoritmo de Metropolis claramente es no nula).
Ergodicidad. Se desea que, sin importar el punto X0 de partida, la secuencia

debe en algun
momento alcanzar todo X que tenga probabilidad no nula. Mas
aun, la frecuencia con que la secuencia visita al punto X debe ser proporcional
a W (X).
Balance detallado. Si se considera la parte de la secuencia que se tiene des de haber llegado al equilibrio, la probabilidad de alcanzar un punto X
pues
debe ser igual a la probabilida de salir de ese punto, en el siguiente sentido:
Y W (X) P(X,Y ) = Y W (Y ) P(Y, X).
restrictivo:
El balance detallado exige algo mas
W (X) P(X,Y ) = W (Y ) P(Y, X)
Aunque no se justificara esta exigencia, ella garantiza que la secuencia efectivamente alcanza un equilibrio y no es atrapada en algun
tipo de ciclo lmite.
En el caso de Metropolis esta propiedad quedo establecida en (5.4.6).

5.4.5.

Integrales usando el algoritmo de Metropolis

Se desea hacer la integral


Z

f (X) dX

no negativa en el dominio V de integracion.


Se escoge algun
de una funcion

punto X0 del dominio en el cual f (X) tenga un valor relativamente grande

volumen en torno a X0 donde


(ojala un maximo)
y se escoge un pequeno
es una constante f0 . Se puede usar el propio
se pueda suponer que la funcion
X0 como semilla inicial para generar una secuencia Metropolis usando a f (X)
como probabilidad, aun cuando sabemos que su integral en general no vale
uno. De los n puntos de la secuencia, se cuenta los n1 puntos que caen dentro
volumen es
de . La probabilidad que caigan es ese pequeno
p= R

de donde se desprende que

n1
f0
=
n
f (X) dX

f (X) dX

n
f0
n1

(5.4.12)

Para que este algoritmo sea efectivo, primero debe correrse un ciclo que ajuste
de X p que termine arrojando una tasa de aceptacion

el criterio de generacion
del orden del 50 %. Solo entonces se comienza a calcular la integral.
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

5.5.

Metodos
Computacionales en Fsica

85

Problemas

1. Determine un mnimo de la energa potencial E asociada a un sistema


bidimensional de 20 partculas puntuales que interactuan de a pares con
el potencial


1
1
Vab = 4 8 4
rab rab
donde rab es la distancia entre a y b. Las partculas se pueden mover tan
0 ya 10.
solo en el plano XY con coordenadas 0 xa 10 y tambien
Suponga que una de las partculas esta fija en x = 5, y = 5 y que otra solo
puede moverse en el eje X con y = 5. Un sistema de este tipo esta en
adelante
su mnimo de energa tan solo si esta a temperatura cero. Mas

se vera como
determinar estados representativos asociados a una cierta
inicial coloque a las partculas desortemperatura. Como configuracion
del sistema
denadamente dentro de la caja de 10 10. La evolucion
se hace en forma aleatoria intentando modificar una sola coordenada a
la vez en la forma znueva = zactual + (0,5 drand48()) y el nuevo valor
se acepta tan solo si la energa disminuye. Conviene aumentar el valor
de (por ejemplo en un 50 %) cuando znueva es aceptado y disminuirlo

a Explique muy clalevemente cuando znueva es rechazado, por que?

ramente el procedimiento seguido. b Haga un grafico


(o una tabla) con
de la energa como funcion
del numero
la evolucion

de ciclos, donde se
define como ciclo el conjunto de las 37 iteraciones que intentan modificar
cada una de las 37 coordenadas del sistema libres de variar. c Una vez
de las partculas.
que haya obtenido un mnimo de E dibuje la posicion
para Vab .
Interprete el valor de E en base: a este dibujo y a la expresion
2. Calcule la integral
forma f = w h con

R
0

sin x dx, f = sin x, usando MC2, factorizandolo en la




2
3
4 
w=
1 2 x
2

y compare la velocidad de convergencia con el resultado de integrar en


forma directa usando MC1.
R

x
3. Compruebe que
I = 1 sin
dx puede calcularse usando y =
x3
1
forma I N j y j sin(1/y j ) con y j U(0, 1).

1
x

en la

4. Obtenga el valor de la integral 9-dimensional


Z q
x41 + 2x42 + 3x43 + .. + 9x49 dx1 ..dx9
dentro de una hiperesfera de radio 2 sin hacer cambio de variables. Es
time el valor numerico
del error de su resultado. El resultado muy aproximadamente es 6,3 103.
Universidad de Chile

Escuela de Ingeniera y Ciencias

Condicones de borde y autovalores

5.5. PROBLEMAS

5. Escriba y ejecute un programa inteligente que genere una secuencia


aleatoria {xk } de 20 millones de valores que se distribuyan segun

W (x) =

2x
(1 + x2)2

con 0 x

Haga un histograma H[k] que registre la frecuencia de ocurrencia de los


valores 0 x 20 en celdas de largo 0.1, es decir, el histograma tiene
200 componentes. Que porciento de la secuencia esta en este inter
valo? En un mismo grafico
superponga los valores de W (x j ) y del histo
grama normalizado, es decir los valores N H[ j], como
debe hacerse la
realmente? como

comparacion
se escoge N ? Explique en detalle. Ob el promedio Monte Carlo de ex con respecto a W usando
tenga ademas
los primeros n millones de valores de la secuencia, con n = 1, n = 2 ..
hasta n = 20.

6. Use la funcion

2
2
1 
W (x) = 2 e(x1) + 3 e(x+1)
5
para generar con el algoritmo de Metropolis una secuencia {xn } partiendo de x0 escogido a gusto entre -2 y 2 y definiendo x p = xn +
donde U(1, 1) y 6,0 (s, dice 6.0). La literatura dice que un
buen es aquel que implica que aproximadamente la mitad de los x p
drand48() de C inicializada una sola
son aceptados. Use la funcion
vez con srand48(M), y M es un entero cualquiera. Haga un histograma hk (k = 0.,799) de los valores de la secuencia que quepan dentro de
4 x 4, y dibuje 100 h j /n1 comparando con W (x) para 50 mil y 5 millones de iteraciones, donde n1 el el numero

de puntos de la secuencia xn
que cayeron dentro de (4, 4). Por cada punto x que esta en tal intervalo
se puede hacer:
j = (int) (100.0*(4.0 + x));
h[j]++;
n1++;

Si el histograma fuese h[0 j < N] puede comprobar que la instruccion


arriba sera j = (int) 0.125*N*(4.0+x); ya que (4.0+x)
de mas
puede alcanzar el valor 8.0. Se debe dibujar 0,125 N h[ j]/n1.
7. Considere un sistema unidimensional de 11 varas de largo 1 dentro de
entre ellas es de
una caja de largo 14. Suponga que la interaccion
energa potencial V0 = 1 si se penetran y nula si no se tocan. Por medio
del algoritmo de Metropolis obtenga la densidad n(x) media del sistema.

Para ello divida la caja en 200 intervalos y determine numericamente


la
del centro de cada vara en cada uno de los
probabilidad de ocupacion
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

87

determine la probabi200 intervalos. Es claro que n(x) dx = 1. Tambien


lidad g(x) de que la partcula 6 (la central) tenga distancia relativa x con
g(x) se llama funcion
de correlacion
de
alguna otra partcula. La funcion
pares. Haga variar esta distancia x relativa en el intervalo (0, 5) y haga
arbitrara a g(x). Para unas tres temperaturas diferenuna normalizacion

tes obtenga
tanto la densidad como g(x) usando T = 0,01, T = 0,4, T = 10.
Explique claramente todo lo que haga.

8. Considere el modelo de Ising ferromagnetico


en dos dimensiones definido sobre un reticulado cuadrado, descrito por el hamiltoniano
H = J

Si j Skl B Si j

(i, j) (k,l)

(i, j)

donde las variables dinamicas


Si j solo pueden tomar los valores 1, J

es la constante de acoplamiento positiva y B es el campo magnetico

multiplicado por el momento magnetico


de cada spin. Los ndices (i, j)
recorren la red cuadrada y los ndices (k, l) recorren los cuatro vecinos
del nodo (i, j), esto es,
(k, l) = {(i 1, j); (i + 1, j); (i, j 1); (i, j + 1)}
Se debe usar una red cuadrada de N N spines con condiciones de bor
de periodicas.
Cada producto Si j Skl tiene asociado en forma natural un

trazo elemental de la red y el termino


J (i, j) (k,l) Si j Skl debe entenderse
como una suma sobre todos los trazos elementales de la red, sumando
una sola vez cada trazo.

Para usar las condiciones de borde periodicas


sin complicaciones, la lista
de spines vecinos se llama de la siguiente forma
(k, l) = {(i1 mod N, j); (i+1 mod N, j)(i, j1 mod N); (i, j+1 mod N)}
resto, que en C corresponde al operador %.
donde mod es la funcion
instantanea

Se define la magnetizacion
como
M=

Si j

(i, j)

Se desea medir la curva M(T ) para B = 0 y la curva M(B) para T = T0 < Tc .


Si se usa el sistema de unidades en que J = 1, mida la primera curva
desde T = 0 a T = 3,0, y la segunda curva desde B = 2 a B = 2, para
T = 1,0. Debe hacer ambas curvas en los dos sentidos, esto es, una vez

aumentando y la otra disminuyendo el parametro


de control. Use una

interpretacion
de los
red de tamano N = 50. Ademas, de una pequena
resultados que obtenga e identifique la temperatura crtica.

Para construir cada curva, se propone usar el siguiente metodo.


Se ge al azar (cada spin toma al azar un valor 1
nera primero una condicion
Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecs. diferemciales elpticas

5.5. PROBLEMAS

o -1). Luego, se relaja el sistema para una temperatura y campo magneti de relajar se promedia
co iguales al punto inicial de la curva. Despues
con esos parametros.

la magnetizacion
Se varan los parametros
y se
inicial el estado final que resulto de la simulacion

usa como condicion


de una breve relajacion
(porque como los parametros

anterior. Despues
son similares, el estado de equilibrio debe ser similar) se promedia la
y as sucesivamente.
magnetizacion,

de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Captulo 6

Ecuaciones elpticas

senciEn este captulo y los que siguen se vera tan solo los metodos
mas
llos para integrar ecuaciones a derivadas parciales. Existe una amplia variedad

refinados.
de metodos
mas

6.1.

y condiciones de borde
Ecuacion

de Poisson
Considerese
el sencillo caso bidimensional de una ecuacion
dentro de un dominio en el plano XY , con borde dado por una curva cerrada
2 = G(x, y)

(6.1.1)

Como condiciones de borde se puede condiciones rgidas, o de Dirichlet


[] = [g1 (x, y)](x,y)
sobre las derivadas, por ejemplo,
o bien algun
tipo de condicion



= [g2 (x, y)](x,y)


n

(6.1.2)

(6.1.3)

donde / n = n es la derivada normal al borde del dominio de integracion


de borde tipo Neumann. Cuando en todo el borde se tiene
y se llama condicion
la solucion
del problema no es unica

este tipo de condicion

porque a la solucion
que se tenga se le puede agregar una constante arbitraria y sigue siendo una
del mismo problema. Pero una ecuacion
como 2 = G(, x, y) puede
solucion
unica
tener condiciones de borde tipo Neumann en todos lados y tiene solucion

de autovalores (G = k(x, y) ).
excepto que sea una ecuacion
en general se puede tener condiciones de borde mixtas,
Mas



+ (x, y ) (x, y ) = [g(x, y)](x,y)


n
89

(6.1.4)

Y CONDICIONES DE BORDE
6.1. ECUACION

Ecs. diferemciales elpticas

La derivada

tangente al borde.

se debe entender como n donde n es la normal a la

En todo lo que sigue se puede rehacer los calculos


considerando ecuacio generales, tales como
nes elpticas mas
(p(x, y ) (x, y )) + q(x, y ) (x, y ) = G(x, y )

(6.1.5)

pero en nada sustancial cambian los metodos


de aquellos requeridos para
resolver (6.1.1).

Integral de accion

6.1.1.

S[]
Definamos la integral de accion


Z
1
2
() + G
S[] = dx dy
2

(6.1.6)

de mnimo de S, S = 0 compatible con las condiciones


Se busca la condicion
de borde rgidas,
Z

S =

pero

( ) dx dy =

dx dy [ ( ) + G]

( ) dx dy

2 dx dy

(6.1.7)

(6.1.8)

La primera de las dos integrales de la derecha es equivalente a una integral

sobre el borde de la zona de integracion,


Z

n ds

donde n es el vector normal al borde y ds es el elemento de arco. Puesto que

no vara sobre el borde (( ) = 0) la primera integral es nula concluyendose


que
Z


S = dx dy 2 + G
(6.1.9)
. Esto implica (6.1.1).
que debe ser nula para cualquier variacion

provenga del mnimo de la integral de accion

El hecho que la ecuacion


reduce el problema al de encontrar el mnimo de S compatible con las condiciones de borde.
como (6.1.5) basta con considerar la integral de accion

Para una ecuacion




Z
1
p ()2 + F()
S[] = dx dy
2

que implica la ecuacion

F
=0

F() puede, por ejemplo, ser 21 q 2 G.


(p )

de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

6.2.

91

Discretizacion

en el volumen
6.2.1. Discretizacion
(6.1.1) puede ser discretizada en la forma
La ecuacion
i+1,k 2i,k + i1,k i,k+1 2i,k + i,k1
+
= Gik
h2
h2

(6.2.1)

se despeja i,k definiendose

de recurrencia
De esta ecuacion
una relacion
para ir actualizando los valores de los i,k
i,k


1
i+1,k + i1,k + i,k+1 + i,k1 h2Gik
4

(6.2.2)

de recurrencia converge practicamente

Esta relacion
a partir de cualquier conjunto inicial de valores para i,k .
en general se define, en lugar de (6.2.2)
Algo mas
i,k (1 ) i,k +



i+1,k + i1,k + i,k+1 + i,k1 h2 Gik
4

(6.2.3)

que se reduce a (6.2.2) cuando = 1. Esta regla debe manejarse usando un


solo arreglo ik . Si se intenta actualizar el valor de en todos los sitios usando

(6.2.3) con el arreglo previo, el metodo,


en general, no es convergente.
Si las condiciones de borde son tipo Dirichlet se puede usar directamente
consideraciones tomando cuidado de no alterar los valores
(6.2.3) sin mas
colocados al comienzo en los bordes.

en los bordes en un caso tipo Neu6.2.2. Discretizacion


mann
Consideremos precisamente la
(6.1.3), la que, discretizada
condicion
es,
iN i N1 = h gi

(6.2.4)

(i,N)

(i1,N1) (i,N1) (i+1,N1)

Al considerar (6.2.2) con k = N 1, a


la derecha aparece un i N que se reemplaza, usando la ultima

expresion,
y se obtiene
4i,N1 = i+1,N1 + i1,N1 + {i,N1 + h gi } + i,N2 h2Gi,N1

(6.2.5)

usada en lugar de i,N . De esta nueva exEntre llaves aparece la expresion


se deduce inmediatamente la relacion
de recurrencia especfica para
presion
Universidad de Chile

Escuela de Ingeniera y Ciencias


6.2. DISCRETIZACION

Ecs. diferemciales elpticas

el borde,


i+1,N1 + i1,N1 + i,N2 h2Gi,N1 + h gi
3
(6.2.6)
permite actualizar los puntos inmediatos a los bordes. Obtenidos
Esta relacion
ellos se actualiza los puntos del borde mismo con
i,N1 (1 ) i,N1 +

iN = i N1 + h gi

(6.2.7)

En resumen: lejos de los bordes se itera con (6.2.3), al lado de los bordes
se itera con (6.2.6) y los puntos del borde se iteran con (6.2.7).

6.2.3.

Convergencia

en el volumen
Iteracion

Para estudiar la convergencia de (6.2.3) se utilizara la regla de iteracion


lejos de los bordes.
discreta de la integral de accion
es
La version
#
" 
2


1 i k i k1 2
1 ik i1 k
+
+ i k Gi k h2
S=
h
2
h
i,k 2

(6.2.8)

dS/dik = 0 para cada ik separadameny, puesto que interesara la condicion


te, basta con tomar en cuenta de todas las contribuciones a S solo aquellas

con terminos
que tienen un ik con ndices fijos:
S

1
1
1
(ik i1 k )2 + + (i+1 k i k )2 + (ik i k1 )2
2
2
2
1
2
2

+ (i k+1 i k ) + h i k Gi k + terminos
sin i k
2
22ik ik i1 k ik i+1 k ik i k1 ik i k+1

+h2 i k Gi k + terminos
sin i k

ik 2ik i1 k i+1 k i k1 i k+1 + h2 Gi k + idem


{z
}
|
B

ik B + terminos
sin i k

(6.2.9)

para S se va a reemplazar ik por la expresion


dada en
En esta expresion
(6.2.3), definiendo as un nuevo valor S . Pero primero (6.2.3) sera reescrita
para las necesidades actuales,


i,k ik +
4 ik + i+1,k + i1,k + i,k+1 + i,k1 h2 Gik
{z
}
|4
A= /4

ik + A

de 14 de julio de 2009
version

(6.2.10)

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

93

Notese
que A y B se relacionan por
2ik + B =

4
A

(6.2.11)

para S, tanto en el factor


Al hacer el reemplazo (6.2.10) en la expresion
explcito ik como en B se obtiene
S = (ik + A) (2A + B)
de S como
que permite calcular la variacion

= S S

= 2A2 + A (2ik + B)


4A
= 2A2 + A

2 2
= 2
A

( 2) 2
=

(6.2.12)

Si < 0 el ultimo

factor es positivo, lo que no se quiere. Para que S disminuya


se necesita < 0 lo que requiere que sea positivo y menor que dos,
0 2

(6.2.13)

De este sencillo analisis


parece desprenderse que el valor optimo
es = 1, sin
embargo puede comprobarse que valores de muy cerca de 2 son los que
rapida.

dan una convergencia mucho mas


con condicion
de borde tipo Neumann
Iteracion

Se presenta en forma muy esquematica


la forma de obtener la condicion

cuando se itera cerca de un borde cuando se tiene las condicion de borde de


tipo analizado en 6.2.2.
a la derecha en (6.2.6) sea
o Se define imponiendo que la expresion
se despeja h2 Gi,N1 .
i,N1 + . De esta ecuacion

o Se define Si,N1 como la suma de todos los terminos


de S que contie se elimina i,N usando
nen i,N1 . Una vez que se tiene esta expresion
para Si,N1 .
(6.2.7), lo que da una nueva expresion
(6.2.6), lo que
o En Si,N1 se sustituye i,N1 usando la regla de iteracion

que designamos Si,N1


da una expresion
.

Si,N1 . En ella se sustituye h2 Gi,N1 por la expresion


o Se define = Si,N1
que se obtuvo en el primer paso.

Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecs. diferemciales elpticas

6.3. FLUIDOS INCOMPRESIBLES ESTACIONARIOS

El resultado de este procedimiento es

3 ( 2) 2

que nuevamente garantiza convergencia cuando se satisface (6.2.13).


de borde es tipo
Si el problema que se resuelve es (6.1.1) y la condicion
no es unica,
Neumann en todos los bordes, entonces la solucion

porque si
tambien
lo es + cte. Basta con fijar arbitrariamente el valor de
es solucion,

en un punto del dominio para que el metodo


garantice unicidad.
Ecuaciones elpticas discretas
elptica mas
general lo
Para obtener la forma discreta de una ecuacion
conveniente es comenzar escribiendo una integral de accion
S para el
mas
misma y la ecuacion
misma
caso deseado. Se discretiza la integral de accion
se obtiene de imponer dS/dik = 0.

6.3.
6.3.1.

Fluidos incompresibles estacionarios


Las ecuaciones

de lo anterior se estudiara el caso bidimensional que reComo aplicacion

sulta de comenzar con las ecuaciones hidrodinamicas

+ (~v) = 0
 t

~v

+ (~v )~v
= p + 2~v + ~g
t
T
+ (~v ) T = 2 T
t
donde

~v
p
T

~g

= /0
de 14 de julio de 2009
version

(6.3.1)
(6.3.2)
(6.3.3)

densidad

velocidad hidrodinamica

presion
temperatura
viscosidad
de gravedad
aceleracion

conductividad termica
termica

coeficiente lineal de expansion


corriente
funcion
vorticidad

viscosidad cinematica

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

95

Se va a hacer dos simplificaciones: estados en los que no hay variacion


temporal y en los que la densidad puede ser reemplazada por la densidad

con gravedad donde se coloca


media 0 excepto en el termino

= (1 (T T0 )) 0

(6.3.4)

y T0 es la temperatura media del sistema.


hidrostatica

Existe una sencilla solucion


a las ecuaciones anteriores si se
supone que el fluido esta entre una base a temperatura fija Tb en y = 0 y un
borde superior a temperatura Tt en y = y1 , suponiendo que ~g = (0, g)
~v
T
p

= 0
y
= Tb + (Tt Tb )
y1


Tt Tb 2
= g 0 y
y + p0
2 y1

(6.3.5)

corriente, la vorticidad y
6.3.2. Ecuaciones para la funcion
la temperatura
Sin tiempo y densidad uniforme (6.3.1) se convierte en
~v = 0

(6.3.6)

pero todo campo con divergencia nula puede ser expresado como el rotor de
corriente, ,
otro campo, que se denomina funcion
vi = i j j

(6.3.7)

Donde i j es antisimetrico
y 12 = 1 mientras que es un seudovector, lo que
bidimensionalmente lo hace un seudoescalar,
! 




u
y

y
~v =
=
=
(6.3.8)
x
v
x

Notese
que esta definido salvo por una constante aditiva. Adicionalemente
se define la vorticidad, esencialmente como el rotor de la velocidad

= i j i v j

= 2

(6.3.9)

Las ecuaciones hidrodinamicas


originales se reducen a

.
=

2 T

.
=

Universidad de Chile

y x x y + g Tx

y Tx x Ty

(6.3.10)
(6.3.11)
(6.3.12)
(6.3.13)
(6.3.14)

Escuela de Ingeniera y Ciencias

Ecs. diferemciales elpticas

6.3. FLUIDOS INCOMPRESIBLES ESTACIONARIOS

que es un sistema acoplado de tres ecuaciones diferenciales para los tres


campos , y T .
(6.3.14) se desacopla de las otras y
En problemas con g = 0, la ecuacion
debe resolverse solamente (6.3.10) acoplada con (6.3.12).
Las dimensiones de estas cantidades son
[ ] = [2 /t] ,

[ ] = [1/t] ,

[T ] = [m2 /t 2 ] ,

[ ] = [ ] = [2 /t] (6.3.15)

E JERCICIO : Demostrar que


2 p = 20

6.3.3.

"

 2 2 #
2 2

x2 y2
x y
y

(6.3.16)

Lneas de corriente

Si , definida por [x(s), y(s)], es una curva en el plano XY sobre la cual la


es constante se puede deducir que
funcion
0 =
=

d
ds

dx dy
+
x ds y ds

= v x + u y
v
de donde dy
dx = u lo que implica que la velocidad ~v es tangente a la curva . De
aqu que si se desea imponer que en alguna parte la velcidad debe seguir una
lnea especfica, se debe imponer que sea constante sobre esa lnea.

6.3.4.

discreta de y
Version

Las componentes de la velocidad son u y v.

En terminos
discretos estas componentes se
asocian a los trazos horizonatates y verticales
del reticulado, como lo muestra la figura y

i,k i,k1
h

uik

vik

i,k i1,k
=
h

de 14 de julio de 2009
version

(6.3.17)

v
i,k

i-1,k

i,k

i,k-1

u i,k

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

97

Se puede pensar que en cada cuadrilatero


elemental hay una corriente ik
en el sentido que indica la figura, y las componentes de la velocidad resultan
de sumar las corrientes que impone cada celda.
Por otro lado, la vorticidad es el rotor de la velocidad,

ik

u i,k+1

= (uy vx )ik
ui,k+1 ui,k vi+1,k vi,k
v
=

i,k
h
h
ui,k+1 vi+1,k ui,k + vi,k
(6.3.18)
=
h

v
i+1,k

u i,k
En el nunmerador esta la suma de las componentes de la velocidad asociadas
a cada uno de los cuatro lados de la celda, tomando en cuenta el signo segun

la forma que indica la figura.

6.4.

Primer ejemplo: flujo y obstaculo

X y en N2 intervalos
El sistema se discretiza en N1 intervalos en la direccion
Y de tal modo que el intervalo elemental en ambas direcciones
en la direccion
sea sencilla),
es h (tan solo para que la notacion
x = ih

y = kh

i = 0, ..N1 ,

k = 0, ..N2

(6.4.1)

Las coordenadas enteras del obstaculo


son E (i1 , k1 ) y G (i2 , k2 )

6.4.1. Las ecuaciones discretas en el volumen


Este es un problema sin gravedad por lo que bastara con resolver (6.3.10)
acoplada con (6.3.12). El campo de temperatura se puede evaluar al final si se
desea.
Se vera el caso de un fluido 2D que
alla de un obstaculo

pasa mas
rectanguB
lar EFGH. Para resolver este problema se
impondra ciertas condiciones de borde de
bien
naturaleza fsica y otras que son mas

hipotesis simplificatorias. Se escoge resol- x =0

ver el problema dentro de un rectangu =0


lo ficticio ABCD suficientemente lejos del

obstaculo.
Se supondra que el fluido fluye
A
laminarmente desde la izquierda de modo
que en los bordes izquierdo y derecho
Universidad de Chile

=v
y 0
F

=0
G

C
=0
x
x =0

E
=v
y 0

H
=0

Escuela de Ingeniera y Ciencias


6.4. PRIMER EJEMPLO: FLUJO Y OBSTACULO

Ecs. diferemciales elpticas

=0
izquierda y derecha
x

Se supondra que la componente horizontal de la velocidad hidrodinamica


arriba BC y abajo AD vale v0 . Es decir, arriba y abajo se tomara
v =

u = y = v 0

arriba y abajo

Respecto a la vorticidad, sin mayores argumentos se supondra que es cero


abajo, arriba y a la izquierda. En cambio a la derecha satisfara / x = 0.
Todas las condiciones de borde impuestas hasta aqu se hacen sobre un
fsica tpica de
borde ficticio y son simplificaciones del problema. La condicion

hidrodinamica
es que la velocidad es cero en los puntos de contacto con un

solido,
es decir, es constante en el permetro EFGH. Puesto que esta definido salvo por una constante aditiva, se toma

=0

en EFGH

sobre en este permetro sera discutida mas


adelante.
La condicion

Adimensionalizacion:
Sea L una distancia caractarstica L del problema y
se define los campos adimensionales como sigue:

= v0 L

v0

(6.4.2)

Los campos X son adimensionales. Puesto que en todo lo que sigue de este
problema se trata solo con los campos adimensionales no se pondra el acento.
En cambio las pocas veces que se haga referencia a los campos con dimensiones se les sobrepondra una barra: y
(6.3.12) se escribe
La ecuacion


i+1,k 2i,k + i1,k i,k+1 2i,k + i,k1
v0
v0 L
= i,k
+
h2
h2
L
Los factores v0 se cancelan y, si se escoge L = h, no aparece ninguna cons reduciendose

tante en esta ecuacion,


a

i,k =


1
i+1,k + i1,k + i,k+1 + i,k1 i,k
4

(6.4.3)

que se usara para iterar.


que es la primera ecuacion

En forma similar (6.3.10) puede ser convertida en




1
R
ik =
i+1,k + i1,k + i,k+1 + i,k1 +
(i+1,k i1,k )(i,k+1 i,k1 )
4
4

(6.4.4)
(i,k+1 i,k1 )(i+1,k i1,k )
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

99

en esta expresion
h v0

es una espacie de numero

de Reynolds. Un numero

de Reynolds con significadp fsico es EF v0 / .


R=

6.4.2. Las ecuaciones en los bordes


Ecuaciones para :

obstaculo.

Ya se ha dicho que = 0 en todo el borde con el

En AB se tiene x = 0, que se expresa como

0,k = 1,k

(6.4.5)

en (6.4.3) tomada con i = 1 da


Usando esta relacion
41,k = 2,k + 0,k +1,k+1 + 1,k1 1,k
|{z}
1,k

que permite escribir, ya con incorporada,

1,k = (1 )1,k +

2,k + 1,k+1 + 1,k1 1,k


3

(6.4.6)

En AD se tiene y = v0 , es decir, i,1 i,0 = 1, esto es

i,0 = i,1 1

(6.4.7)

que se usa en (6.4.3) y se obtiene, en forma similar que en el caso anterior,

i,1 = (1 )i,1 +

(i+1,1 + i1,1 + i,2 1 i,1)


3

(6.4.8)

En forma enteramente
analoga,
en BC se satisface

i,N2 = i,N2 1 + 1

(6.4.9)

y tambien

i,N2 1 = (1 )i,N2 1 +

(i+1,N2 1 + i1,N2 1 + 1 + i,N22 i,N2 1 )


3
(6.4.10)

en forma enteramente

Y tambien
analoga,
en CD se satisface

N1 ,k
N1 1,k

N1 1,k

(6.4.11)


= (1 )N1 1,k +
N1 2,k + N1 1,k+1 + N1 1,k1 N1(6.4.12)
1,k
3

Universidad de Chile

Escuela de Ingeniera y Ciencias


6.4. PRIMER EJEMPLO: FLUJO Y OBSTACULO

Ecs. diferemciales elpticas

Ecuaciones para en bordes exteriores:


ABCD son sencillas,

0,k
i,0
i,N2

Las condiciones sobre en

=
=

0
0

izquierda
abajo

arriba

(6.4.13)

de la vorticidad) lo
A la derecha se exige x = 0 (ley de Kelvin de conservacion
que conduce a
(6.4.14)
N1 ,k = N1 1,k
Tomando (6.4.4) con i = N1 1 se obtiene
N1 1,k

4N1 1,k

z}|{
N1 ,k +N1 2,k + N1 1,k+1 + N1 1,k1

R
(N1 ,k N1 2,k )(N1 1,k+1 N1 1,k1 )
+
4

(N1 1,k+1 N1 1,k1 )(N1 ,k N1 2,k )

que trivialmente se convierte en

N1 1,k

(1 )N1 1,k +


N1 2,k + N1 1,k+1 + N1 1,k1


R
(N1 ,k N1 2,k )(N1 1,k+1 N1 1,k1 )
4

(N1 1,k+1 N1 1,k1 )(N1 ,k N1 2,k )

(6.4.15)

Ecuaciones para en bordes del obstaculo:


Para obtener las condiciones

de Taylor de
se hace una expansion
de borde para en torno al obstaculo
para un punto (i, k2 + 1) con i1 < i < i2 ,




h2 2

i,k2 +1 = i,k2 + h
+
+ ...
(6.4.16)
y i,k2 2 y2 i,k2

El primer termino
de la derecha es nulo porque es nulo alrededor de

todo el obstaculo.
El segundo es cero porque corresponde a la componente

tangencial de la velocidad en contacto con un solido.


Ambas componentes de

la velocidad son cero en los puntos de contacto con un solido.


En particular
v
vy es cero a lo largo de FG, es decir, xy = 0 sobre FG, lo que implica que
2 / x2 = 0 sobre FG. Pero en general,

=
de 14 de julio de 2009
version

2 2
+ 2
x2
y

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

entonces sobre FG es

2
y2

101

FG

que se puede reemplazar en (6.4.16) obteniendose

i,k2 +1 =

h2

2 i,k2

que, al pasar a campos adimensionales se reduce (y las otras se obtienen por

metodos
semejantes):

i,k2
i1 ,k
i2 ,k
i,k1

=
=
=
=

2 i,k2 +1
2 i1 1,k
2 i2 +1,k
2 i,k1 1

FG
EF
GH
HE

(6.4.17)

deben
Las rutinas de integracion
tomar en cuenta con cuidado el ran- N2
go de las variables enteras (i, k). En
L1
la figura se muestra un caso en que
000
111
000
111
000
111

0 i N1 y 0 k N2 . El obstaculo
es K2
U
000
111
000
111
D
000
111
000
111
000
111

un rectangulo
con vertices
opuestos K1
000
111
000
111
000
111
(i1 , k1 ) y (i2 , k2 ). Debe tenerse rutinas
L2
que aplican todas las condiciones de
borde del permetro. En estas rutinas 0
0
I1 I2
N1
debe primero actualizarse los puntos
entoninmediatos al permetro y solo
ces los del permetro mismo. Debe haber otra rutina que aplica las relaciones

asociadas al contacto con el obstaculo


y finalmente rutinas que integran en los
puntos interiores de las zonas que en la figura aparecen como U (up wind),
L1 y L2 que son laterales y D (down wind). Naturalmente que puede escogerse integrar en forma algo diferente, pero es importante escoger correctamente
de cada rutina para no deshacer, por ejemplo, las
los rangos de integracion
condiciones de borde.

6.5.

termica

Segundo ejemplo: conveccion

Esta vez se estudiara la dinamica


de un fluido 2D en una caja rectangular
ABCD de Lx Ly con pared inferior AB mantenida a temperatura fija T = Tb y
pared superior CD mantenida a temperatura fija T = Tt , Tb Tt . Las paredes
laterales AD y BC son perfectamente aislantes (flujo de calor nulo) por lo que
T
x = 0. Hay gravedad que apunta hacia abajo como lo indica la figura. Se debe
resolver las tres ecuaciones acopladas (6.3.10), (6.3.12) y (6.3.14), que con la
Universidad de Chile

Escuela de Ingeniera y Ciencias

TERMICA

6.5. SEGUNDO EJEMPLO: CONVECCION

Ecs. diferemciales elpticas

actual son,
notacion

2

2 T
2

y x x y + g Tx
=
= y Tx x Ty
=

Puesto que las paredes son solidas


el campo de velocidad se anula en ellas lo que hace que el campo sea constante en todo
el permetro y se escoge nulo. La temperatura aparece solo derivada, lo que deja la
libertad T c0 + T . Por ejemplo, se puede
tomar Ttop = 0 y Tbot = .
El problema se discretiza en un reticulado de Nx Ny y, para simplificar la nota supondremos que se logra tener celcion,
das cuadradas de h h.
En cuanto a la vorticidad se razona en

(6.5.1)
(6.5.2)
(6.5.3)
Tt

C
g
dT
=0
dx

dT
=0
dx

Tb

Note que los vertices


tienen nombres diferentes que en la figura del flujo con

corriente es nula
obstaculo.
La funcion
en todo el permetro.

forma parecida al caso visto anteriormente.


de
Se comienza por hacer una expansion
en un punto (1, k) a distancia h del borde izquierdo,




h2 2

1k = 0k + h
+
x 0k 2 x2 0k

(6.5.4)

es

El primer termino
es nulo porque es nulo en el borde. El segundo tambien
nulo porque es la segunda componente de la velocidad evaluada en el borde.
Por otro lado, = y u x v pero a lo largo del borde izquierdo u = 0, es decir,
y u = 0, de donde, AD = x v = +xx . Un punto sobre AD es un punto (0, k)
y entonces
 2 

0,k =
x2 0k
2
=
1k
h2
La ultima

igualdad viene de (6.5.4). En forma semejante se obtiene las condiciones de borde para en los otros tres bordes. Todas ellas son:
2
0,k = 2 1,k ,
h

2
i,N2 = 2 i,N2 1 ,
h

2
i,0 = 2 i,1 ,
h

2
N1 ,k = 2 N1 1,k . (6.5.5)
h

Una forma interesante de adimensionalizar cuando se hace un analisis


de
las ecuaciones continuas es: xk = Ly xk , = y = L2 .
y

Las ecuaciones van a ser adimensionalizadas primero en forma generica


conveniente. Se va a usar
para luego buscar la forma especfica mas

= 1 ,
de 14 de julio de 2009
version

= 2 ,

T = T

(6.5.6)

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

103

se usara una forma compacta para los operadores


donde = Tb Tt . Ademas
diferenciales discretos
2 =

1
2
h2

1
= k
xk
2h

(6.5.7)

de tal modo que

2 f
k f

=
=

fi+1,k + fi1,k + fi,k+1 + fi,k1 4 fik


fi,k+1 fi,k1

las tres ecuaciones hidrodinamicas


entonces son

2
2
h2
1
2
h2

2 T
h2

1 2
g
i T
(k i i k ) +
4h2
2h

= 2
=

(6.5.8)

1
(k i T i k T )
4h2

sea
Escogiendo 2 = 1 /h2 se logra que la segunda ecuacion

2 =
y ahora las otras dos ecuaciones quedan

2 T

1
g h3
(k i i k ) +
i T
4
21
1
(k i T i k T )
4

Aparecen tres coeficientes numericos.


Se escoge 1 = 4 para que el primer

coeficiente sea uno. Automaticamente


el tercer coeficiente toma el valor

Pr

que se conoce como numero

de Prandtl. El segundo coeficiente puede ser


escrito como
Ra

8 Pr Ny3
donde el numero

de Rayleigh es
Ra

L3y g

(6.5.9)

en puntos del interior son (seguro


En resumen, las ecuaciones de iteracion
que he cometido errores: rechequear)

ik


1
i+1,k + i1,k + i,k+1 + i,k1 ik
4

Universidad de Chile

Escuela de Ingeniera y Ciencias

TERMICA

6.5. SEGUNDO EJEMPLO: CONVECCION

Ecs. diferemciales parabolicas

ik

Tik



1
i+1,k + i1,k + i,k+1 + i,k1 i,k+1 i,k1 i+1,k i1,k
4



+ i,k+1 i,k1 i+1,k i1,k Ti+1,k Ti1,k
(6.5.10)
1
Ti+1,k + Ti1,k + Ti,k+1 + Ti,k1
4 



 
+Pr i+1,k i1,k Ti,k+1 Ti,k1 i,k+1 i,k1 Ti+1,k Ti1,k

A estas ecuaciones aun se les debe agregar el parametro


de sobrerelajacion

para acelerar la convergencia. El problema aparece con dos parametros


de
control en las ecuaciones mismas, y Pr aparte de los que puedan entrar a
de las condiciones de borde.
traves

Puesto que el campo de velocidad en los bordes debe anularse, debe cum
plirse que sea constante en los bordes, y no hay perdida
de generalidad
tomando nula tal constante:

i,0 = 0 ,

i,N2 = 0 ,

0,k = 0 ,

N1 ,k = 0

De modo que se itera en los puntos interiores sin restricciones.


Arriba y abajo la temperatura debe ser fija y como aparecen sus derivadas

no hay perdida
tomando
Ti,0 = 1 , Ti,N2 = 0
mientras que a los costados la derivada de T debe ser nula, esto es, T1,k T0,k =
TN1 ,k TN1 1,k = 0. Al usar la formula

0 y tambien
con que se itera T para T1,k
se obtiene al lado derecho un par de T0,k que son reemplazados por T1,k . Esto

obliga a redespejar T1,k obteniendose




T2,k + T1,k+1 + T1,k1 + Pr (T1,k+1 T1,k1 )2,k T2,k (1,k+1 1,k1 )
T1,k =
3 + Pr (1,k1 1,k+1)
que debe ser seguida por T0,k = T1,k . Algo semejante debe hacerse al lado
derecho,
TN11,k =

TN12,k + TN11,k+1 + TN11,k1 + Pr [TN12,k (N11,k+1 N11,k1 ) (TN11,k+1 TN11,k1 )N12,k ]


3 + Pr(N11,k+1 + N1 1, k 1)

que debe ser seuguido por TN1 ,k = TN1 1,k .

En el caso del campo de vorticidad , se debe cumplir las condiciones de


borde (6.5.5) que en el caso adimensionalizado son

0,k = 2 1,k ,

i,N2 = 2 i,N2 1 ,

i,0 = 2 i,1 ,

N1 ,k = 2 N1 1,k .

de modo que debe ser relajado en los puntos interiores y a continuacion


deben imponerse estas condiones de borde.

de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Captulo 7

Ecuaciones parabolicas
7.1.

general
Ecuacion

debieran ser generalizables


Los metodos
que se presenta a continuacion
para integrar ecuaciones como


F

F
B(t, x, F)
= S(t, x, F)
(7.1.1)
+
t
x
x
tanto con condiciones de borde rgidas como derivativas.

7.2.

Ecuaciones tpicas

conocidas en fsica posiblemente son la


Las ecuaciones parabolicas
mas
de difusion
de calor que en su forma tridimensional es
ecuacion

T
= 2 T
t

(7.2.1)

veremos en una sola dimension


espacial
pero que solo

2T
T
= 2
t
x

(7.2.2)

Puede pensarse que se trata del problema de una barra muy larga con tem puede verse un caso triperatura T (t, x) que vara en el tiempo. Pero tambien

no tiene exactamente la forma


dimensional con simetra esferica.
La ecuacion
(7.2.2) pero es igualmente tratable.
en general se puede estudiar ecuaciones como
Mas

2
+ S(x,t)
=
t
x2
105

(7.2.3)

DE LA ECUACION
DE DIFUSION
DE CALOR
7.3. ADIMENSIONALIZACION

Ecs. diferemciales parabolicas

de Schrodinger

Un caso interesante es el de la ecuacion


dependiente del tiempo, que podra ser

= i H
t
H = 2 + V
(t = 0) = 0 (x) ,

7.3.

(7.2.4)
(t, ) = 0

de la ecuacion
de difuAdimensionalizacion
de calor
sion

(7.2.2) se hace el cambio de variables y funcion


a cantiSi en la ecuacion
dades prima adimensionales:
x = L x ,

t=

L2 t
,

T = T0 T

(7.3.1)

se suprimen las primas, la ecuacion


queda
y ademas

T
2T
=
t
x2

(7.3.2)

donde T0 es alguna temperatura caracterstica.

explcita directa
Integracion

Tkn+1 Tkn

n 2T n + T n
Tk+1
k
k1
h2

(7.4.1)

n+1
n
k-1

k k+1

condicion de borde

El problema adimensionalizado
anterior se puede escribir en forma
discreta en la forma

condicion de borde

7.4.

que conduce a
condicion inicial

n
n
Tkn+1 = r Tk1
+ (1 2r) Tkn + r Tk+1
(7.4.2)
donde r = h2 . Esta forma de integrar puede dar buenos resultados. En la lite-

no diverge. Sin
ratura se ha demostrado que si 0 < r < 12 esta regla de iteracion
embargo dentro del rango permitido no da resultados muy precisos salvo que
es decir, la integracion

pero esto implica pequeno,


r sea bastante pequeno,
no puede avanzar mucho en el tiempo.
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

107

7.4.1. Condiciones de borde rgidas


(7.4.2) con condiciones de borde rgidas es trivial ya que
La integracion

basta con usar la formula


iterativa (7.4.2) sucesivamente con n = 1, n = 2 . . .
recorriendo cada vez de k = 1 hasta k = N 1.

7.4.2. Condiciones de borde con derivada


Puede haber varias condiciones de borde con derivada. Algunas son:

T
=0
n

borde aislante perfecto

(7.4.3)

de energa, que
o bien un borde que tiene asociada una tasa de absorcion
en cada punta es
adimensionalizado esta condicion




T
T
= (T Tb ) ,
= (T Tb)
(7.4.4)
x izq
x der
se podra discretizar en la forma
Esta ultima

condicion
T1n T0n
= (T0n Tb )
h

(7.4.5)

pero lo que conviene hacer es agregar un punto ficticio k = 1 e imponer


n
T1n T1
= (T0n Tb )
2h

(7.4.6)

en un caso concreto.
Este metodo
se usa a continuacion

Veamos la forma de integrar con el metodo


explcito el problema

T
2T
=
t
x2
T (0, x) = 1
T (t, x = 0) = T
T (t, x = 1) = T

(7.4.7)
(7.4.8)

El ultimo

par de condiciones se refiere a una vara que esta radiando por ambas

puntas. Al discretizar usando el metodo


explcito se obtiene

n
n
Tkn+1 = Tkn + r Tk+1
2 Tkn + Tk1
(7.4.9)
de borde es escrita
y la condicion

n
T1n T1
= T0n
2h

Universidad de Chile

(7.4.10)
Escuela de Ingeniera y Ciencias


7.5. EL METODO
TRIDIAGONAL

Ecs. diferemciales parabolicas

de iteracion
en k = 0 es
Por otro lado la ecuacion
n
T0n+1 = T0n + r T1n 2 T0n + T1

(7.4.11)

n entre las dos ultimas


Eliminando T1

relaciones se obtiene

T0n+1 = T0n + 2r (T1n (1 + h) T0n )

(7.4.12)

en el borde izquierdo. Una condicion


similar se
Esta es la regla de iteracion
obtiene en el borde derecho

n
(7.4.13)
TNn+1 = TNn + 2r TN1
(1 + h) TNn

7.5.
7.5.1.

El metodo
tridiagonal
de calor
La ecuacion

Se propone resolver el problema

T
2T
=
t
x2
con las condiciones de borde rgidas que por el momento se pueden tomar
T (t, 0) = Tizq ,

T (t, 1) = Tder

T (0, x) = g(x)

con g(0) = Tizq ,

g(1) = Tder

(7.5.1)

inicial dada.
y g(x) es alguna condicion
En forma discreta las condiciones de borde son
T0n = Tizq ,

n
TN+1
= Tder

(7.5.2)

inicial es la funcion
g(x) que se abreviara,
en notacion
discreta,
y la condicion
como gk ,
Tk0 = gk , con g0 = Tizq , gN+1 = Tder
(7.5.3)
de calor discretizada puede ser escrita como
La ecuacion
"
#
 n
n+1
n+1
n+1
n 
2Tkn + Tk1
Tkn+1 Tkn
a Tk+1 2Tk + Tk1
2 a Tk+1
=
+

2
h2
2
h2

(7.5.4)

donde 1 k N, lo que implica que en particular son necesarios los valores

T0 y TN+1 . Estos dos valores no son incognitas


sino los datos que definen las
condiciones de borde rgidas (7.5.2).

Escogiendo a = 0 se tiene un metodo


explcito y queda excluido en el

contexto actual. El caso a = 1 conduce al metodo


conocido como de Crank
Nicolson y con a = 2 se lo llama el metodo
implcito, pero a puede tomar un
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

109

continuo de valores. El caso a = 1 de Crank-Nicolson es especial porque corresponde a


 1

n i
T n+ 2 1 h 2 n+1
=
T k + 2 T k
t k
2

(7.5.4) puede ser reescrita como


La ecuacion

n+1
n+1
n
n
ar Tk1
+2(1+ar)Tkn+1 ar Tk+1
= (2a) rTk1
+2(1(2a) r)Tkn +(2a) rTk+1
(7.5.5)
Este es un problema en que se debe obtener los T n+1 suponiendo que se
anterior puede ser vista de la forma
conoce los T n . La ecuacion
0
+
A
k k1 + Ak k + Ak k+1 = bk

0
De arriba se ve que k = Tkn+1 , A+
k = ar, Ak = 2 (1 + ar), Ak = ar mientras
que
n
n
bnk = (2 a) rTk1
+ 2(1 (2 a) r) Tkn + (2 a) rTk+1
(7.5.6)

que es un valor conocido cuando se esta por obtener los Tkn+1 .


en general, el problema es resolver un problema de la forma
Mas
M~ = ~b
donde M es una matriz rectangular tridiagonal:

A1 A01
A+
0
..
1

0
A
A02
A+
0
2
2

0
0
A
A03
A+
3
3

M=

0
0
0

0
0
..
..
..

0
0
..
0

(7.5.7)

0
0
0
0
..
A
N

0
A0N

A+
N

Se ve que M tiene N + 2 columnas (numeradas del 0 al N + 1) y N filas. Esta


matriz multiplica al vector ~ = {0 , 1 , ..., N , N+1 } donde las componentes 0
definidas por las condiciones rgidas. El vector ~b tiene N comy N+1 estan
(7.5.7) conduce, entonces a N ecuaciones para las N
ponentes. La ecuacion
~ = {1 , ..., N }. Este problema es identico

incognitas
al problema

)1
A
1 0 + (A~

b1

(A~ )k
(A~ )N + A+
N N+1

=
=

bk
bN

Universidad de Chile

2 k N1

(A~ )1 = b1 A
1 0

(7.5.8)
(A~ )N = bN A+

N N+1
Escuela de Ingeniera y Ciencias


7.5. EL METODO
TRIDIAGONAL

Ecs. diferemciales parabolicas

donde A es una matriz tridiagonal de N N. De esta manera el problema se

reduce autenticamente
el de una matriz cuadrada tridiagonal A de N N y un
~

vector b modificado por las condiciones de borde:


A~ = ~b

formal es
cuya solucion

~ = A1~b

(7.5.9)

Notese
que si se tuviera que 0 = N+1 = 0 el problema descrito en (7.5.8)
es sencillamente
A~ = ~b
con el vector ~b original.

7.5.2.

El algoritmo

se usa para resolver ecuaciones


El metodo
que se explica a continuacion

parabolicas
lineales.

Se plantea resolver para ~ la ecuacion


A ~ = ~b

(7.5.10)

donde A es una matriz de N N tridiagonal, es decir, (7.5.10) es

= 1, . . . , N
k
0
+

=
U0
A
+
A
+
A
=
b
con
k
k k
k k1
k k+1
0
N+1 = U1

(7.5.11)

anterior el rango de k es de 1 a N, los


Se destaca que si bien en la ecuacion
definidos tambien
con k = 0 y k = N + 1. El problema que se plantea
k estan
implica, de alguna forma, invertir la matriz A. Se va a encontrar un algoritmo
que permite encontrar ~ en pocos pasos.

de
Ecuaciones lineales de recurrencia como estas siempre tienen solucion
la forma
(7.5.12)
k+1 = k k + k
Reemplazando este k+1 en (7.5.11) se obtiene
0

A+
k (k k + k ) + Ak k + Ak k1 = bk

que lleva a

k =

A
b k A+
k
k k
+

k1
+
+
0
Ak k + Ak
Ak k + A0k

que tiene la forma de (7.5.12) y por lo tanto se debe identificar

de 14 de julio de 2009
version

k1

k1

A
k
+
Ak k + A0k
b k A+
k k
+
Ak k + A0k

(7.5.13)
(7.5.14)

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

111

que son ecuaciones de recurrencia para los k y k .


Para que todo sea consistente se debe cuidar los puntos del borde. La
(7.5.11) para k = N debe coincidir con (7.5.12) con k = N 1. Pero
ecuacion
ellas son
0

A+
N U1 + A1 N + AN N1 = bN ,

N = N1 N1 + N1

(7.5.15)

+
0
0

Comparandolas
se obtiene N1 = A
N /AN y N1 = (bN AN U1 )/AN . Si se
compara estos ultimos

resultados con las relaciones de recurrencia (7.5.13) y


(7.5.14) con k = N se ve que necesariamente

N = 0 ,

N = U1 N+1

(7.5.16)

Con este resultado las ecuaciones (7.5.13) y (7.5.14) permiten obtener to se obtiene todos los k directamente con
dos los k y k . Con tal informacion
(7.5.12). Se debe notar que el primer paso es aplicar (7.5.12) con k = 1 y en
ese primer paso se necesita usar 0 = U0 .

de calor con conductividad variable


7.5.3. Ecuacion
de calor en espacio unidimensional para T (t, x) es
La ecuacion


T

T
=
K(x)
t
x
x
=

dK T
2T
+K 2
dx x
x

(7.5.17)

Y se escoge discretizar con igual peso en los instante n + 1 y n


Tkn+1 Tkn
=
"
#
n+1
n+1
n+1
n+1
Tk+1
2Tkn+1 + Tk1
1 Kk+1 Kk1 Tk+1 Tk1
+ Kk
2
2h
2h
h2

n 
n Tn
T n 2Tkn + Tk1
1 Kk+1 Kk1 Tk+1
k1
+ Kk k+1
+
2
2h
2h
h2

(7.5.18)

puede ser llevada a la forma


Definiendo r /h2 la ecuacion
n+1
n+1
r(Kk+1 4Kk Kk1 ) Tk1
+ 8(1 + rKk ) Tkn+1 + r(Kk+1 4Kk + Kk1 ) Tk+1
= Bnk

donde
n
n
Bnk = r(Kk+1 + 4Kk + Kk1 ) Tk1
+ 8(1 rKk) Tkn + r(Kk+1 + 4Kk Kk1 ) Tk+1

(hay que revisar cada factor y cada signo!)


Universidad de Chile

Escuela de Ingeniera y Ciencias


7.5. EL METODO
TRIDIAGONAL

Ecs. diferemciales parabolicas

7.5.4.

El caso con condiciones periodicas

de calor vuelve a ser


La ecuacion
n+1
n+1
n
n
ar Tk1
+ 2(1 + ar)Tkn+1 ar Tk+1
= (2 a) rTk1
+ 2(1 (2 a) r)Tkn + (2 a) rTk+1
(7.5.19)

pero esta vez el ndice espacial k toma valores de 1 a N por lo que, donde dice
n
n
Tk debe entenderse T1+(k1
, esto es TN+1
T1n y T0n TNn .
mod N)

en general, se debe enfrentar un problema de la forma


Mas
M~ = ~b

Mi j j = bi

donde la matriz M es de N N y tiene la forma


0
A1
A+
0
..
0
1


A
A02
A+
0
..
2
2

0
A
A03
A+
3
3

M=

0
0

0
..
0
A
A0N1
N1

A+
0
..
0
A
N
N

(7.5.20)

A
1
0
0
0
A+
N1
A0N

(7.5.21)

Tiene no nulas las tres diaginales centrales y dos elementos de vertice,


esto

es, M se puede escribir como una matriz tridiagonal mas valores en los vertices:
+
Mi j = A i j + A
(7.5.22)
1 i1 jN + AN iN 1 j

Si se definen los vectores ~u = {a, 0, ..,0, b} y ~v = {c, 0, .., 0, d}, esto es ui = ai1 +
biN y v j = c j1 + d jN , se obtiene que ui v j = aci1 1 j + ad i1 N j + bciN 1 j +
+
bd iN N j . Se necesita que ad = A
1 y que bc = AN . La matriz M escrita como
una matriz ~u ~v cuyos unicos
una nueva matriz tridiagonal A mas

elementos
en los cuatro vertices,

no nulos estan
M = A +~u ~v
donde A difiere de A tan solo en sus elementos 1, 1 y N, N de lal manera que
se cumpla que
+
u ~v]i j
A i j + A
1 i1 jN + AN iN 1 j = Ai j + [~

Los valores de a y b quedan indeterminados como se ilustra en crank cicl.mws.


Se vera que la respuesta al problema (7.5.20) se obtiene resolviendo dos

problemas tridiagonales estandar


para vectores auxiliares ~ y ~ ,
A~ = ~b ,
de 14 de julio de 2009
version

A~ = ~u

(7.5.23)

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

es
y la solucion

Metodos
Computacionales en Fsica

~
~ = ~ ~v ~
1 +~v ~

113

(7.5.24)

como se comprueba a continuacion.


Primero se multiplica el lado derecho de (7.5.24) por la matriz A lo que da
bi

vk k ui
1 + v n n

(7.5.25)

de ~u ~v sobre el lado derecho de (7.5.24) da


y segundo, la accion
ui v j j

v j j + v j j vn n vk k v j j
v j j
vk k
ui v j j = ui
= ui
1 + v n n
1 + v n n
1 + v n n

(7.5.26)

Sumando (7.5.25) y (7.5.26) efectivamente se obtiene bi .


En resumen, para resolver el problema M~ = ~b con M de la forma (7.5.21)

se definen ~u = {a, 0, .., 0, b} y ~v = {A+


N /b, 0, ..,0, A1 /a} y se resuelven los problemas
A~ = ~b ,
A~ = ~u
(7.5.27)
es
La solucion

~
~ = ~ ~v ~
1 +~v ~

(7.5.28)

donde
+

A11
ANN

aA
= A 11 N
b

bA
= A NN 1
a

mientras el resto de la matriz tridiagonal queda igual. Desde el punto de vista


~ no depende de los valores escogidos a y b, pero numeri
analtico, la solucion
sea optima.

camente se deben escoger con cuidado para que la precision

7.6.

Metodo
implcito

Se considerara la ecuacion

2
+ S(x,t)
=
t
x2
(t, 0) = a ,
(t, 1) = b
(0, x) = f (x)
Universidad de Chile

(7.6.1)

Escuela de Ingeniera y Ciencias


7.6. METODO
IMPLICITO

Ecs. diferemciales parabolicas

(7.6.1) se discretiza ahora en la forma


La ecuacion
n+1
n+1
2kn+1 + k1
kn+1 kn k+1
=
+ Skn

h2
que corresponde a escoger a = 2 en (7.5.4) y arroja

1
n+1
n+1
kn+1 = kn + 2 k+1
+ Skn
2kn+1 + k1
h
{z
}
|

(7.6.2)

(7.6.3)

H ~

Estabilidad:

anterior se escribe en forma vectorial


La ecuacion

que formalmente es

~ n+1 = ~ n H ~ n+1 + ~Sn

(7.6.4)



~ n+1 = (1 + H)1 ~ n + ~Sn

(7.6.5)

discreta de x2 , sus autovalores E son posiPuesto que H es la version


2

tivos implicando que los autovalores de (1 + H)1 son


1
1 + E

que necesariamente son menores que la unidad si > 0. Esto asegura que el

metodo
es estable.

numerica:

Integracion
Para integrar el problema (7.6.3) se utiliza un meto
do tridiagonal semejante al descrito en sec.7.5.1 usando a = 2. La ecuacion

discreta puede ser puesta en la forma estandar


n+1
n+1
+ (1 + 2r) kn+1 r k1
= kn + Skn
r k+1

(7.6.6)

que tiene forma tridiagonal con coeficientes A que no dependen de k


A+ = r

A = r

A0 = 1 + 2r

bnk = kn + Skn

(7.6.7)

Las condiciones de borde e inicial son

k0

= fk ,

con

0n = a ,

0
N+1
=b

(7.6.8)

f0 = a ,

fN+1 = b

(7.6.9)

de calor el problema se resuelve por


Tal como en el caso de la ecuacion
medio de
n+1
kn+1 = k k+1
+ kn
(7.6.10)
Para comenzar, se sabe que 0 = 0 y se puede obtener todos los k de una
sola vez.
De 0n = a se determina que 0n = a y de 00 = 0 se construye el resto de los
k0 . Con estos ultimos

y (7.6.10) se obtiene los k1 , etc.


de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

7.7.

115

Un caso parabolico
en 1+2 dimensiones

se comenta brevemente una forma de integrar una ecuacion

A continuacion

parabolica
en (t, x, y) de la forma

F
= ~u F + 2 F
t

(7.7.1)

Paso 1: En un primer paso se calcula los F n+ 2 a partir de los F n planteando

un problema tridiagonal en el ndice i, mientras que en j el metodo


es explcito.
n+ 12

Fi, j

Fi,nj

n+ 1

u1

n+ 1

Fi+1,2j Fi1,2j
2h

u2

n+ 1
n+ 1
Fi+1,2j 2Fi, j 2

+
h2

Fi,nj+1 Fi,nj1
2h

n+ 1
+ Fi1,2j

Fi,nj+1 2Fi,nj + Fi,nj1


h2

(7.7.2)

Paso 2: En un segundo paso se calcula los F n+1 a partir de los F n+ 2 plan


teando un problema tridiagonal en el ndice j, mientras que en i el metodo
es
explcito.
=

n+ 1

n+ 1

n+ 21

Fi,n+1
j Fi, j

u1

Fi+1,2j Fi1,2j
2h

u2

n+ 1
n+ 1
Fi+1,2j 2Fi, j 2

+
h2

n+1
Fi,n+1
j+1 Fi, j1

n+ 1
+ Fi1,2j

2h

n+1
n+1
Fi,n+1
j+1 2Fi, j + Fi, j1

h2

(7.7.3)

Este metodo
puede ser aplicado, por ejemplo, a las ecuaciones de fluidos
incompresibles vistas en el captulo anterior. Sera especialmente sencillo en

el caso de un flujo con obstaculo,


sin gravedad y paredes laterales rgidas.

7.8.

Dos metodos
adicionales

7.8.1. Metodo
de Richtmayer

Se estudia resolver ecuacion

U
2U m
=
t
x2

m entero, m 2

del metodo

Se hace la siguiente deduccion


Ukn+1 Ukn

Universidad de Chile

2 (U m )n+1
+ (1 )2 (U m )nk
k
h2

(7.8.1)

Escuela de Ingeniera y Ciencias


7.8. DOS METODOS
ADICIONALES

Ecs. diferemciales parabolicas

pero


U m n
=
t k
 


U m n U n
m n
= (U )k +
u k t k

n
m n
= (U )k + m U m1 k Ukn+1 Ukn
(U m )nk +

(U m )n+1
k

(7.8.2)

que se reemplaza en (7.8.1) usando la notacion


k Ukn+1 Ukn
lo que da

i
o
n
1 h
m,n
m1,n
m,n
+
(1

U
+
mU

2
2
k
k
k
k
h2
i
n
o
1 h
=
m 2 Ukm1,n k + 2Ukm,n
h2
i
o
1 h n m1,n
m,n
m,n
m1,n
=
m Uk+1 k+1 2Ukm1,nk + Uk1
2Ukm,n + Uk1
k1 + Uk+1
2
h
convierte al problema en uno tridiagonal.
La ultima

expresion
k

7.8.2.

Metodo
de Lees

El metodo
de Lees (M.Lees, Math. Comp. 20 516 (1966)) ataca las ecua
ciones parabolicas
de la forma


U

U
b(U)
a(U)
,
a(U) > 0 , b(U) > 0
=
t
x
x
La derivada espacial se aborda en la forma
n
n
Ukn Uk+
1 U
k 1
2

se discretiza
La ecuacion
o
1
1 n  n
n
{ank Ukn } = 2 ank Uk+
1
1 U
k 2
h
h
2

i
1 h n
n
n
n
n
n
=
ak+ 1 Uk+1 Uk ak 1 Uk Uk1
(7.8.3)
2
h
2
2
es inestable si a = b = 1. Ademas,
hasta aqu, es explcito. La
Esta expresion
estabilidad se resuelve si se hace los reemplazos que siguen, los que convierten al problema en uno que ya no es explcito,

1
k = k + 1, k, k 1
Ukn
Ukn+1 + Ukn + Ukn1
3
bnk

Ukn+1 Ukn1
2


1 n
ak+1 + ank
2
2
Con lo cual el problema es tridiagonal.
ank+ 1

de 14 de julio de 2009
version

ank 1
2


1 n
ak + ank1
2

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

7.9.

117

de Schrodinger

Ecuacion
dependiente del tiempo

7.9.1. Usando el metodo


de Crank Nicolson

Se estudiara un metodo
para integrar (7.2.4) con el metodo
de Crank Ni
colson. En el caso actual este
se plantea en la forma

i 
n+1 n
= H n+1 + H n

(7.9.1)

i
i
H n+1 = n H n
2
2

(7.9.2)

que se puede reordenar en la forma

n+1 +
o bien

n+1 =

1 i2 H

1 + i2 H

(7.9.3)

Este metodo
es bueno porque el operador que actua sobre n tiene la
1iz
forma F = 1+iz y |F| = 1, lo que garantiza que se preserva la norma de en su
temporal. Tambien
se observa que
evolucion
2
1 iz
=
1
1 + iz 1 + iz
y basado en esto se escribe

donde se ha definido,

n+1

"

2
1 + i2 H

1 n = n



i
1 + H = 2 n
2

(7.9.4)

(7.9.5)

bien su version
discreta,
Se quiere resolver (7.9.5), o mas


i
k+1 2k + k1
n
k +

+
V
k k = 2 k
2
h2
que se reescribe como


2ih2
4h2 n
2
k+1 + 2 +
h Vk k + k1 =

i k

(7.9.6)

que es un problema tridiagonal y, por lo tanto, en principio ya se sabe resolver.


Una vez que se obtiene , se inserta en (7.9.4) y de ah se sigue. Se ha

demostrado que este metodo


es estable.
Universidad de Chile

Escuela de Ingeniera y Ciencias

DE SCHRODINGER

7.9. ECUACION
DEPENDIENTE DEL TIEMPO

Ecs. diferemciales parabolicas

7.9.2.

El metodo
explcito de Visscher

Este metodo
aparecio presentado en Computational Physics, 5 596 (1991).
de onda en sus partes real e imaginaria,
La idea es separar a la funcion

= R + i I
de Schrodinger

que lleva a escribir la ecuacion


como un par de ecuaciones
reales,
(7.9.7)
R = H I ,
I = H R

que se discretizan evaluando a R en tiempos enteros Rn y la parte imaginaria


en tiempos semienteros
n+ 21

Rn Rn1
n 1
= H I 2 ,

y se despeja
n 21

Rn = Rn1 + H I

n+ 21

n 21

n 21

= I

= H Rn

(7.9.8)

H Rn

(7.9.9)

Con estas ecuaciones se itera en forma explcita. Antes, claro, se debe usar
que


fk+1 + fk1
2
fk+1 2 fk + fk1
(7.9.10)
+ Vk fk =
+ Vk + 2 fk
H f =
h2
h2
h
de la norma
Conservacion
de onda se conserva en el tiempo.
Se vera que la norma de la funcion
Para ello primero se define la densidad de probabilidad en tiempos enteros y
semienteros,

2
n+ 21 n 21
n+ 21
n 2
n+ 21
n+1 n
n
P
(7.9.11)
= R R + I
P = ( R ) + I I ,
se calculara la diferencia entre es estas dos densidades y fiA continuacion
nalmente se va a demostrar que al sumar sobre k (integrar sobre x) se obtiene
cero.



2


n+ 21
n+ 21
n+ 21
n+ 21
n+ 21
n
n
n 2
n
n
=P
R + H I
R + I
I + H R
(R ) I
P =


n+ 1
n+ 1
= Rn H I 2 I 2 H Rn
(7.9.12)
se obtiene que la contribucion
de V
Al reemplazar H en la ultima

expresion
de d 2 /dx2 es menos trivial. Se escribe
se anula trivialmente. La contribucion
omitiendo los ndices de tiempo que ya se sabe cuanto valen para R y I ,

= 2 (R k {I k+1 2I k + I k1 } I k {R k+1 2R k + R k1})


h
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

119

ver que hay terminos

y es facil
que por pares se cancelan, por ejemplo

R k I k+1 I k R k1 = 0
k

de terminos

Podra haber contribucion


de borde, pero en los bordes la funcion

de ondaR es nula. Habiendose


obtenido cero al sumar sobre k, se ha demostrado que | |2 dx no cambia en el tiempo y por lo tanto la norma se preserva.
Estabilidad

El analisis
de estabilidad se hara en forma bastante limitada y a pesar
de ellos la experiencia muestra que da criterios que funcionan. Se comienza
replanteando las ecuaciones (7.9.9) en forma matricial,
Rn

n1/2

1
0

H
1

Rn1
n1/2
I

Rn1
n1/2
I

1
H

0
1

Rn1
n3/2
I

A H y las dos ecuaciones


En los pasos que sigue se usa la abreviacion
anteriores se pueden escribir como una sola,
!
 


Rn
Rn1
1 A2 A
=
n1/2
n3/2
A
1
I
I
tiene una estrutura del tipo n = M n1 de tal modo que tamEsta ecuacion

con esta estructura


bien puede verse como n = M n 0 . Un metodo
de iteracion

explota si al menos uno de los autovalores de M tiene modulo


mayor que 1 y

produce una funcion nula si el mayor autovalor es menor que 1. Para que el

metodo
funcione es necesario que los autovalores tengan modulo
1.
matriz de arriba son
Los autovalores de la ecuacion
A2 A p 2

= 1
A 4
2
2

(7.9.13)

Si |A| > 2 la primera parte 1 A2 /2 es menor que 1 y por lo tanto < 1


lo que es inaceptable.
Si |A| 2 los autovalores se pueden escribir en la forma

= 1

A2 i A p
4 A2

2
2

(7.9.14)

y trivialmente se comprueba que | | = 1 que es lo que se necesita para la


estabilidad. Ahora se vera las implicasiones que tiene esto sobre los valores
de y h.
Con este objetivo se usara un potencial esencialmente plano, Vk = V0 y
funciones de onda estacionarias planas,

= T (t) ei
Universidad de Chile

k
N

Escuela de Ingeniera y Ciencias

DE SCHRODINGER

7.9. ECUACION
DEPENDIENTE DEL TIEMPO

Ecs. diferenciales hiperbolicas

de H sobre da
La accion
#
"
(k+1)
(k1)
k
ei N 2 ei N + ei N
i Nk
+ V0 e
H = T
h2

El numerador del primer termino


se puede escribir,

 k

ei N 2 + ei N ei N
lo que muestra que los autovalores son
E =
y entonces
A=

 k

2
ei 2N ei 2N ei N
  k
= 4 sin2
ei N
2N



4
2
+ V0
sin
h2
2N

4 2  
+ V0
sin
h2
2N

Los valores extremos que toma A son V0 y V0 + 4h2 lo que lleva a


2 < V0 < 2

2 < V0 +

y tambien

4
<2
h2

exigentes se obtiene
Escogiendo las mas
2 < V0 < 2

de 14 de julio de 2009
version

4
h2

(7.9.15)

Facultad de Ciencias Fsicas y Matematicas

Captulo 8

Ecuaciones hiperbolicas

Las ecuaciones hiperbolicas


requieren de metodos
especiales por contenida en las condiciones iniciales y las conque la informacion
diciones de borde normalmente no pueden alcanzar a todo el do La influencia de tales condiciones impuestas
minio de integracion.
se propaga a lo largo de las llamadas curvas caractersticas y es

correcto sin tomar en cuenta


difcil lograr un metodo
de integracion
en la debida forma. Es probable que solo
cuando las
esta limitacion
caractersticas son lneas rectas un programador inadvertido puede

dar con una forma satisfactoria de integrar ecuaciones hiperbolicas.


comprender el papel jugado por las caractersticas
Para hacer facil

es conveniente comenzar estudiando un problema analogo


que se
presenta con ecuaciones de primer orden.
Referencia: G.D. Smith, Numerical Solution of Partial Differencial
Equations: Finite Difference Methods, Clarendon Press, Oxford, third
edition, 1984.

8.1.

Ecuaciones de primer orden

Consideremos la ecuacion
a

U
U
+b
=c
x
y

(8.1.1)

donde a, b y c pueden ser funciones de (x, y,U). Se va a ver que en cada punto
pasa una curva C a lo largo de la cual hay que resolver
del dominio de solucion
diferencial ordinaria.
una ecuacion

Se usara la notacion,
p

U
x

q
121

U
y

(8.1.2)


Ecs. diferenciales hiperbolicas

8.1. ECUACIONES DE PRIMER ORDEN

la ecuacion
original es
Con esta notacion
a p + bq = c

(8.1.3)

desplazamiento produce un cambio en el valor de U


Un pequeno
dU = p dx + q dy
pero de (8.1.3) se sabe que p =

cb q
a

dU =

lo que da

c bq
dx + q dy
a

que se reordena como


q (a dy b dx) + c dx a dU = 0

(8.1.4)

anterior es independiente de p = Ux porque a, b y c solo dependen


La ecuacion
(8.1.4) se hace independiente de q si se escoge que dx y
de (x, y,U). Ademas
dy no sean independientes, es decir, si se define que el desplazamiento sea a
lo largo de una curva C cuya pendiente satisface
a dy b dx = 0

(8.1.5)

c dx a dU = 0

(8.1.6)

con lo que (8.1.4) se reduce a

para C y (8.1.6) es una ecuacion


para U
y se ve que (8.1.5) es una ecuacion

sobre C. Notese
que ellas se pueden resumir en
dx dy dU
=
=
a
b
c

(8.1.7)

para la caracterstica mienDe esta igualdad doble, la primera es la ecuacion


tras que la igualdad del ultimo

miembro con cualquiera de las primeras es la


para U sobre C. Planteada la ecuacion
de la caracterstica en la forecuacion
ma (8.1.5) pareciera que se debe obtener x(y) o bien y(x), sin embargo puede
univaluada. Es
ocurrir que ninguna de las dos formas pueda dar una funcion
general plantear (8.1.5) como una ecuacion
en terminos

mas
de un parametros,
dx
dy
= a,
=b
(8.1.8)
ds
ds
para la funcion
U sobre la caracterstica es
La ecuacion
dU
=c
ds
de 14 de julio de 2009
version

(8.1.9)

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

123

Todo lo anterior puede ser planteado de otra forma. Se plantea escribir


original (8.1.1) sobre una curva parametrizada por un parametro

la ecuacion
x = s. Sobre la curva se tiene que
dx U dy U
dU
=
+
ds
ds x ds y

(8.1.10)

y se escoge que la curva sea tal que el lado izquierdo de (8.1.1) coincida con
dU/ds, es decir, se exige (8.1.8) y por lo tanto dU/ds = c.

8.1.1. Ejemplos para ilustrar los conceptos basicos


Ejemplo muy sencillo

Se considera la ecuacion
y

U U
+
=2
x
y

(8.1.11)

U(0 x 1, y = 0) = (x)
se tiene a = y, b = 1 y c = 2 por lo que las ecuaciones paEn esta ecuacion

rametricas
para las caractersticas son

Se resuelve la segunda escogiendo y(0) = 0 lo que da


se
y = s. La primera ecuacion
convierte en dx/ds = s que da
x(s) = s2 /2 + xR , es decir x =
1 2
2 y + xR lo que permite escribir
de las caracterstila ecuacion
cas,
y2 = 2 x 2 xR

(8.1.13)

dx
= y(s) ,
ds

dy
=1
ds

(8.1.12)

2.5
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-2.5

estas son parabolas


con el eje
0
0.5
1
1.5
2
2.5
X
X como eje de simetra parametrizadas por xR , que es el

punto sobre el eje X por el que pasa la parabola


descrita en (8.1.13).

Para los propositos


del problema planteado se necesita solo las parabolas
para
las que
0 xR 1
Universidad de Chile

Escuela de Ingeniera y Ciencias


Ecs. diferenciales hiperbolicas

8.1. ECUACIONES DE PRIMER ORDEN

De (8.1.9) se desprende que dy = dU/2, que implica U = 2 y + UR, pero como


U(xR , 0) = (xR ) entonces UR = (xR ). De (8.1.13) formalmente se despeja que
xR = 21 (2 x y2) lo que finalmente permite escribir


y2
U(x, y) = 2 y + x
2

anterior es constante a lo largo de cada caracEl termino


en la expresion
es correcta notamos que
tarstica. Para verificar que esta solucion

U
=
x

U
= 2 y
y

donde la prima indica la derivada de con respecto a su argumento.

En resumen, lo que se ha logrado es determinar el valor de la funcion

U(x, y) en el dominio comprendido entre las dos parabolas


[y2 = 2 x; y2 =

inicial da2 (x 1)]. El metodo


analtico debiera dejar claro que con la condicion
U fuera del dominio descrito. Un metodo

da no es posible conocer a la funcion

haciendo un reticulado
numerico
ingenuo podra intentar integrar la ecuacion
rectangular regular con celdas de (hx hy ) en el plano (x, y), lo que llevara a
incorrecta tan pronto el incremento hy sobrepase el valor hyx .
una solucion
elaborado
Ejemplo algo mas

Se busca integrar la ecuacion

U
U
+U
x
y

U 2

U(x = 0, y > 0) = u + ey

con

U(x > 0, y = 0) =

2
1+x

(8.1.14)

las ecuaciones para las caractersticas son


dx
= 1,
ds

dy
=U
ds

(8.1.15)

para U sobre las caractersticas es


y la ecuacion
dU
= U 2
ds

(8.1.16)

La primera de las ecuaciones (8.1.15) permite escoger la parametrizacion


s = x. De (8.1.16) se obtiene inmediatamente que
U(x, y) =

1
A(x, y) + x

(8.1.17)

pero aun se debe determinar A(x, y), que es constante a lo largo de cada caracterstica, pero que depende de x e y.
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

125

La segunda de las ecuaciones (8.1.15), y (8.1.17) se obtiene que sobre la


caracterstica
dx
dy =
A(x, y) + x
que se puede resolver de dos maneras equivalentes. La primera es directa y
da
A(x, y) + x
y = yR + ln
(8.1.18)
A(x, y)
Si de aqu se despeja x da x = A(eyyR 1). Definiendo x0 x(y = 0) se despeja
yR = ln((A + x0)/A) que finalmente da
x = A(x, y) (ey 1) + x0 ey

(8.1.19)

Estas dos formas equivalentes que definen a las caractersticas. La primera


forma es util
para describir las caracterstica que nacen en (x = 0, yR ) y la segunda para las que nacen de (x0 , y = 0). Se comprobara que en el primer caso
0
se debe tomar A(0, yR ) = 1/(u + eyR ) y en el segundo caso A(x0 , 0) = 1x
2 .
de borde: Se usa U = 1/(A + x) en x = 0
A partir de la primera condicion

junto a la condicion de borde en x = 0, lo que permite deducir que A = 1/(u +


eyR ), valor que se reemplaza en (8.1.18) para despejar formalmente que
yR = ln

ey x
1 + ux

caracteristicas
4
3.5

permite escriEsta expresion


de (x, y), lo
bir A como funcion
que lleva a

3
y

2.5

u + ey
U(x, y) =
1 + ux
En este caso las caractersticas son parametrizadas por
el punto yR > 0 del que nacen
sobre el eje Y y se definen por

ycarac = yR +ln 1 + (u + eyR ) x

2
1.5
1
0.5
0
0

10

x
Aqu se dibujan caractersticas pertenecientes a las dos
familias del ejemplo.

de borde: Se usa U = 1/(A + x) en y = 0


A partir de la segunda condicion
de borde en y = 0, lo que permite deducir que A = (1x0 )/2,
junto a la condicion
valor que se reemplaza en (8.1.19) para despejar formalmente que
x0 =
Universidad de Chile

1 + 2x ey
1 + ey
Escuela de Ingeniera y Ciencias


Ecs. diferenciales hiperbolicas

8.1. ECUACIONES DE PRIMER ORDEN

permite escribir A como funcion


de (x, y), lo que lleva a
Esta expresion
U(x, y) =

1 + ey
1+x

En este segundo caso las caractersticas, parametrizadas por el punto x0 en


que nacen sobre el eje X satisfacen


1 + 2x x0
ycarac = ln
1 + x0
Comparando ambas familias de caractersticas se ve que si u < 1 hay inter multivaluada. Si u > 1
secciones de caractersticas lo que implica una solucion
queda una zona del plano XY por la que no pasa caracterstica alguna. En esa
El caso u = 1 es totalmente
zona del plano no se puede definir una solucion.
coherente.

numerica

Integracion
a lo largo de una caracterstica

8.1.2.

numerica

La integracion
general debe simultaneamente
encontrar la forma
U sobre ella.
de la caracterstica como la funcion
Supongamos que se nos ha dado los valores de U sobre una curva (que
no puede ser una caracterstica). Sea P un punto sobre : P = (xP , yP ) y
sea C la caracterstica que pasa por P. Al punto P se le asocia s = 0.
Para integrar se escoge un pa
so h para el parametro
s. Las
ecuaciones (8.1.8) y (8.1.9) al
bajo orden se pueden escrimas
bir

C
R

(1)

xR xP
h
(1)
yR yP
h
(1)
UR UP
h

= aP
(8.1.20)

= bP

= cP

de las que se obtiene trivialmente las tres cantidades de or(1) (1)


(1)
den 1, (xR , yR ,UR ). Estos tres
valores permiten calcular valores
(1) (1) (1)
(aR , bR , cR ).

La curva corta a la caracterstica C en P = (xP ,yP ).


Otro punto cercano sobre C es R = (xR ,yR ).

A continuacion
las mismas
ecuaciones se escriben
(n+1)

xR

xP

(n)

de 14 de julio de 2009
version

aP + aR
,
2

(n+1)

yR

yP

(n)

bP + bR
,
2

(n+1)

UR

UP

(n)

cP + cR
2
(8.1.21)

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

127

Las que se iteran desde n = 1 hasta el orden que se considere necesario.


Una vez que se tiene el valor aceptado para (xR , yR ,UR ) que corresponde
a s = h se procede a usar estos valores para avanzar, sobre la misma caracterstica hasta un punto que corresponde a s = 2h. El procedimiento es el
mismo. De esta manera se logra obtener toda la caracterstica que nace en P
y todos los valores de U sobre esa caracterstica.

Usando el metodo
anterior integrar
U
U
x
+U
x
y
U(x > 0, 0)

U 2

8.1.3. Sistema de ecuaciones hiperbolicas


de primer orden
~
Si se tiene el sistema de ecuaciones para U(x,t),
~
~
U
U
~ = ~F(x,t)
+ A(x,t)
+ B(x,t) U
t
x

(8.1.22)

este sistema es hiperbolico


si la matriz A es diagonalizable y sus autovalores
k son reales.
Para resolver este sistema se comienza escribiendo
~
dU

~
~
U
U
+ dt
x
t


~
U
~
~
= dx
BU
+ dt ~F A U
x
x


~
U
~
= (dx dt A)
+ dt ~F BU
x

= dx

En el primer paso se elimino la derivada parcial con respecto al tiempo. A


se encuentra la condicion
para que la derivada con respecto a x
continuacion
desaparezca. Se escribe A = P1 P, donde es una matriz diagonal
tambien
los autovalores k de A) y P es la matriz para diagonalizar
(en la diagonal estan
por P se obtiene
a A. Al multiplicar a la ecuacion
~ = (dx dt ) P
PdU
que por componentes es



~
U
~
+ dt P ~F BU
x

Pk j dU j = (dx dt k ) Pk j
Universidad de Chile

(8.1.23)

Uj
+ dt Pk j (Fj B jiUi )
x
Escuela de Ingeniera y Ciencias


Ecs. diferenciales hiperbolicas

8.1. ECUACIONES DE PRIMER ORDEN

Cada ecuacion

dx(k)
= k
dt
define una curva caracterstica Ck a lo largo de la cual se satisface
Pk j dU j = dt Pk j (Fj B jiUi )

(8.1.24)

(8.1.25)

Lo anterior se ilustra a continuacion.

8.1.4.

Fluido compresible

hay
Consideremos las ecuaciones (6.3.1) y (6.3.2) para el caso en que solo
x, los campos solo
dependen de (x,t), se desprecia el
velocidad en la direccion
termino con viscosidad ( = 0), no hay gravedad y la temperatura permanece
constante. En tal caso las ecuaciones se reducen a
v
+
=0
t
x
(8.1.26)
v
p
v

+v
=
t
x
x
de estado p = A , lo que
Adicionalmente se supone que vale la ecuacion

1
= p/ . Se define
implica que p/ = A
c2 =

dp p
=
d

(8.1.27)

que permite reescribir la segunda de las ecuaciones (8.1.26) en la forma

v
v c2
+v +
=0
t
x x

(8.1.28)

La cantidad c no es una constante; es la velocidad del sonido y depende de la


densidad.
El sistema de ecuaciones (8.1.26a) y (8.1.28) puede ser escrito como
!




v

2
+
=0
(8.1.29)
c
v
v
v
t
x

comprobar que los autovalores de la matrix son 1 = v c y 2 = v + c.


Es facil

Sin embargo, reobtendremos este resultado avanzando por un camino mas


explcito.
de ambos
Para determinar curvas caractersticas escribimos la variacion
campos en la forma dF = Fx dx + Ft dt pero inmediatamente reemplazamos Ft

arriba:
por lo que dan las ecuaciones dinamicas
que tenemos mas


2
dv = vx dx v vx + c x dt
(8.1.30)
d = x dx (vx + vx ) dt
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

129

De la segunda se obtiene que

x =

d + vx dt
dx v dt

que se reemplaza en la primera, obteniendose


i
h
(dx v dt) dv = (dx v dt)2 c2 dt 2 vx c2 d dt

(8.1.31)

es independiente de vx si
En el paso anterior se elimino x . La ultima

relacion
se haga en curvas que satisfagan
se escoge que la integracion
(dx v dt)2 = c2 dt 2

lo que se cumple en dos familias de curvas caractersticas:


dx
dt
dx
dt

v+c

curvas f

(8.1.32)

vc

curvas g

(8.1.33)

No se trata de dos curvas, sino de dos familias de curvas. Cada miembro de

estas dos familias se caracteriza por una constante de integracion.


sobre estas caractersticas reduce la ecuacion
(8.1.31) a la
La evolucion
forma

(dx v dt) dv = c2 d dt
((v c) dt v dt) dv = c2 d dt
d
dv = 0
sobre curvas f /g
c

(8.1.34)

Las ecuaciones que hay que integrar numericamente


se pueden resumir
en
dx

= (v + c) dt

con

c d + dv = 0

(8.1.35)

dx

= (v c) dt

con

c d dv = 0

(8.1.36)

definidos sobre
Los diferenciales que aparecen en estas ecuaciones estan
de la densidad
las caractersticas. Por ejemplo, en (8.1.35), d es la variacion
cuando hay un desplazamiento sobre la caracterstica f , en cambio en (8.1.36)
aparece el cambio de la densidad sobre la caracterstica g. Ambos d llevan el
mismo nombre pero son objetos diferentes.
se define un metodo

A continuacion
para integrar estas ecuaciones. Se
hara en dos etapas. En la primera etapa se define las ecuaciones
xR xP
xR xQ
Universidad de Chile

= (vP + cP) (tR tP )


= (vQ cQ ) (tR tQ )

(8.1.37)

Escuela de Ingeniera y Ciencias

Complementos personales

8.1. ECUACIONES DE PRIMER ORDEN

que permiten despejar xR y tR . Luego


las ecuaciones c d dv se discretizan,
cP (R P ) + (vR vP) P = 0
cQ (R Q ) (vR vQ ) Q = 0
(8.1.38)
que permite despejar R y vR . De R
se obtiene cR .

R
dx=(v-c)dt
dx=(v+c)dt

obtenidas
Las cantidades recien
a xR ,
son una primera aproximacion
precisa para los dos pares
tR , R y vR . Ahora se puede escribir una forma mas
de ecuaciones:
xn+1
R xP
n+1
xR xQ

= 21 (vP + vnR + cP + cnR) (tRn+1 tP )


= 12 (vQ + vnR cQ cnR ) (tRn+1 tQ )

(8.1.39)

Se usa las primeras dos ecuaciones con n = 1 para obtener valores xR y tR de


con n = 1:
segundo orden e inmediatamente se usa las otras dos, tambien
n
(cP + cnR ) (Rn+1 P ) = (vn+1
R vP ) (P + R )
n+1
n+1
n
n
(cQ + cR ) (R Q ) = (vR vQ ) (Q + R)

(8.1.40)

para obtener valores R y vR de segundo orden. Estas cuatro ecuaciones


se puede usar reiteradamente para lograr convergencia a valores finales
(xR ,tR , R , vR ).
Para integrar, entonces, se parte de la base que se tiene curvas sobre las
que se ha definido condiciones iniciales y/o de borde. Esto significa que sobre
se conoce las cuatro cantidades (x,t, , v). Se procede a marcar puntos sobre
arriba.
estas curvas, que van a jugar el papel de los puntos P y Q de mas
La forma tpica de integrar en este caso consiste en obtener toda la secuencia de puntos R a partir de puntos consecutivos de que juegan el papel de
P y Q. La secuencia de puntos R as obtenidos defininen una curva 1 . que
sera la nueva curva a partir de la cual se construira una curva 2 .
de esLa iteracion
te problema es distinta al pasar de tiem- 3
pos pares a tiempos
i1
2

impares que al reves.


En el primer caso las
0
i1
identificaciones son P = 1
,t 2 )
(x2i ,ti2 ), Q = (x2i+1
i+1
y R = (x2i +1 ,ti2 +1 ) mien- 0
0
1
tras que en el otro las
identificaciones son P =
2 1 2 1
,ti1 ), Q = (x2i 1 ,ti2 1 ) y R = (xi2 ,ti2 ).
(xi1
de 14 de julio de 2009
version

i+1
i

i+1

i+1

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

8.2.

Metodos
Computacionales en Fsica

131

El metodo
de Lax-Wendroff para ecuaciones

hiperbolicas
de primer orden

Otra forma de integrar la ecuacion

t f = x G( f )

(8.2.1)

se obtiene en lo que sigue. Se define


A( f )

dG
df

y calculamos

t2 f

= t x G

= x (t G)
= x (A( f ) t f )

= +x (A( f ) x G)

(8.2.2)

Por otro lado se tiene que


f (x,t + ) =
=

2 2
f + O( 3 )
2 t
2
f (x,t) x G + x (A x G)
2

f (x,t) + t f +

(8.2.3)

que se discretiza en la forma


n
Gnk+1 Gnk1 2 Ak+ 12
n+1
n
fk = fk
+
2h
2

Gnk+1 Gnk
h

Ank 1
2

Gnk Gnk1
h

que se simplifica al algoritmo de Lax-Wendroff



o
 2 n

Gnk+1 Gnk1 + 2 Ank+ 1 Gnk+1 Gnk Ank 1 Gnk Gnk1


2h
2h
2
2
(8.2.4)
se debe entender
En esta expresion
 n

fk+1 + fkn
n
Ak+ 1 = A
2
2
fkn+1 = fkn

descrito pertenece a la clase de algoritmos llaEl algoritmo (8.2.4) recien

mados conservativos y que en forma generica


son de la forma
h
i

n
n
n
n
,
.
.
.
,
f
)

H(
f
,
.
.
.
,
f
)
(8.2.5)
fkn+1 = fkn H( fk+
j
k j+1
k+ j1
k j
h
Universidad de Chile

Escuela de Ingeniera y Ciencias

Complementos personales

8.3. ECUACIONES DE SEGUNDO ORDEN CUASILINEALES

Esta clase de algoritmos son apropiados, por ejemplo, para describir ondas
de choque.
arriba tiene la forma generica

El esquema (8.2.4) descrito mas


anterior con
j=1y



G(a) G(b)
a+b
[G(a) G(b)]
H(a, b) =
A
2
2h
2
a dos pasos de lo anterior, es de la forma predictorExiste una generalizacion

corrector y tiene dos parametros


y . En el paso intermedio se calcula una
f
funcion
Paso 1:

n
n
Gk+1 Gnk
fk = (1 ) fkn + fk+1

Paso 2:
fkn+1

(8.2.6)

n + [2 (1 ) (1 2 )] f n ( ) f n
(1 )(1 ) fk1
k
k+1
2 2

( ) fk (1 ) fk1

+
(G k G k1 )
(8.2.7)
2
2
2 h

Aunque en general este algoritmo puede dar problemas, los autores (Lerat y
Peyret, 1974, 1975) recomiendan escoger

5
1
= 1+
=
,
2
2

8.3.

Ecuaciones de segundo orden cuasilineales

Se considerara la ecuacion
a

2U
2U
2U
+b
+c 2 +e = 0
2
t
t x
x

(8.3.1)

de t, x , U, t U y xU.
donde los coeficientes a, b, c, e son, en general, funcion

Se usara la notacion
p=

U
,
t

q=

U
,
x

2U
2U
2U
R=
,
W
=
,
S
=
.
t2
x2
t x

(8.3.2)

se vera que existen lineas caractersticas en el plano


A continuacion

(x,t), parametrizadas por un parametro


s, a lo largo de las cuales la
diferencial se transforma en la expresion
de la diferencial
ecuacion
dU cuando vara s, es decir, dU = p dt + q dx donde dt y dx son las
variaciones a lo largo de las caractersticas.
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

133

anterior permite que la ecuacion


original se escriba
La notacion
a R + b S + cW + e = 0

(8.3.3)

se manipulara para que desaparezcan las segundas derivadas.


A continuacion
de las caractersticas.
Para lograr esa meta se encuentra la definicion
original anterior sera convertida en ecuaComo se ha dicho, la ecuacion
ciones para curvas caractersticas f y g y una forma diferencial para U sobre
definidas por funciolas caractersticas. Las curvas caractersticas quedaran

nes (x f (s),t f (s)) y (xg (s),tg (s)) de un parametro


s. Usando un punto para indicar

derivada con respecto al parametro


s, entonces
p = R t + S x
q = S t + W x

(8.3.4)

de donde se despeja
p Sx
t
q St
W=
x
que permite reescribir (8.3.3) en la forma
R=

(8.3.5)

p Sx
q St
+e = 0
+ bS + c
x
t

que reordenada y multiplicada por x arroja


!
 2
x
x
x
t S a
b + c + a p + c q + e x = 0
t
t
t
anterior ya no depende ni de R ni de W . El proximo

La ecuacion
paso es lograr
que tampoco dependa de S. El cuociente xt sera llamado X(s) y, para que la
no dependa de S se exige que el parentesis

ecuacion
grande sea nulo:
aX2 bX + c = 0

(8.3.6)

la que da, en cada punto (x(s),t(s)) dos soluciones para X llamadas f (s) y g(s),

b + b2 4ac
f =
2a
b b2 4ac
(8.3.7)
g =
2a
Esto quiere decir que (8.3.3) permite dos direcciones en cada punto (t, x)
definidas por X = dx
dt que resuelven (8.3.6). A lo largo de tales curvas d p y dq
satisfacen,
a X d p + c dq + e dx = 0
(8.3.8)
Universidad de Chile

Escuela de Ingeniera y Ciencias


8.4. ECUACIONES HIPERBOLICAS

Complementos personales

Las direcciones que emergen de (8.3.6) se llaman direcciones caractersticas y


las ecuaciones de tipo (8.3.1) son clasificables de acuerdo al tipo de soluciones
que emergen de (8.3.6), lo que se decide con el signo/valor de
b2 4 a c

(8.3.9)

como lo resume la tabla que sigue:

tipo de ecuacion

races

hiperbolica

parabolica
elptica

reales y diferentes
reales e iguales
complejas

signo
b2 4ac > 0
b2 4ac = 0
b2 4ac < 0

puede ser de distinta naturaleUna ecuacion


za en distintas zonas del espacio (t, x), como por
ejemplo

Elip

xUtt + t Utx + xUxx = F(t, x,U,Ut ,Ux )


En este caso a = x, b = t, c = x y la naturaleza de
es hiperbolica,

esta ecuacion
parabolica
o elptica
segun
si b2 4ac = t 2 4 x2 es positivo, nulo o negativo. En la figura se ve los dominios donde es

hiperbolica
y elptica. En las fronteras la ecuacion

es parabolica.

8.4.

Ecuaciones hiperbolicas

8.4.1.

Planteamiento del problema

Hiper

Hiper

Elip

En el caso hiperbolico
pasan dos caractersticas diferentes por cada punto.
Ellas tienen pendientes
dx
dx
= f,
=g
(8.4.1)
dt
dt
las f-caractersticas y las g-caractersticas.
que se denominaran

En resumen, la ecuacion
a

2U
2U
2U
+
b
+e = 0
+
c
t2
t x
x2

con coeficientes a, b, c y e que son funciones conocidas de (t, x,U, p, q), tiene
algebraicaractersticas cuyas pendientes se obtienen resolviendo la ecuacion
ca
 2
dx
dx
b +c = 0
a
(8.4.2)
dt
dt
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

135

Las races se denominan f y g.


relacionados
A lo largo de las caractersticas los diferenciales d p y dq estan
por
a

dq
dx
d p dx
+c
+e
=0
dt dt
dt
dt

que se puede escribir


dx
d p + c dq + e dx = 0
dt
que toma dos formas, segun
de que caracterstica se trate,
a

a f d p + c dq + e dx = 0
a g d p + c dq + e dx = 0

(8.4.3)

dU = p dt + q dx

(8.4.4)

y finalmente se usa ademas

implcita
8.4.2. Integracion
Existe una variedad de problemas para los cuales las caractersticas son

integrables en forma explcita antes de iniciar el metodo


numerico.
En lo que

sigue se describe el caso en que las caractersticas se van obteniendo numericamente punto a punto.
Sea una curva que no es una
caracterstica y supongamos que sobre ella se conocen U, p y q. Sean P,
Q puntos muy cercanos en , es decir los valores uP , uQ , pP , pQ , qP y qQ
son conocidos.

R
f

El primer paso consiste en resolver (8.3.6)


f2 b

aP
P f + cP
a Q g 2 b Q g + cQ

=0
=0

(8.4.5)

para escoger un valor para fP y otro para gQ consistentes para que exista
un punto cercano R donde se corta la f-caracterstica que pasa por P con la
se toman los
g-caracterstica que pasa por Q. En una primera aproximacion
arcos PR y QR como rectas con pendientes fP y gQ por lo que se puede escribir
(1)

(1)

xR xP = fP (tR tP )
(1)
(1)
xR xQ = gQ (tR tQ )

(8.4.6)
(1)

(1)

De estas dos ecuaciones se obtiene valores aproximados para (tR , xR ).


Universidad de Chile

Escuela de Ingeniera y Ciencias


8.4. ECUACIONES HIPERBOLICAS

Complementos personales

A las ecuaciones (8.4.3) se les puede dar la forma aproximada


(1)

(1)

(1)

aP fP (pR pP ) + cP (qR qP) + eP (xR xP ) = 0


(1)
(1)
(1)
aQ gQ (pR pQ ) + cQ (qR qQ ) + eQ (xR xQ ) = 0
(1)

(8.4.7)

(1)

que dan formas aproximadas para (pR , qR ).


para determinar U
La ecuacion
dU =

U
U
dt +
dx = p dt + q dx
t
x

en forma aproximada es
i
1h
(1)
(1)
(1)
(1)
(1)
(pP + pR ) (tR tP ) + (qR + qP ) (xR xP)
uR uP =
2

(8.4.8)

(1)

se podra usar la otra caracterstica para


que arroja un valor para uR . Tambien
(1)
aproximarse al valor de uR .
De esta manera se ha obtenido primeros valores para las cinco cantidades
(1)
(1) (1) (1) (1)
uR ). Con estos valores se determinan (aR , bR , cR , eR ).

(1) (1) (1) (1)


(tR , xR , pR , qR ,

A partir de todo lo anterior se define un metodo


iterativo para mejorarlos

los valores en R. Este metodo


iterativo permite obtener valores X (n+1) a partir
de valores X (n) . Se ingresa al loop siguiente ya conociendo todo sobre las
cantidades en el punto R a primer orden. Es decir, en lo que sigue, el primer
valor de n es 1 y se determinan cantidades X (2) .
n para resolver la ecuacion

1. Se usa el conocimiento de la iteracion


(n)

(n)

(n)

a R Y 2 b R Y + cR = 0
(n)

(8.4.9)

(n)

cuyas raices son fR y gR .


2. Se reemplaza (8.4.6) por
(n+1)

xR

(n+1)

xR
(n+1)

para obtener (tR

(n)

xP =
xQ =

(n+1)

, xR

fP + fR
(n+1)
(tR
tP )
2
(n)
gQ + gR

(n+1)

(tR

(8.4.10)

tQ )

).

3. Se reemplaza (8.4.7) por


(n)

aP + aR
2

(n)

(n)

(n)

(n)

cP + cR
eP + eR
fP + fR
(n+1)
(n+1)
(n+1)
(pR
pP ) +
(qR
qP ) +
(xR
xP ) = 0
2
2
2
(n)

(n)

(n)

cQ + cR
eQ + eR
aQ + aR gQ + gR
(n+1)
(n+1)
(n+1)
(pR
pQ ) +
(qR
qQ ) +
(xR
xQ ) = 0
2
2
2
2
(8.4.11)
(n+1) (n+1)
para obtener (pR
,qR
).
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas


Metodos
Computacionales en Fsica

Patricio Cordero

137

4. Hecho todo lo anterior se usa (8.4.8) en la forma

(n+1)

uR

(n+1)

uP =

pP + pR
2

(n+1)

para tener uR

(n+1)

(tR

(n+1)

tP) +

qR

+ qP

(n+1)

(xR

xP )

(8.4.12)

(n+1)

5. Ahora se calculan aR

(n+1)

, bR

(n+1)

, cR

(n+1)

, eR

descritos se repiten varias veces hasta tener convergenLos pasos recien


suficientecia en cinco cantidades que se quiere evaluar en R. Si Q y R estan
mente cerca se requiere de pocas iteraciones para obtener el punto fijo.
Recorriendo la curva con pares cercanos (P, Q), se obtiene una nueva
y sus derivadas. Esta
curva, cercana a sobre la cual se conoce la funcion
nueva curva se usa para seguir avanzando.
Universidad de Chile

Escuela de Ingeniera y Ciencias

Complementos personales

8.5.

8.5. CONDICIONES INICIALES Y CONDICIONES DE BORDE

Condiciones iniciales y condiciones de borde

En lo que sigue, se analiza como


se determina en general los valores en el punto B
de la figura a partir de los valores que ya se
han determinado en A. En forma semejante
se puede determinar los valores de D si se
conoce los de C.

Supondremos que las condiciones de


definidas en x = 0 y x = 1 y que Figura 8.1: Llamamos caractersticas
borde estan

la condicion inicial esta dada en t = 0 dando f aquellas que avanzan en el tiempo con
x creciendo y llamanos g a aquellas que



U(x, 0) y p(x, 0) = U(x,t) t=0 (8.5.13) avanzan el el tiempo con x decreciendo.


de U(x, 0) se obtiene q(x, 0).

Con respecto a las condiciones de borde se vera simutaneamente


dos casos:
U(x,t) en B se define rgida dando
(a) La condicion
UB = U(0,t) que implica conocer

pB = p(0,t)

U(x,t) en B se define en forma derivativa dando


(b) La condicion


U(x,t)

que implica conocer qB


UB=
x
x=0

(8.5.14)

(8.5.15)

(8.4.5) se puede escribir


De la ecuacion
aA g2A bAgA + cA = 0
y se obtiene gA , esto es, se obtiene la pendiente de la caracterstica que va de
A a B.
En la segunda de las ecuaciones (8.4.6)para el punto Bse debe utilizar
que xB 0 por lo cual
xB = 0 = xA + (tB tA ) gA

del punto B queda totalmente


que determina tB . De este modo la posicion
determinada.
se debe escribir (8.4.7)
A continuacion
aA gA (pB pA ) + cA(qB qA) + eA(0 xA) = 0
donde, en el caso (8.5.14) ya se conoce pB por lo que se determina qB y en el
caso (8.5.15) ya que conoce qB por lo que se determina pB .
de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Computacionales en Fsica

139

Finalmente de (8.4.8) se escribe


1
UB = UA + [(pB pA)(tB tA ) + (qB qA)(0 xA)]
2
donde todo lo que hay al lado derecho ya ha sido determinado.
El razonamiento para deducir en D a partir de que se conoce todo en C es

enteramente
analogo.

8.6.

Problemas

1. Integre el problema de un fluido compresible unidimensional sin viscosidad que obedece las ecuaciones

v
+
t
x
v
v
+v

t
x

= 0
=

p
x

(8.6.1)

de estado p = A . Considere 0 x 1, condiciones de borde


y ecuacion
inicial (x, 0) = 1 en todo el domino
v(0,t) = 0 y v(1,t) = 0 y condicion
excepto que en el intervalo 0 x 0,1 vale

(x, 0) = 1 + 0,1 cos(5 x)


Escoja A = 2, = 53 y divida el intervalo (0, 1) en 10 mil trazos iguales.
Guarde los cuatro campos en un archivo a 4 columnas (x,t, , v), unos
100 valores cada vez. Por ejemplo la primera columna contiene x0 , x100 ,
x200 . . . , la segunda tiene t0 , t100 , t200 . . . etc. Su archivo debe registrar
estos bloques de altura 101 a intervalos regulares (tal vez cada 400 ba de la evolucion
del sistema. Itere
rridos de 0 x 1) para tener un vision
su sistema al menos unas 25 mil veces.
Una de las muchas formas de mostrar lo que ha obtenido puede ser,
de la densidad usando gnuplot con las
por ejemplo, mostrar la evolucion
instrucciones
set nokey
set nosurface
set contour base
set view 0, 0, 1, 1
splot "mis.datos" u 2:1:3 w d
de v(x,t) tambien
interesa ver el signo.
En el caso de la evolucion

2. Integre la ecuacion

Universidad de Chile

2U 2U
U
2 +
=0
t2
y
t
Escuela de Ingeniera y Ciencias

Complementos personales

8.6. PROBLEMAS

usando el metodo
de las caractersticas en el intervalo 0 y 1 con las
condiciones de borde U(0,t) = 2 sin t, U(1,t) = 0, y con las condiciones
iniciales U(y, 0) = 0 y U(y, 0)/ t = 0. Estudie los casos con = 14 y
= 15 , y = 2,0 y = 8,0. Divida el intervalo (0, 1) en N + 12 trazos de
longitud h = 1/(N + 21 ) usando N = 5000. Necesitara construir dos rutinas
las pares y las impares.
de iteracion,
a) Dibuje U(y,t = fijo) para diversos valores k de iteraciones: para k =
U debiera ser cero sobre
5000, 10500 y 13400. (Para k = 5000 la funcion
la mitad del intervalo).
b) Grafique U(y = 17 ,t) y U(y = 21 ,t) desde t = 0 hasta un tiempo suficientemente largo para que se vea que el sistema ha alcanzado un estado

de regimen.

c) Una vez en el estado de regimen


dibuje U(y,t0 ) para un instante t0 para
el cual U(0,t0 ) = 2,0
planteada es la que satisfacen las componentes del campo
La ecuacion

electrico
y magnetico
cuando se propaga una onda electromagnetica
en
un medio algo conductor. El coeficiente es proporcional a la conducti de borde en y = 0 puede pensarse como
vidad del medio. La condicion
la que impone una onda que llega desde el vaco al medio conductor
de borde en y = 1 corresponde a la
que comienza en y = 0. La condicion
presencia de un conductor perfecto de ah en adelante. Ese borde actua
como un espejo.

de 14 de julio de 2009
version

Facultad de Ciencias Fsicas y Matematicas

S-ar putea să vă placă și