You are on page 1of 234

Métodos

Numéricos

Patricio Cordero S.

EDICIÓN 2015

Solo con fines educativos


MÉTODOS NUMÉRICOS

Patricio Cordero S.

Departamento de Fı́sica

Facultad de Ciencias Fı́sicas y Matemáticas

Universidad de Chile
.

versión 2015
.

Solicito a todos quienes utilicen el texto


“M ÉTODOS N UM ÉRICOS” que sigue a con-
tinuación me escriban para indicarme cual-
quier falta, error, deficiencia en presenta-
ción, redacción poco clara etc. A cada uno
se lo agradeceré y trataré de ir producien-
cia una versión mejorada.

Patricio Cordero S.
pcordero@ing.uchile.cl

2
Índice general

1. Introducción 11
1.1. Usos del cálculo numérico . . . . . . . . . . . . . . . . . . . 11
1.2. Errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3. Tiempo de cálculo . . . . . . . . . . . . . . . . . . . . . . . 15
1.4. Adimensionalizar . . . . . . . . . . . . . . . . . . . . . . . . 15

2. Derivadas e integrales numéricas 17


2.1. Derivadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.1. Tabla con derivadas a cuatro y cinco puntos . . . . . 19
2.2. Integración numérica directa . . . . . . . . . . . . . . . . . 19
2.2.1. Método trapezoidal . . . . . . . . . . . . . . . . . . . 19
2.2.2. Métodos de Simpson . . . . . . . . . . . . . . . . . 20
2.2.2.1. Simpsion 1/3 . . . . . . . . . . . . . . . . . 20
2.2.2.2. Simpson 3/8 . . . . . . . . . . . . . . . . . 22
2.2.3. Discretización no uniforme sencilla . . . . . . . . . . 23
2.2.4. Limitaciones . . . . . . . . . . . . . . . . . . . . . . 23
2.3. Integración y cambio de variable . . . . . . . . . . . . . . . 24
2.3.1. Planteamiento y ejemplos . . . . . . . . . . . . . . . 24
2.3.2. Divergencias en el integrando . . . . . . . . . . . . . 26
2.3.2.1. Método 1: regularización del integrando . . 26
2.3.2.2. Método 2: tratamiento analı́tico de la diver-
gencia . . . . . . . . . . . . . . . . . . . . 28

3
4 Patricio Cordero S.

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


2.5. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3. Algebra lineal, interpolación, recurrencias y ceros 33


3.1. Temas de álgebra lineal . . . . . . . . . . . . . . . . . . . . 33
3.1.1. Autovalores y autovectores . . . . . . . . . . . . . . 33
3.1.2. Eliminación de Gauss . . . . . . . . . . . . . . . . . 33
3.1.3. Descomposición LU y PLU y uso de
la librerı́a gsl linalg.h . . . . . . . . . . . . . . . . . . 38
3.1.4. Método del gradiente conjugado . . . . . . . . . . . 42
3.2. Recurrencias, puntos fijos y ceros . . . . . . . . . . . . . . 44
3.2.1. Estabilidad . . . . . . . . . . . . . . . . . . . . . . . 44
3.2.2. Ceros . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2.3. Encajonamiento . . . . . . . . . . . . . . . . . . . . 45
3.2.4. Método de Newton y de la secante . . . . . . . . . . 46
3.2.5. Puntos fijos con más de una variable . . . . . . . . . 47
3.2.6. Método de la secante en varias variables . . . . . . 48
3.3. Métodos de interpolación . . . . . . . . . . . . . . . . . . . 49
3.3.1. Interpolaciones leales . . . . . . . . . . . . . . . . . 49
3.3.1.1. Interpolación lineal . . . . . . . . . . . . . 50
3.3.1.2. Interpolación de Lagrange . . . . . . . . . 50
3.3.1.3. La aproximación de empalme (“spline”) cúbi-
co . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.2. Métodos de ajuste suavizado . . . . . . . . . . . . . 51
3.3.2.1. Mı́nimos cuadrados . . . . . . . . . . . . . 52
3.3.2.2. Ajuste no paramétrico . . . . . . . . . . . . 53
3.3.3. Interpolación mediante el aproximante de Padé . . . 54
3.4. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

4. Ecuaciones diferenciales ordinarias 57


4.1. Reducción a ecuaciones de primer orden . . . . . . . . . . 57

ÍNDICE GENERAL Facultad de Ciencias Fı́sicas y Matemáticas


5 Métodos Numéricos

4.1.1. Método directo simple (de Euler) . . . . . . . . . . . 58


4.1.2. Método implı́cito . . . . . . . . . . . . . . . . . . . . 59
4.1.3. Algoritmos Runge-Kutta . . . . . . . . . . . . . . . . 60
4.1.4. Estabilidad de RK4 en el caso y′ = λ y . . . . . . . . 62
4.2. Integradores multipaso . . . . . . . . . . . . . . . . . . . . . 63
4.2.1. Presentación . . . . . . . . . . . . . . . . . . . . . . 63
4.2.2. Algoritmo predictor de Adams-Bashforth . . . . . . . 64
4.2.3. Estimador de Adams-Moulton . . . . . . . . . . . . . 65
4.2.4. Método predictor-corrector . . . . . . . . . . . . . . 67
4.2.5. Métodos predictor corrector especı́ficos para ecua-
ción de Newton . . . . . . . . . . . . . . . . . . . . . 68
4.2.5.1. Método de Beeman . . . . . . . . . . . . . 68
4.2.5.2. Predictor-corrector de Gear . . . . . . . . . 68
4.3. Métodos de Verlet y variaciones . . . . . . . . . . . . . . . 69
4.3.1. Propiamente Verlet . . . . . . . . . . . . . . . . . . . 70
4.3.2. Estabilidad del método de Verlet . . . . . . . . . . . 71
4.3.3. Leapfrog . . . . . . . . . . . . . . . . . . . . . . . . 73
4.4. Algoritmos simplécticos . . . . . . . . . . . . . . . . . . . . 74
4.4.1. Operadores de traslación . . . . . . . . . . . . . . . 74
4.4.2. Ecuaciones de movimiento . . . . . . . . . . . . . . 74
4.4.3. Construcción del algoritmo O(ε 3 ) . . . . . . . . . . . 76
4.4.4. El Jacobiano asociado . . . . . . . . . . . . . . . . . 76
4.4.5. Nuevamente el algoritmo de Verlet . . . . . . . . . . 77
4.4.6. Algoritmos simplécticos de más alto orden . . . . . 78
4.5. Recomendación final . . . . . . . . . . . . . . . . . . . . . . 79
4.6. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5. Problemas de condiciones de borde y problemas de autovalo-


res 83
5.1. Ecuaciones 1D lineales con condiciones de borde . . . . . 83

Universidad de Chile Escuela de Ingenierı́a y Ciencias


6 Patricio Cordero S.

5.1.1. Dos ejemplos de ecuaciones lineales . . . . . . . . 84


5.1.1.1. La ecuación de Poisson esféricamente simétri-
ca . . . . . . . . . . . . . . . . . . . . . . . 84
5.1.1.2. Una conocida ecuación de autovalores . . 84
5.2. El algoritmo de Numerov . . . . . . . . . . . . . . . . . . . 85
5.3. Problemas asociados a las condiciones de borde . . . . . . 86
5.3.1. Integración directa de un problema con condiciones
de borde . . . . . . . . . . . . . . . . . . . . . . . . 86
5.3.1.1. Primer ejemplo: la ecuación de Poisson con
simetrı́a esférica . . . . . . . . . . . . . . . 86
5.3.1.2. Rutina de reparación . . . . . . . . . . . . 88
5.3.1.3. Segundo ejemplo . . . . . . . . . . . . . . 89
5.3.2. Uso de una función de Green . . . . . . . . . . . . . 90
5.3.2.1. El problema . . . . . . . . . . . . . . . . . 90
5.3.2.2. Papel de la función de Green . . . . . . . . 91
5.3.2.3. Hacia la solución del problema original . . 92
5.3.2.4. Construcción numérica de la función de Green 92
5.3.2.5. La solución formal de (5.3.9) . . . . . . . . 93
5.3.2.6. Ejemplo . . . . . . . . . . . . . . . . . . . . 94
5.4. Problemas de autovalores . . . . . . . . . . . . . . . . . . . 95
5.4.1. Problema sencillo de autovalores: una cuerda . . . . 96
5.4.2. Ecuación de Schrödinger en una dimensión: esta-
dos ligados . . . . . . . . . . . . . . . . . . . . . . . 98
5.4.3. Ecuación de Schrödinger radial . . . . . . . . . . . . 100
5.4.3.1. La ecuación . . . . . . . . . . . . . . . . . 100
5.4.3.2. Comportamiento lejano . . . . . . . . . . . 101
5.4.3.3. El comportamiento cerca del origen . . . . 101
5.5. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

6. Integrales Monte Carlo y el algoritmo de Metropolis 105


6.1. Números aleatorios r ← U (0, 1) . . . . . . . . . . . . . . . . 105

ÍNDICE GENERAL Facultad de Ciencias Fı́sicas y Matemáticas


7 Métodos Numéricos

6.2. Densidades de probabilidad . . . . . . . . . . . . . . . . . . 106


6.2.1. Distribución y el promedio discreto . . . . . . . . . . 106
6.2.2. Distribuciones relacionadas . . . . . . . . . . . . . . 107
6.2.3. Obtención de secuencia W (x) a partir de U (0, 1) . . 108
6.2.3.1. El histograma asociado a una distribición
W (x) . . . . . . . . . . . . . . . . . . . . . 109
6.2.4. El caso de n variables . . . . . . . . . . . . . . . . . 110
6.2.5. Uso de W (x1 , x2 ) para
generar gaussianas . . . . . . . . . . . . . . . . . . 110
6.3. Integración Monte Carlo . . . . . . . . . . . . . . . . . . . . 111
6.3.1. El problema . . . . . . . . . . . . . . . . . . . . . . . 111
6.3.2. Primera forma . . . . . . . . . . . . . . . . . . . . . 112
6.3.3. Aplicabilidad de los métodos Monte Carlo . . . . . . 115
6.3.4. Método explı́cito . . . . . . . . . . . . . . . . . . . . 115
6.3.5. Estrategia de von Neumann . . . . . . . . . . . . . . 118
6.3.6. Integración Monte Carlo en dimensión D . . . . . . . 119
6.3.7. Integración Monte Carlo en dominios difı́ciles . . . . 120
6.4. La estrategia Metropolis para calcular promedios . . . . . . 121
6.4.1. El algoritmo de Metropolis . . . . . . . . . . . . . . . 121
6.4.2. Por qué funciona . . . . . . . . . . . . . . . . . . . . 123
6.4.3. Metropolis en mecánica estadı́stica . . . . . . . . . 125
6.4.4. Propiedades necesarias . . . . . . . . . . . . . . . . 127
6.4.5. Integrales usando el algoritmo de Metropolis . . . . 129
6.4.5.1. Caso unidimensional . . . . . . . . . . . . 129
6.4.5.2. Caso general . . . . . . . . . . . . . . . . . 130
6.5. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

7. Ecuaciones elı́pticas 137


7.1. Ecuación y condiciones de borde . . . . . . . . . . . . . . . 137
7.1.1. Integral de acción . . . . . . . . . . . . . . . . . . . 138

Universidad de Chile Escuela de Ingenierı́a y Ciencias


8 Patricio Cordero S.

7.2. Discretización . . . . . . . . . . . . . . . . . . . . . . . . . . 139


7.2.1. Discretización en el volumen . . . . . . . . . . . . . 139
7.2.2. Discretización en los bordes en un caso tipo Neumann140
7.2.3. Convergencia . . . . . . . . . . . . . . . . . . . . . . 141
7.2.3.1. Iteración en el volumen . . . . . . . . . . . 141
7.2.3.2. Iteración con condición de borde tipo Neu-
mann . . . . . . . . . . . . . . . . . . . . . 142
7.3. Fluidos incompresibles estacionarios . . . . . . . . . . . . . 143
7.3.1. Las ecuaciones . . . . . . . . . . . . . . . . . . . . . 143
7.3.2. Ecuaciones estacionarias para la función corriente,
la vorticidad y la temperatura . . . . . . . . . . . . . 144
7.3.3. Lı́neas de corriente . . . . . . . . . . . . . . . . . . 145
7.3.4. Versión discreta de ψ y ζ . . . . . . . . . . . . . . . 146
7.4. Primer ejemplo: convección térmica . . . . . . . . . . . . . 147
7.5. Segundo ejemplo: flujo y obstáculo . . . . . . . . . . . . . . 151
7.5.1. Las ecuaciones discretas en el volumen . . . . . . . 151
7.5.2. Las ecuaciones en los bordes . . . . . . . . . . . . 153
7.6. Algoritmo de más alto orden . . . . . . . . . . . . . . . . . . 156
7.7. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

8. Ecuaciones parabólicas 161


8.1. Ecuación general . . . . . . . . . . . . . . . . . . . . . . . . 161
8.2. Ecuaciones tı́picas . . . . . . . . . . . . . . . . . . . . . . . 162
8.2.1. Ecuación de calor . . . . . . . . . . . . . . . . . . . 162
8.2.2. Ecuación de Schrödinger . . . . . . . . . . . . . . . 162
8.2.3. Otros ejemplos de ecuaciones parabólicas . . . . . 163
8.3. Adimensionalización de la ecuación de difusión de calor 1D 164
8.4. Integración explı́cita directa . . . . . . . . . . . . . . . . . . 164
8.4.1. Condiciones de borde rı́gidas . . . . . . . . . . . . . 165
8.4.2. Condiciones de borde derivativas . . . . . . . . . . . 165

ÍNDICE GENERAL Facultad de Ciencias Fı́sicas y Matemáticas


9 Métodos Numéricos

8.4.3. Condiciones de borde periódicas . . . . . . . . . . . 166


8.5. El método de Du Fort-Frankel . . . . . . . . . . . . . . . . . 166
8.6. El método tridiagonal . . . . . . . . . . . . . . . . . . . . . . 167
8.6.1. La ecuación de calor . . . . . . . . . . . . . . . . . . 167
8.6.2. El algoritmo para el caso rı́gido . . . . . . . . . . . . 170
8.6.3. Ecuación de calor con conductividad variable . . . . 171
8.6.4. El caso con condiciones de borde periódicas . . . . 172
8.7. Un caso parabólico en 1+2 dimensiones . . . . . . . . . . . 175
8.8. Dos métodos adicionales . . . . . . . . . . . . . . . . . . . 176
8.8.1. Método de Richtmayer . . . . . . . . . . . . . . . . . 176
8.8.2. Método de Lees . . . . . . . . . . . . . . . . . . . . 177
8.9. Ecuación de Schrödinger dependiente del tiempo . . . . . . 177
8.9.1. Usando el método de Crank Nicolson . . . . . . . . 177
8.9.2. El método explı́cito de Visscher . . . . . . . . . . . . 179
8.9.2.1. Conservación de la norma . . . . . . . . . 179
8.9.2.2. Estabilidad . . . . . . . . . . . . . . . . . . 180
8.10.Método implı́cito . . . . . . . . . . . . . . . . . . . . . . . . 182
8.11.Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

9. Ecuaciones hiperbólicas 187


9.1. El método de Lax-Wendroff para
ecuaciones hiperbólicas de primer orden . . . . . . . . . . 187
9.1.1. Pequeña extensión del método de Lax-Wendroff . . 189
9.2. Ecuaciones de primer orden y sus
curvas caracterı́sticas . . . . . . . . . . . . . . . . . . . . . 190
9.3. El método de las caracterı́sticas . . . . . . . . . . . . . . . 192
9.3.1. Ejemplos para ilustrar los conceptos básicos . . . . 192
9.3.1.1. Ejemplo muy sencillo . . . . . . . . . . . . 192
9.3.1.2. Ejemplo algo más elaborado . . . . . . . . 193
9.3.2. Integración numérica a lo largo de una caracterı́stica 196

Universidad de Chile Escuela de Ingenierı́a y Ciencias


9.4. Sistema de ecuaciones hiperbólicas
de primer orden . . . . . . . . . . . . . . . . . . . . . . . . . 197
9.4.1. Fluido compresible sencillo . . . . . . . . . . . . . . 198
9.4.2. Fluido compresible con entalpı́a variable . . . . . . . 202
9.5. Ecuaciones de segundo orden cuasilineales . . . . . . . . . 206
9.6. Ecuaciones hiperbólicas . . . . . . . . . . . . . . . . . . . . 208
9.6.1. Planteamiento del problema . . . . . . . . . . . . . . 208
9.6.2. Integración explı́cita . . . . . . . . . . . . . . . . . . 209
9.7. Condiciones de borde . . . . . . . . . . . . . . . . . . . . . 212
9.8. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

10. Transformada rápida de Fourier 217


10.1.La transformada continua . . . . . . . . . . . . . . . . . . . 217
10.1.1. La delta de Dirac . . . . . . . . . . . . . . . . . . . . 217
10.1.2. Relación entre una función y su transformada . . . . 218
10.1.3. Convolución y correlación . . . . . . . . . . . . . . . 218
10.1.4. Potencia . . . . . . . . . . . . . . . . . . . . . . . . . 219
10.2.Transformada de Fourier en dominio finito . . . . . . . . . . 219
10.3.Transformada de Fourier discreta . . . . . . . . . . . . . . . 220
10.4.La transformada rápida de Fourier (FFT) . . . . . . . . . . . 224

10
Capı́tulo 1

Introducción

1.1. Usos del cálculo numérico


En problemas de todas las disciplinas, como ingenierı́a, economı́a, cien-
cias sociales, fı́sica, biologı́a, hoy dı́a se utiliza el cálculo numérico en el
sentido en que se presenta estos temas en los próximos capı́tulos.
Una vez que un problema es planteado en la forma matemática propia
a su disciplina éste debe ser reformulado para adecuarlo a lo que es el
cálculo numérico. Un caso tı́pico de fı́sica básica puede ser la ecuación
básica de movimiento unidimensional de una partı́cula:

dv
m = f (x, v)
dt
Se debe comenzar por usar tiempo discretizado para expresar la derivada
como cuociente de cantidades finitas. Podrı́a ser, por ejemplo
xk+1 − xk vk+1 − vk
vk = y también ak = , donde k = 0, 1, 2 . . .
h h
donde tk = hk, xk = x(tk ), vk = v(tk ) y la fuerza f (x, v) es una función cono-
cida. De las expresiones anteriores se obtiene instrucciones apropiadas
para incluir en un programa computacional:

h
xk+1 = xk + h vk , vk+1 = vk + fk
m

11
Introducción Patricio Cordero S.

donde, desde una condición inicial x0 y v0 se va, iterativamente, obtenien-


do los sucesivos valores (xk , vk ). Este algoritmo se conoce como el algo-
ritmo de Euler. El algoritmo anterior se puede generalizar a más dimen-
siones. Es sencillo, fácil de entender pero, como se verá, puede presentar
problemas de estabilidad.
Una vez que el problema ha sido modelado con un conjunto de ecua-
ciones se debe explorar las implicaciones. De esas implicaciones pue-
de resultar algo esperable pero cuantitativamente no trivial, puede ocurrir
que el modelo resulte no ser bueno (dando comportamientos que no son
verdaderos) etc. También puede suceder que el modelo dé patrones de
comportamientos inesperados pero correctos.
Hoy en dı́a es inconcebible no utilizar cálculo numérico en cada área de
la ciencia y la tecnologı́a. A continuación unos pocos ejemplos en fı́sica,

Comportamiento de átomos, núcleos, y el amplio mundo subnuclear


de fı́sica de partı́culas

Dinámica de fluidos: tal como en meteorologı́a, oceonografı́a, simu-


lación de túneles de viento en el diseño de aviones, en el comporta-
mineto de estrellas etc etc

Mecánica macroscópica de sólidos: tensiones en estructutras com-


plejas (puentes, barcos..), roturas, grietas, explosiones ..

Comportamiento de las más variadas moléculas, incluyendo algunas


enormes proteinas.

Astrofı́sica y cosmologı́a, evolución de galaxias, soluciones de las


complicadas ecuaciones de gravitación.

Los esfuerzos computacionales para atacar un problema abarcan des-


de hacer integrales complicadas, hacer integrales en muchas (a veces
demasiadas) dimensiones, estimar funciones partición en sistemas es-
tadı́sticos, hasta resolver ecuaciones diferenciales ordinarias, ecuaciones
diferenciales a derivadas parciales, etc.

Salvo que las ecuaciones del modelo que se estudia sean de naturale-
za muy sencilla, lo más probable es que se requiera de una resolución

1.1. USOS DEL CÁLCULO NUMÉRICO Facultad de Ciencias Fı́sicas y Matemáticas


13 Métodos Numéricos

numérica de ellas. Uno de los retos—cuando se resuelve numéricamen-


te un conjunto de ecuaciones—es saber si la solución numérica obtenida
es confiable, es decir, si realmente es una solución del problema o si los
errores numéricos (o de otro tipo) que produce la metodologı́a numérica
usada invalidan total o parcialmente la solución obtenida.
En estas notas se aprenderá algunas técnicas para resolver ecuaciones
de diversa naturaleza y en los casos más sencillos veremos también la
forma de mantener los errores bajo control. Habrá un permanente trabajo
práctico.

1.2. Errores
Al hacer cálculos numéricos introducimos errores que tienen diverso ori-
gen. Los más comunes son:

- Errores en la precisión de los datos. Por ejemplo, el valor de π puede


ser de baja precisión, 3,1416 en lugar de 3,1415926535897932385 . . .

- Errores de truncación. Por ejemplo, en lugar del valor ex se usa


xk
∑Nk=0 k! y el N no es lo suficientemente grande. Estos errores apa-
recen normalmente por la naturaleza iterativa de los métodos y en
algún momento es necesario detener la iteración. Por ejemplo, para
calcular sin x se puede usar el siguiente código C,

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

y el resultado analı́ticos es naturalmente mejor mientras mayor sea


N, pero la precisión numérica alcaza su óptimo para N no muy gran-
de.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Introducción Patricio Cordero S.

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


ción que se guarda en memoria por cada número real. Por ejemplo,
cuando calculamos
d sin(x) sin(x + ε ) − sin(x − ε )
cos(x) = ≈
dx 2ε
el resultados es mejor cuanto menor sea ε hasta que se produce un
problema al restar dos números demasiado parecidos. Por ejemplo:
sin.c

epsilon dsin(1.0)/dx cos(1.0) cos - deriv


0.04978706836786394446248 0.5400791 0.5403023 0.000223185
0.00247875217666635849073 0.5403018 0.5403023 0.000000553
0.00012340980408667956121 0.5403023 0.5403023 0.000000001
0.00000614421235332820981 0.5403023 0.5403023 0.000000000
0.00000030590232050182579 0.5403023 0.5403023 -0.000000000
0.00000001522997974471263 0.5403023 0.5403023 -0.000000000
0.00000000075825604279119 0.5403023 0.5403023 -0.000000000
0.00000000003775134544279 0.5403022 0.5403023 0.000000077
0.00000000000187952881654 0.5402991 0.5403023 0.000003182
0.00000000000009357622969 0.5401011 0.5403023 0.000201187
0.00000000000000465888615 0.5442437 0.5403023 -0.003941389
0.00000000000000023195228 0.4940679 0.5403023 0.046234439

Se debe probar con “float” y con “double”.


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.2. ERRORES Facultad de Ciencias Fı́sicas y Matemáticas


15 Métodos Numéricos

1.3. Tiempo de cálculo


Cuando se programa un cálculo cuyo tiempo de cálculo sabemos que va
a ser grande es importante tener alguna idea sobre los elementos que
hacen que este cálculo 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 fórmula
Z
" #
b N−1

a
f (x) dx ≈ f (x0 ) + 2 ∑ f (xi ) + f (xN ) h
i=1
b−a
xi = a + i (1.3.1)
N
debe tenerse presente que este cálculo tarda un tiempo que es O(N).

El cálculo de la energı́a de N cargas implica calcular


N N Nq j qk
m
2 ∑ v2k + ∑ ∑ 2
k=1 j=1 k= j+1 r jk

El primer término toma un tiempo O(N) mientras el segundo tiene un costo


O(N 2 ). El algoritmo óptimo para invertir una matriz de N × N es O(N 3 ).

1.4. Adimensionalizar
Suele ocurrir que los problemas reales que debemos resolver tienen más
parámetros de los necesarios en el sentido de que existe un problema
numérico equivalente que se expresa con menos parámetros. Por ejem-
plo, en el caso de un oscilador armónico

m ẍ = −k x , x(0) = A , ẋ(0) = v0 .

si se define ω02 = k/m el problema aparenta tener tres parámetros de con-


trol: ω0 , A y v0 . Sin embargo, si se hace el cambio de variables x = A z,
t = t ∗/ω0 , el problema equivalente es
v0
z′′ = −z , z(0) = 1 , z′ (0) = ≡ v∗0 .
A ω0

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Derivadas e integrales numéricas Patricio Cordero S.

que es un problema con un solo parámetros de control, v∗0 .

Si la adimensionalización se escoge con cuidado se trabaja con cantida-


des de orden 1 y por tanto se disminuye una fuente de errores.

1.4. ADIMENSIONALIZAR Facultad de Ciencias Fı́sicas y Matemáticas


Capı́tulo 2

Derivadas e integrales
numéricas

2.1. Derivadas
La forma elemental más tı́pica de plantear una derivada es

f (x + h) − f (x)
f ′ (x) ≈ (2.1.1)
h

El desarrollo en serie

h2 ′′
f (x + h) = f (x) + h f ′ (x) + f (x) + . . . (2.1.2)
2

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


guiente expresión es más precisa,

f (x + h) − f (x − h)
f ′ (x) = + O(h2 ) (2.1.3)
2h

El error que aquı́ se indica es un error analı́tico. Ya se ha comentado que


si h es muy pequeño se produce un error de redondeo.
Existe una famila de expresiones para derivadas de cualquier orden. Ex-
presiones simétricas y no simétricas. Usando la notación fk ≡ f (x + kh),

17
Derivadas e integrales numéricas Patricio Cordero S.

se tiene, por ejemplo, que

h2 ′′ h3 ′′′
f±1 = f0 ± h f0′ + f ± f + O(h4 )
2 0 3! 0 (2.1.4)
4h3 ′′′
f±2 = f0 ± 2h f0′ + 2h2 f0′′ ± f0 + O(h4)
3
de donde
f2 − 2 f1 + f0
f0′′ = + O(h) (2.1.5)
h2
y también
f1 − 2 f0 + f−1
f0′′ = + O(h2 ) (2.1.6)
h2

Hay casos en que no se conoce la función en intervalos regulares. En lu-


gar de intentar un método de interpolación—que se discuten más adelante—
se puede usar expresiones como las que siguen,
Es fácil ver que la primera derivada de una función f (x) se puede expresar
en términos de f−h1 = f (x − h1 ), fh2 = f (x + h2 ) y de la propia f (x) como

df h21 fh2 + (h22 − h21 ) f − h22 f−h1


≈ + O(h1 h2 f ′′′ ) (2.1.7)
dx h1 h2 (h1 + h2 )
y con los valores de f en estos mismos tres puntos la segunda derivada
se puede escribir

d2 f h1 fh2 − (h1 + h2 ) f + h2 f−h1 ′′′


2
≈2 + O((h2 − h1 ) f ) (2.1.8)
dx h1 h2 (h1 + h2 )
si se compara los errores analı́ticos en estas expresiones con los aso-
ciados a las derivadas simétricas del mismo orden: (2.1.3) y (2.1.6) se
observa que los errores son del mimso orden.

♠ Determine qué derivada es proporcional a

11 f−2 − 56 f−1 + 114 f0 − 104 f1 + 35 f2

e indique el orden del error de la esta expresión para la correspondiente deriva-


da.

2.1. DERIVADAS Facultad de Ciencias Fı́sicas y Matemáticas


19 Métodos Numéricos

♠ Obtenga el valor de a tal que la siguiente expresión sea la primera derivada


f ′ más un error,
a f−2 − 16 f−1 + 36 f0 − 48 f1 + 25 f2
denom
Dé expresión para el denominador y para ese error.

2.1.1. Tabla con derivadas a cuatro y cinco puntos


Una derivada de orden n tiene una variedad de expresiones usando p ≥
n + 1 puntos. A continuación algunos ejemplos .

A cuatro puntos A cinco puntos

1 1
hf′ (−2 f∓1 − 3 f0 + 6 f±1 − f±2 ) ( f−2 − 8 f−1 + 8 f1 − f2 )
6 12

1
h2 f ′′ f−1 − 2 f0 + f1 (− f−2 + 16 f−1 − 30 f0 + 16 f1 − f2 )
12

1
h3 f ′′′ ± (− f∓1 + 3 f0 − 3 f±1 + f±2 ) (− f−2 + 2 f−1 − 2 f1 + f2 )
2

h4 f iv no hay f−2 − 4 f−1 + 6 f0 − 4 f1 + 2 f2

Se trata de expresiones tan simétricas como es posible.

2.2. Integración numérica directa

2.2.1. Método trapezoidal


Se desea integrar numéricamente dividiendo el intervalo (a, b) en N in-
tervalos de largo h con los puntos x0 = a, x1 , x2 , ..., xN−1 , xN = b. Para

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Derivadas e integrales numéricas Patricio Cordero S.

obtener este primer algoritmo de integración se comienza por escribir

1
f (x) ≈ fk + (x − xk ) fk′ + (x − xk )2 fk′′ + . . .
2
fk+1 − fk  fk+1
≈ fk + (x − xk ) + O (x − xk )2 (2.2.1) fk
h
para integrar en uno solo de los intervalos: desde xk has- h
ta xk + h,
Z xk +h Figura 2.1: El al-
h2 fk+1 − fk goritmo se basa en
f (x) dx ≈ fk h + + O(h3 ) aproximar el área
xk 2 h
bajo la curva en un
h ( fk+1 + fk )
= + O(h3 ) (2.2.2) intervalo en la de
2 un trapecio.

La última expresión es el área del trapecio de la figura 2.1. Al sumar k


sobre N sitios y tomando en cuenta que N ∼ h1 se obtiene, sumando las
áreas de los trapecios, que
Z b  
f0 + f1 f1 + f2 fN−1 + fN
f (x) dx = + + ... h
a 2 2 2
h
= ( f0 + 2 f1 + 2 f2 + .. + 2 fN−1 + fN ) + O(h2 )
2
(2.2.3)
3 f ′′
y el error es de orden O(h2 f ′′ ) = O( (b−a)
N2
).

2.2.2. Métodos de Simpson


2.2.2.1. Simpsion 1/3

Una fórmula algo más precisa es la de Simpson que surge de integrar en


forma explı́cita en x entre xk−1 = xk − h y xk+1 = xk + h. La expresión

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


f (x) = fk + (x − xk ) +
2h   h2 2
3 4
+O (x − xk ) + O (x − xk ) (2.2.4)

2.2. INTEGRACIÓN NUMÉRICA DIRECTA Facultad de Ciencias Fı́sicas y Matemáticas


21 Métodos Numéricos

double simpson()
{ int k;
double sumaPar,sumaImp,xk;
/* "simpson.c" sumaPar = 0.0;
Programa generico para hacer
la integral de F(x) desde sumaImp = 0.0;
x=a hasta x=b usando xk = a;
el metodo de Simpson for(k=0; k<nu-1; k++)
{ xk += h;
*/
sumaImp += F(xk);
#include<stdio.h> xk += h;
#include<math.h> sumaPar += F(xk);
.
#include<stdlib.h>
}
#define N 20 sumaImp = sumaImp + F(xk+h);
#define nu (N/2) sumaPar = 2.0*sumaPar+F(a)+F(b);
#define a 0.0//limite inferior return(
#define b 1.0//limite superior
#define h ((b-a)/N)
(4.0*sumaImp+sumaPar)*h/3.0);
}
double F(double x) //Aqui se pone main()
{ return(x*x*x*x); //integrando F {double inte;
}
inte = simpson();
printf("integral=%14.11f\n",inte);
}

La integración en (xk − h, xk + h) de los términos (x − xk )r con r impar da


cero. De la expresión anterior sobrevive la integración del término con
(x − xk )2 , el término cúbico no contribuye al error y el último da un O(h5 ) y
se obtiene
fk−1 − 2 fk + fk+1 1 2h3 h
2h fk + = ( fk−1 + 4 fk + fk+1 ) + O(h5) (2.2.5)
h2 2 3 3
Componiendo esta expresión se obtiene el algoritmo de Simpson “ 31 ” que
se aplica con N par,
Z b
h
f (x) dx ≈ [ f0 + 4 ( f1 + f3 + .. fN−1 ) + 2 ( f2 + f4 + .. + fN−2 ) + fN ] + O(h4 )
a 3
(2.2.6)
4 IV
y el error más precisamente es O(h f ). Otra forma de escribir lo anterior
es !
Z b N/2−1 N/2−1
h
f (x) dx ≈ f0 + 4 ∑ f2k+1 + 2 ∑ f2k + fN (2.2.7)
a 3 k=0 k=0

Viendo la lógica de (2.2.4) y cómo conduce a (2.2.6) resulta obvio obtener


expresiones aun más precisas para hacer una integral.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Derivadas e integrales numéricas Patricio Cordero S.

2.2.2.2. Simpson 3/8

Esta vez el dominio total de integración (a, b) se divide en N intervalos de


tamaño h, donde N es múltiplo de 3, N = 3m. Se comienza buscando una
forma aproximada de la integral desde xi hasta xi+3 , donde xi+ j = xi + jh.
Se define un polinomio en y = xi + 23 h, de modo que el punto y = 0 co-
rresponda, como lo muestra la figura 2.2, al punto central del dominio de
integración. Para este dominio se define el polinomio
y  y 2  y 3
p(y) = b0 + b1 + b2 + b3 (2.2.8)
h h h
cuyos coeficientes se determinan exigiendo las siguientes cuatro igualda-
des,
       
3h h h 3h
p − = fi , p − = fi+1 , p = fi+2 , p = fi+3 .
2 2 2 2
(2.2.9)
Para efectos de saber el va-
lor de la integral, basta con
conocer los coeficientes de
las potencias pares de y en
h h h X
(2.2.8). En efecto, se obtiene i+1 i+2 i+3
i
que
Z 3h/2   Y
9
p(y) dy = 3b0 + b2 h
−3h/2 4
(2.2.10) −3h/2 0 3h/2
De las ecuaciones (2.2.9) se
Figura 2.2: Se integra sobre el dominio xi ≤ x ≤
obtiene, en particular, que x de largo 3h, lo que equivale a integrar usando
i+3
1 la variable y en el dominio −3h/2 ≤ y ≤ 3h/2.
b0 = − ( fi − 9 fi+1 − 9 fi+2 + fi+3 ) ,
16
(2.2.11)
1
b2 = ( fi − fi+1 − fi+2 + fi+3 )
4
Lo que lleva a
Z xi+3 Z 3h/2
3h
f (x) dx ≈ p(y) dy = ( fi + 3 fi+1 + 3 fi+2 + fi+3 ) (2.2.12)
xi −3h/2 8

2.2. INTEGRACIÓN NUMÉRICA DIRECTA Facultad de Ciencias Fı́sicas y Matemáticas


23 Métodos Numéricos

Si este cálculo se usa en todo el dominio se tiene


Z b  
3h
f (x) dx ≈ f0 + 3 f1 + 3 f2 + f3 + f3 + 3 f4 + 3 f5 + f6 + f6 + 3 f7 + 3 f8 + f9 + . . .
a 8 | {z } | {z } | {z }
3h
≈ ( f0 + 3 f1 + 3 f2 + 2 f3 + +3 f4 + 3 f5 + 2 f6 + 3 f7 + 3 f8 + 2 f9 + . . .)
8
" #
m−1 m−1
3h
≈ f0 + 3 ∑ ( f3k+1 + f3k+2 ) + 2 ∑ f3k + fN + O(h5 ) (2.2.13)
8 k=0 k=1 N=3m

2.2.3. Discretización no uniforme sencilla

Tanto el método trapezoidal como los dos métodos de Simpson han sido
planteados con discretización uniforme, pero no es necesario proceder
de ese modo. En el caso del método trapezoidal se puede tomar cada
contribución (2.2.2) con un h propio, y la integral es

N−1
hk
I= ∑ 2
( fk + fk+1 )
k=0

En el caso del método de Simpson 1/3 se integró los intervalos de a pa-


res y fue crucial que los dos miembros de cada par fueran iguales, pero
distintos pares pueden tener hk distintos. La integral queda

N−1
hk
I= ∑ ( fk−1 + 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 último es k =
N − 1.

2.2.4. Limitaciones

Estos métodos no debieran o no pueden ser usados en forma directa si:

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Derivadas e integrales numéricas Patricio Cordero S.

- el intevalo de integración es infinito

- la función varı́a mucho en el intervalo


(función con alto contraste)

- hay una divergencia en el intervalo

- ..

2.3. Integración y cambio de variable

2.3.1. Planteamiento y ejemplos


En general para hacer una integral numérica es conveniente hacer algún
tipo de cambio de variable. En particular los problemas mencionados an-
tes se superan haciendo un cambio de variable de integración y = g(x),
esto es, dy = g′ (x) dx. Genéricamente
Z b
I = f (x) dx
a
Z g(b)  
f (x)
= dy (2.3.1)
g(a) g′ (x) x=g−1 (y)
y la segunda forma de la integral se discretiza uniformemente. Nótese que
g(x) debe ser monótona para que g′ no tenga ceros en el intervalo que
interesa. Discretizar uniformemente en la nueva variable y es equivalente
a una discretización no uniforme en la variable original x. Otra limitante
práctica para g(x) es que debemos conocer la función inversa g−1 .
El procedimiento práctico normalmente define x una sola vez—en la ruti-
na un x = g−1 (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) = ′ (2.3.2)
g (x) x=g−1 (y)
sean finitos en todo el intervalo, en particular en los extremos g(a) y g(b).

2.3. INTEGRACIÓN Y CAMBIO DE VARIABLE Facultad de Ciencias Fı́sicas y Matemáticas


25 Métodos Numéricos

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

a) g(x) es monótona 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 con-


traste.

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 = g−1 (yk ) en el eje original.
El gran inconveniente de los métodos con cambio de variable presentados
hasta aquı́ es que está limitado a funciones g(x) para las cuales se conoce
la función inversa g−1 (y). Más adelante, en el capı́tulo correspondiente a
los métodos Monte Carlo se podrá superar este inconveniente.

Ejemplo con intervalo infinito: Consideremos


Z ∞
2 +x
I= e−x dx
0

2 √
Si se toma y = e−x y por tanto x = − ln y. La integral pasa a ser
Z 1 x 
e
I= dy
0 2x x=√− ln y

que no es aceptable porque se obtiene un integrando divergente.


Pero si se escoge y = g(x) = e−x , es decir,
2 +2x
s(x) = e−x

la integral que se debe evaluar es


Z 1h i
2 +2x
I= e−x dy
0 x=− ln y

El problema ha sido reducido al de una integral en intervalo finito con


integrando de poco contraste.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Derivadas e integrales numéricas Patricio Cordero S.

Integrandos con mucho contraste: Aun en casos en que no haya di-


vergencias, si la función varı́a mucho en el intervalo (mucho contraste) se
debe hacer el cambio y = g(x) pasando ası́ a una integral sobre la variable
y con integrando [ f (x)/g′ (x)]x=g−1 (y) y la función g(x) debe escogerse de
tal forma que el nuevo integrando sea lo más plano posible, es decir, con
poco contrate. El colmo serı́a conseguir que fuese una constante, pero en
tal caso el problema estarı́a resuelto antes de comenzar.
Veamos cómo suavizar el integrando con el ejemplo
Z 1
1 −x2 /τ 2
f (x) dx con f (x) = e y τ ≪ 1.
−1 τ
Se trata de buscar un g(x) apropiado. Puesto que g′ tiene que tener una
forma parecida al integrando f (x) es necesario encontrar una función g
con la forma de un escalón redondeado. Escojamos que satisfaga g(1) = 1
y g(−1) = −1. Por ejemplo, se puede tomar
  
arctan ax −1 1
g(x) =  ⇔ x = g (y) = a tan y arctan
arctan a1 a

Se deja como ejercicio ver el a óptimo para cada valor de τ .


Si el integrando tiene muchos picos se subdivide el intervalo de integra-
ción para tener integrales con un solo pico en cada segmento y tratar cada
caso según lo que convenga.
♠ Encontrar un cambio de variable apropiado para calcular
Z 40
dx
1 x2 (1 + x)

2.3.2. Divergencias en el integrando


2.3.2.1. Método 1: regularización del integrando

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
integración que dejan al punto de divergencia en un extremo para pasar

2.3. INTEGRACIÓN Y CAMBIO DE VARIABLE Facultad de Ciencias Fı́sicas y Matemáticas


27 Métodos Numéricos

a estudiar la forma de tratar una integral que es divergente en un extremo


del intervalo. Tomemos el caso
Z b
I= f (x) dx con f (0) = ∞
0

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


necesario que
lı́m x f (x) = 0
x→0
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
0 α xα −1 x=y1/α
y se debe escoger α tal que
f (x)
lı́m sea finito
y→0 xα −1

Pero I es no divergente tan solo si f (x) diverge en el origen más lenta-


mente que 1/x. Definamos δ , 0 < δ < 1, tal que
A
| f (x ≈ 0)| <
x1−δ
Lo que intereza es la contribución a la integral que proviene de una vecin-
dad al origen,
Z hα  
f (x)
Ih = dy
0 α xα −1 %
Z hα  
A
≤ dy
0 α x1−δ xα −1 %
Z α
A h h δ −α i
≤ x dy
α 0 %
Z α
A h (δ −α )/α
≤ y dy (2.3.3)
α 0
que tiene integrando finito en todo el rango si α ≤ δ , dando como resultado
A δ /α
δh . Se debe escoger un α positivo menor o igual a δ .

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Derivadas e integrales numéricas Patricio Cordero S.

Ejemplo 1: Calcular:
Z 1 1/3
x
dx
0 sin x
Cerca del origen el integrando es f ∼ x−2/3 es decir, δ = 1 − 2/3 = 1/3 y se
puede escoger cualquier α tal que 0 < α ≤ 1/3. Si,por ejemplo, se toma
α = 1/3 la integral se convierte en
Z 1 3
y
3 dy
0 sin y3

Ejemplo 2: Para calcular


Z 1
P(x) ln(x) dx
0

donde P(x) es una función suave, basta con tomar y = x1/100 para tener un
integrando F(y) suave.
♠ Calcular Z 1
sin(x)
√ dx
0 1 − x2

2.3.2.2. Método 2: tratamiento analı́tico de la divergencia

Otra forma de tratar integrales que tienen divergencias en el integrando es


tratar en forma analı́tica el trozo que contiene la divergencia. Por ejemplo,
Z 1
dx
0 (1 − x)1/3 x2/3

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


Z h Z h
dx dx
≈ = 3h1/3
0 (1 − x)1/3 x2/3 0 x2/3

se procede en forma similar en el lı́mite superior. El resto de la integral se


hace en la forma usual.

2.3. INTEGRACIÓN Y CAMBIO DE VARIABLE Facultad de Ciencias Fı́sicas y Matemáticas


29 Métodos Numéricos

2.4. Integral de parte principal

Suele ser necesario calcular la integral


Z b
f (x)
I= dx con a ≤ x0 ≤ b
a x − x0

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 . La parte principal de I, P(I), se define por
medio de
Z b Z b
f (x) f (x)
dx = P dx + i π f (x0 )
a x − x0 a x − x0

donde la parte principal es


Z b Z x0 −h Z b 
f (x) f (x) f (x)
P dx = lı́m dx + dx
a x − x0 h=0 a x − x0 x0 +h x − x0

Para calcular numéricamente la parte principal se razona a partir de rees-


cribir I en la forma
Z b Z b Z b
f (x) f (x) − f (x0 ) f (x0 )
dx = dx + dx (2.4.1)
a x − x0 a x − x0 a x − x0

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


estándar, mientras que la segunda integral es
Z b
f (x0 ) b − x0
I2 = dx = f (x0 ) ln
a x − x0 a − x0
 
b − x0
= f (x0 ) ln + ln(−1)
x0 − a
 
b − x0
= f (x0 ) ln +iπ (2.4.2)
x0 − a

Se ha aislado el término i π f (x0 ). La labor de obtener numéricamente la


parte principal consiste en evaluar numéricamente la integral I1 utilizando
algún método estándar, para luego sumarle f (x0 ) ln xb−x 0
0 −a
.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Derivadas e integrales numéricas Patricio Cordero S.

2.5. Problemas
2.1 1. Tal vez sea bueno comenzar por escribir programas de integra-
ción trapezoidal y Simpson e intregrar sin cambio de variable
Z 1
xn dx con n = 3, 4, 5 . . .
0

viendo cuánto debe valer N para tener un error de menos del


1 %.
2. Trate de obtener un error menor al 1 %.
3. Puede serle útil graficar la función a integrar y la función que
resulta después de cada cambio de variable. De esa manera
se puede entender la fuente de los posibles errores.
4. Por razones obvias, no se debe calcular la integral por partes, ni
hacer algún truco que permita llevarla a una integral analı́tica.
2.2 La función gamma, Γ(x), se define como la siguiente integral
Z ∞
Γ(x) = t x−1 e−t dt (2.5.1)
0

que converge para todo x positivo, pese a que para 0 < x < 1 el inte-
grando tiene una divergencia en t = 0.
Se pide calcular numéricamente, a partir de la definición anterior, la
función Γ para x = 10 y x = 1/2, valores para los cuales se conocen
los resultados analı́ticos:

Γ(10) = 9! = 362880 (2.5.2)



Γ(1/2) = π (2.5.3)

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


el número de puntos en la discretización, el método de integración
(trapezoidal o Simpson), el resultado obtenido y el error cometido
respecto al valor analı́tico.
2.3 Calcule numéricamente las integrales
Z ∞
(1)
I = e−x ln x dx
0

2.5. PROBLEMAS Facultad de Ciencias Fı́sicas y Matemáticas


31 Métodos Numéricos

Z 1
(2) 1+x
1
I = ln dx
0 1 − x3
x
El problema consiste en hacer numéricamente las integrales de arri-
ba con algún 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 número (N)
de veces que sea posible. Como criterio de convergencia debe usar
alguna cantidad como
I − IN
err = < 10−q
I
con q = 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 número N de puntos en la discretización, el método de integración
(trapezoidal o Simpson, nada superior), el resultado obtenido y el
error numérico respecto al valor de I. No debe usar el conocimiento
analı́tico 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 razones obvias, no se permite recurrir a integración por partes,
ni hacer algún truco que permita llevarla a una integral analı́tica.
2.4 Motivación fı́sica. Para muchos efectos la fuerza entre átomos pue-
de ser tratada exitosamente con el potencial central, llamado de
Lennard-Jones,   
a 12  a 6
V = 4V0 − (2.5.4)
r r
cuyo valor mı́nimo es V0 y se anula cuando r coindice con el radio
de Bohr. Una partı́cula atrapada en este potencial (energı́a menor
que cero), tiene un movimiento en el intervalo (rmin , rmax ) donde am-
bos radios son mayores que a. Cuánticamente solo hay un conjunto
p2
discreto de energı́as En posibles. Clásicamente E = 2m +V (r) o equi-
valentemente la magnitud del momentum depende de r en la forma

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.
p
p(r) = 2m (E −V (r)). Una forma aproximada de plantear el proble-
ma de encontrar los valores de los niveles cuánticos En consiste en
exigir la condición de Bohr-Sommerfeld
I  
p(r) 1
dr = 2π n +
h̄ 2

con n entero nonegativo. La integral es sobre un ciclo completo de


oscilación. El problema se adimensionaliza haciendo las sustitucio-
nes
γ 2 h̄2
E = V0 E , r = aρ , V0 = 2
2a m
El valor de γ en el caso de la molécula de hidrógeno es 21,7, en el
de O2 es ∼ 150.
La condición integral de arriba se convierte en la exigencia que se
anule la función
s    
Z ρmax
1 1 1
Fn (En ) = γ En − 4 12
− 6 dρ − π n + (2.5.5)
ρmin ρ ρ 2

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


γ = 150 y n = 0, 1, 2 con −1 < En < 0 sabiendo que
 √ 1/6  √ 1/6
2 − 2 δn 2 + 2 δn
ρmin = , ρmax =
1 − δn 1 − δn

donde δn = 1 + En .
El programa que se diseñe debe ser útil también con otros potencia-
les V (r).
En la búsqueda de los ceros debe usar el método de la secante (in-
dicando, entre otras cosas, la tolerancia usada y cuántas iteraciones
fueron necesarias).

2.5. PROBLEMAS Facultad de Ciencias Fı́sicas y Matemáticas


Capı́tulo 3

Algebra lineal, interpolación,


recurrencias y ceros

3.1. Temas de álgebra lineal

3.1.1. Autovalores y autovectores


Los n autovalores αk de una matriz nosingular A de n × n se obtienen
determinando los ceros del polinomio caracterı́stico, det(A − α I). Conoci-
dos los autovalores αk , se puede determinar los autovectores encontra-
do el cero de la función de n − 1 variables ~x(k) · (A − αk I)~x(k) donde
(k) (k) (k)
~x(k) = (x1 , x2 , . . . xn ) se pide que se cumpla la condición ~x(k) ·~x(k) = 1.
Se aprecia que tanto los problemas de determinar los autovalores como
encontrar los autovectores se reducen a encontrar ceros, asunto que se
estudia en §3.2. Es útil consultar también la referencia [1].

3.1.2. Eliminación de Gauss


Se parte con un sistema inicial de ecuaciones
a11 x1 + a12 x2 + ... a1n xn = b1
a21 x1 + a22 x2 + ... a2n xn = b2
(3.1.1)
... ...
an1 x1 + an2 x2 + ... ann xn = bn

33
Interpolación Patricio Cordero S.

Este problema puede ser planteado como el de una matriz A multiplicando


a un vector desconocido ~x tal que se obtiene un vector ~b:

A~x = ~b (3.1.2)

y se plantea despejar ~x.


Hay que tener presente que se puede efectuar operaciones que cambian
la matriz A que no alteran al conjunto de valores {x j } que constituyen la
solución, aunque el orden de ellos pueda cambiar. Operaciones posibles
son

intercambiar dos filas de A

multiplicar una fila de A por algún número λ no nulo

sumarle a una fila, otra fila multiplicada por algún número λ

Para resolver (3.1.1) se recurre a las operaciones recién descritas.


Para comenzar se divide la primera ecuación por a11 y luego cada una de
las k-ecuaciones que sigue (k = 2..n) se reemplaza ak j por ak j − ak1 a1 j /a11 .
El resultado es

   
  x1 b1 /a11
1 a12 /a11 .. a1n /a11    
 0 x2 b2 − b1 a21 /a11
 a22 − a21a12 /a11 .. a2n − a21a1n /a11 

  
=


 ..  ..   ..  (3.1.3)
..    
.. ..
0 an2 − an1a12 /a11 .. ann − an1a1n /a11
xn bn − b1 an1 /a11

A continuación se procede de la misma manera con la submatriz de (n −


1) × (n − 1) y ası́ sucesivamente llegándose finalmente a un sistema de la
forma     ′ 
1 a′12 a′13 ... a′1n x1 b1
 0 1 a′ a2n   x2   b′2 
′    
 23 
 0 .. ..     
   ..  =  .. 
 .. .. ..   ..   .. 
.. .. .. 0 1 xn b′n

3.1. TEMAS DE ÁLGEBRA LINEAL Facultad de Ciencias Fı́sicas y Matemáticas


35 Métodos Numéricos

Que también puede ser visto como el sistema

x1 + a′12 x2 + a′13 x3 + ..+ a′1,n−1 xn−1 + a′1n xn = b′1


x2 + a′23 x3 + ..+ a′2,n−1 xn−1 + a′2n xn = b′2
x3 + ..+ a′3,n−1 xn−1 + a′3n xn = b′3
.. .. ..
.. .. ..
xn−1 + a′n−1,n xn = b′n−1
xn = b′n

Formalmente lo que se hizo fue encontrar una matriz no-singular S de


modo que SA = B y B es una matriz triangular superior. Esto es, A = S−1 B y
el problema se ha reducido a B~x = S~b que es fácil de resolver. Una forma
sencilla e ingenua de hacerlo se da en el programa de la fig. 3.1. Más
sofisticado es el proceso de comenzar con una matriz A y obtener una
matriz triangular se ilustra con el programa que se muestra en la figura
3.2.
El programa en fig. 3.1 es muy sencillo, puede ser muy inexacto e incluso
inestable. Si se considera los casos
         
1 3 2 x 24 0 3 2 x 20
 5 0 1   y  =  27  ;  5 0 1   y  =  27 
1 1 0 z 6 1 1 0 z 6
(3.1.4)
el programa en fig. 3.1 da en forma precisa el resultado (x = 4, y = 2, z = 7)
en el primer ejemplo, pero no funciona en el segundo caso. Más adelante
veremos un método que resuelve ambos casos.
Si la matriz A es no singular la resolución de este sistema da trivialmente
el resultado analı́tico del problema. Si se hace numéricamente hay que
hacer algunas consideraciones.
El método presentado en (3.1.3) o en la fig. 3.1 no es aplicable en forma
directa si a11 es nulo y si a11 en muy chico los errores pueden ser incontro-
lables. Lo mismo puede decirse si ã22 ≡ a22 − a21 a12 /a11 es muy pequeño
o, en general, el primer coeficiente de la primera ecuación, de lo que va
quedando, es muy pequeño. También hay que resolver el caso en que
ese “primer coeficiente de la primera ecuación de lo que va quedando” es
nulo.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

Una importante refina-


ción de esto es el méto- // rutina basica que usa el
do de Gauss con pivoteo // metodo de Gauss
que, sin embargo, no se void Despejando()
{ for(k=0; k<n-1; k++)
verá aquı́. Lo esencial es
{ for(i=k+1; i<n; i++)
que se debe permutar fi-
{ p = a[i][k]/a[k][k];
las o columnas de modo
for(j=k; j<n+1; j++)
de logar que los uii por los a[i][j] = a[i][j] - p*a[k][j];
que se va dividiendo sean }
lo más grandes posible. }
Esto se logra con una x[n-1] = a[n-1][n]/a[n-1][n-1];
matriz de permutación P. for(i=n-2; i>=0; i--)
Una matriz de permuta- { s = 0;
ción de n × n tiene ceros for(j=i+1; j<n; j++)
excepto que tiene un y { s += (a[i][j] * x[j]);
x[i] = (a[i][n] - s)/a[i][i];
solo un elemento 1 en ca-
}
da fila y en cada colum-
}
na, por ejemplo }
 
0 0 1
Figura 3.1: Versión ingenua del método de Gauss
P =  1 0 0  (3.1.5)
0 1 0

Existen n! matrices de permutación de n × n.


Se trabaja con matrices cuadradas, reales simétricas o hermı́ticas. La no-
tación es
 
a11 a12 a13 a14
 a21 a22 a23 a24 
A= a31 a32 a33 a34 

a41 a42 a43 a44

Ella puede multiplicar un vector columna en la forma A~x. El asunto es


tener un método para resolver

A~x = ~b (3.1.6)

3.1. TEMAS DE ÁLGEBRA LINEAL Facultad de Ciencias Fı́sicas y Matemáticas


37 Métodos Numéricos

SistemaTriangular.c
#include <stdio.h> // Se trata de resolver M x = b reduciendo el
#include <math.h> // problema a uno triangular
#include <stdlib.h>
#define N 16
int Np;
double A[N][N], Ap[N][N];
double nor;
void Matriz() // define matriz A
{ int i,j;
for(i=0; i<N; i++)
{ for (j=0; j<N; j++)
{ if( i==j && drand48()<0.4) A[i][j] = 0.0;
else A[i][j] = 2.0*(0.5-drand48());
Ap[i][j] = A[i][j];}}}
void Impr0() //
{ int i,j;
for(i=0; i<N; i++)
{ for (j=0; j<N; j++)
printf("%6.2f ",A[i][j]); printf("\n"); }}
void Impr()
{ int i,j;
for(i=0; i<N; i++)
{ for (j=0; j<N; j++)
printf("%6.2f ",nor*Ap[i][j]); printf("\n"); } }
void NuevaA()
{ int i,j;
for(i=0; i<N; i++)
{ for (j=0; j<N; j++) A[i][j] = Ap[i][j]; } }
void Paso()
{ int i,j,k,jm;
double A11;
jm = 0;
nor= A[0][0];
do{ A11 = A[jm][jm];
for(j=jm; j<N; j++) //se divide la linea jm por A[0][0]
Ap[jm][j] = A[jm][j]/A11;
printf(">>>>> A[%d,%d]=%f\n",jm,jm,Ap[jm][jm]);
for(i=jm+1; i<N; i++)
{ for(j=0; j<N; j++)
Ap[i][j] = A[i][j] - A[i][jm]*A[jm][j]/A11;}
NuevaA();
printf("----------jm=%d-----------------\n",jm);
Impr0();
jm++; }while(jm<N);}
main()
{ srand48(15035);
printf("---------------------------\n\n");
Matriz();
Impr0();
Paso();
printf("--\n\n"); }

Figura 3.2: Conversión de un sistema lineal de ecuaciones en uno triangular.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

el cual se puede plantear como el sistema de ecuaciones lineales

a11 x1 + a12 x2 + .. a1N xN = b1


a21 x1 + a22 x2 + .. a2N xN = b2
.. .. .. .. = .. (3.1.7)
.. .. .. .. = ..
aN1 x1 + aN2 x2 + .. aNN xN = bN

De la primera se puede despejar x1 , cuyo valor se reemplaza en las N − 1


ecuaciones restantes. De la primera de las N − 1 ecuaciones que quedan
se depeja x2 etc. Ası́ se obtiene un sistema triangular de ecuaciones: la
primera tiene todas las variables, la segunda tiene desde x2 en adelante y
la última tiene tan solo a xN . Se llamará bi j a los coeficientes de este sis-
tema triangular. Una vez que se tiene tal sistema se despeja trivialmente
xN de la última ecuación, con la cual ahora se puede despejar xN−1 de la
penúltima etc.
En general el procedimiento recién descrito no puede ser usado en forma
directa porque puede ocurrir que implique dividir por un número muy pe-
queño o incluso por cero. Es necesario usar un procedimiento que no tan
solo no acarree tales riesgos sino que además minimice el error.
El procedimiento consiste en intercambiar filas y columnas de tal modo
que se minimice los errores. El código en la fig. 3.3 ilustra esta idea.

3.1.3. Descomposición LU y PLU y uso de


la librerı́a gsl linalg.h
Una forma de llevar a cabo la eliminacion de Gauss consiste en factorizar
A en la forma
A = LU
donde L es una matriz triangular inferior y U es una matriz triangular su-
perior. Esta descomposición no es única y normalmente se agrega la con-
dición que Lkk = 1 o bien, Ukk = 1. La ventaja es que resolver un problema
triangular es muy sencillo.
No se verá los algoritmos explı́citos para hacer esta descomposición
Para resolver A~x = ~b, esto es, LU~x = ~b, se resuelve primero L~y = ~b y una
vez determinado ~y se resuelve U~x =~y.

3.1. TEMAS DE ÁLGEBRA LINEAL Facultad de Ciencias Fı́sicas y Matemáticas


39 Métodos Numéricos

EliminacionDeGauss.c
#include <stdio.h> // resuelve problema lineal: Ax=b
#include <math.h> // A = matrix NxN
#define N 5
double x[N], b[N]={20,27,6,1,3}; // datos a gusto
double a[N][N]={{0,3,2,1,2},{5,0,1,4,1},{1,1,0,0,4},{4,-2,1,3,0},
{8,-9,1,0,2}};
int indc[N];
// **************************************************************
void reordena()
{ int i, j, k, itmp;
double c1, pe, pe1, pj;
double c[N];
for(i = 0; i < N; ++i) // inicializacion del indice
indc[i] = i;
for(i = 0; i < N; ++i) // factores de escala para cada fila
{ c1 = 0;
for(j = 0; j < N; ++j) // fabs(X) = valor absoluto de X
{ if(fabs(a[i][j]) > c1) c1 = fabs(a[i][j]);}
c[i] = c1;
}
for(j = 0; j < N-1; ++j)// se busca elemento mas grande
{ pe1 = 0; // de cada columna
for(i = j; i < N; ++i)
{ pe = fabs(a[indc[i]][j])/c[indc[i]];
if(pe > pe1)
{ pe1 = pe;
k = i;
}}
itmp = indc[j]; //Se intercambia filas via indc[]
indc[j] = indc[k];
indc[k] = itmp;
for(i = j+1; i < N; ++i) // se procede a guardar
{ pj = a[indc[i]][j]/a[indc[j]][j]; // los cuociente
a[indc[i]][j] = pj; //de reord bajo la diagonal
for(k = j+1; k < N; ++k) //Se modifica otros elementos
{ a[indc[i]][k] = a[indc[i]][k]-pj*a[indc[j]][k];}
}} // for j
}
// **************************************************************
void principal()
{ int i,j;
reordena();
for(i = 0; i < N-1; ++i)
{ for(j = i+1; j < N; ++j)
{ b[indc[j]] = b[indc[j]]-a[indc[j]][i]*b[indc[i]];}
}
x[N-1] = b[indc[N-1]]/a[indc[N-1]][N-1];
for(i = N-2; i>=0; i--)
{ x[i] = b[indc[i]];
for(j = i+1; j < N; ++j) { x[i] = x[i]-a[indc[i]][j]*x[j];}
x[i] = x[i]/a[indc[i]][i];
}
}
// **************************************************************
main() // *******************************************************
{ int i;
principal();
for(i=0; i<N; i++) printf("%16.8f\n", x[i]);
}

Figura 3.3: Código en C para aplicar el método de eliminación de Gauss.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

Una matriz cuadrada A tiene una descomposición LU en dos matrices


triandulares, L por lower y U por upper en la forma

PA = LU

donde P es una matriz de permutación, L una matriz unitaria inferior y U


es una matriz triangular superior. La utilidad está en que el sistema A~x =~b
se convierte en dos problemas triangulares L~y = P~b y U~x = ~y que puede
ser resuelto por sustitución inversa.
Ejemplo muy sencillo. Para el problema
    
2 4 1 x1 1
A~x = ~b  −10 −8 11   x2  =  −20  (3.1.8)
8 22 33 x3 2

se usa la descomposición A = LU
  
1 0 0 2 4 1
A =  −5 1 0   0 12 16  (3.1.9)
4 21 1 0 0 21

esto es    
1 0 0 2 4 1
L =  −5 1 0  U =  0 12 16  (3.1.10)
4 12 1 0 0 21

El problema (3.1.8) se reduce a dos problemas más sencillos, L~y =~b (L es


triangular) y una vez conocido ~y se resuelve U~x = ~y donde ahora U es
triangular
        
1 0 0 y1 1 y1 1
L~y =  −5 1 0   y2  =  −20  ⇒  y2  =  −15 
4 21 1 y3 2 y3 11
2

y, conocido ~y, se resuelve el segundo problema triangular


    
2 4 1 x1 1
 0 12 16   x2  =  −15 
0 0 21 x3 11
2

3.1. TEMAS DE ÁLGEBRA LINEAL Facultad de Ciencias Fı́sicas y Matemáticas


41 Métodos Numéricos

#include <stdio.h>
#include <math.h>
#include <gsl/gsl_linalg.h>
main()
{ int s;
double A[] ={ 2.0, 4.0, 1.0, // matriz a invertir:
-10.0, -8.0, 11.0,
8.0, 22.0, 33.0 };
double b[] = { 1.0, -20.0, 2.0};
gsl_matrix_view m = gsl_matrix_view_array(A, 3, 3);
gsl_vector_view b = gsl_vector_view_array(b, 3);
gsl_vector *x = gsl_vector_alloc (3);
gsl_permutation * p = gsl_permutation_alloc(3);
gsl_linalg_LU_decomp(&m.matrix, p, &s);
gsl_linalg_LU_solve(&m.matrix, p, &b.vector, x);
printf ("x = \n");
gsl_vector_fprintf(stdout, x, "%g");
double determinant = gsl_linalg_LU_det(&m.matrix, s);
printf("Determinante: %lf\n",determinant);
gsl_permutation_free (p);
}

Figura 3.4: Modificando los datos en este programa se resuelve el segundo ejemplo de
la ecuación (3.1.4).

el cual da:

899 403 11
x1 = = 3,56746 x2 = − = −1,59921 x3 = = 0,261905
252 252 42

Un código como el que aparece en la fig.3.3 resuelve el problema anterior:


Ejemplo con permutación no trivial:
 
0 1 1 −3
 −2 3 1 4 
A =   = PLU
 0 0 0 1 
3 1 0 0
   
0 1 0 0 1 0 0 0 −2 3 1 4
 1 0 0 0  0 1 0 0   1 −3 
=    0 1  (3.1.11)
 0 0 0 1   − 3 11 1 0   0 0 −4 45 
2 2 2
0 0 1 0 0 0 0 1 0 0 0 1

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

3.1.4. Método del gradiente conjugado


Se desea resolver el sistema lineal de ecuaciones

A~x = ~b (3.1.12)

donde A es una matriz real, simétrica (AT = A), positiva definida, esto
es, satisface: ~x · A~x > 0 , para todo ~x real no nulo. La única solución del
problema se denota ~x∗ .
Por definición dos vectores ~u y ~v son conjugados si

~u · A~v = 0 (3.1.13)

Si se define el producto escalar

(~r, ~s) ≡~r · A~s (3.1.14)

la relación (3.1.13) expresa que ~u y ~v son ortogonales.


Sea {~ek }N
k=1 un conjunto de N vectores mutuamente conjugados, esto es

(~e j , ~ek ) = constate δ jk (3.1.15)

Ellos constituyen una base en ortonormal—en el sentido de (3.1.14)—en


Rn . Con esta base se plantea la expansión

~x∗ = ∑ αk ~ek (3.1.16)


k

La ecuación (3.1.12) es
~b = A~x∗ = ∑ αk A~ek ⇒ ~e j ·~b =~e j · A~x∗ = ∑ αk~e j · A~ek = α j ~e j · A~e j = α j (~e j ·~e j )
k k
(3.1.17)
Por lo tanto
~e j ·~b
αj = (3.1.18)
~e j · A~e j

El método de gradiente conjugado consiste en buscar el vector ~x tal que


1
f (~x ) = ~x · A~x −~x ·~b (3.1.19)
2
3.1. TEMAS DE ÁLGEBRA LINEAL Facultad de Ciencias Fı́sicas y Matemáticas
43 Métodos Numéricos

sea mı́nimo, con ~x ∈ Rn . Un poderoso método para encontrar los ceros


de funciones f (~x ) que pueden tener formas mucho más complicadas se
describe en §3.2.6.
El método actual consiste en generar una secuencia de vectores ~xa con
a = 0, 1, ... para los que f (~xa ) es cada vez menor. Es obvio que f es mı́nima
en el punto ~x∗ , solución del problema. Notemos que

∇~x f = A~x −~b (3.1.20)

Escogiendo nulo el primer término de la secuencia, ~x0 = 0, el gradiente en


ese punto es ∇~x f (~0) = −~b. El primer vector base se toma igual a menos
ese gradiente: ~e1 =~b. El resto de los vectores base deben ser conjugados
al gradiente, de ahı́ el nombre del método.
Definiendo
~ra = ~b − A~xa = −∇ f (~xa ) (3.1.21)

se puede deducir que

~ec · A~rk
~ek+1 =~rk − ∑ ~ec (3.1.22)
c≤k ~ec · A~ec

El siguiente ~x óptimo es

~xk+1 =~xk + αk+1~ek+1 (3.1.23)

Un esquema de código que hace todo lo anterior comienza inicializando a


partir de un vector adivinado ~x0 :

~r0 = ~b − A~x0
~p0 =~r0
~r0 ·~r0
α0 = (3.1.24)
~p0 · A~p0

~x1 =~x0 + α0~p0

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

para luego hacer una iteración desde k = 0 hasta que converja


~rk+1 =~rk − αk A~pk
~rk+1 ·~rk+1
βk =
~rk ·~rk
~pk+1 =~rk+1 + βk~pk
~rk+1 ·~rk+1 (3.1.25)
αk+1 =
~pk+1 · A~pk+1

~xk+2 =~xk+1 + αk+1~pk+1

No está garantizado que siempre converja.

3.2. Recurrencias, puntos fijos y ceros


Muchos métodos numéricos hacen uso de métodos iterativos. Es intere-
sante entonces saber decidir cuándo estos métodos son estables y bajo
qué condiciones convergen. Una sucesiones puede ser convergente, di-
vergente o tener algún comportamiento más complicado. Un caso clásico
es el mapa logı́stico
xn+1 = A xn (1 − xn ) , 0 < A ≤ 4 (3.2.1)
definida para 0 ≤ x < 1. Compruebe, por ejemplo, que para A = 3,1 los xn
terminan saltando entre dos valores fijos.

3.2.1. Estabilidad
La recurrencia
x′ = g(x) (3.2.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⋆ ) (3.2.3)

3.2. RECURRENCIAS, PUNTOS FIJOS Y CEROS Facultad de Ciencias Fı́sicas y Matemáticas


45 Métodos Numéricos

de donde se concluye que si |g′ (x⋆ )| < 1 la iteración converge hacia el


punto fijo, lo que se conoce como estabilidad lineal del punto fijo x⋆ de
g(x). También se dice que x⋆ es un atractor, ya que los puntos cercanos
son atraidos, via la iteración (3.2.2), hacia x⋆ .
Por ejemplo, (3.2.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 (3.2.1) en todo el rango permitido de A.

3.2.2. Ceros

3.2.3. Encajonamiento
La idea es seleccionar dos puntos x1 y x2 , (x1 < x2 ). Si el signo de la función
es el mismo en ambos puntos variar la posición de estos puntos hasta que
f1 f2 < 0.
Si se ha escogido dos semillas cercanas, entonces se procede a alejar las
dos semillas, si son semillas muy distantes se busca ir acercándolas. Sólo
consideraremos el primer caso.
Si se tiene que f1 f2 > 0, se escoge α > 1 y se procede en la forma que se
bosqueja en en las rutinas que siguen.
La rutina en fig. ?? termina cuando se tiene puntos en los cuales la función
tiene distinto signo, esto es f1 f2 < 0. A continuación se procede a acercar
los dos puntos bajo la condición que la función en todo momento tenga
signo distinto. Esto se denomina encajonar. Existen diversas estrategias
para encajonar. Un forma muy sencilla—aunque no es la más eficiente—
consiste en usar un código como el que se indica:

f1 = f(x1); f2 = f(x2);
while(f1*f2>0)
{ if (fabs(f1) < fabs(f2))
{ x1 += alpha*(x1-x2);
f1 = f(x1);}
else
{ x2 += alpha*(x2-x1);
f2 = f(x2);}
}
Los puntos se separan hasta detectar que f(x1)*f(x2)
es negativo. Luego se procede con:

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

f1 = f(x1); f2 = f(x2);
do
{ xm = 0.5*(x1+x2);
fm = f(xm);
if(f1*fm < 0.0)
{ x2 = xm; f2 = fm; }
else
{ x1 = xm; f1 = fm; }
}while(fabs(x2-x1)>tolerancia);

3.2.4. Método de Newton y de la secante


Una forma de buscar—en
forma que suele ser preci-
sa y rápida—los ceros de void cero(double xs)
{ double cn;
una función f (x), cuya ubi- xp = xs + 1e-2;
cación se conoce en forma fs = f(xs);
fp = f(xp);
aproximada, consiste en ite- do
rar usando {xa = (xs*fp - xp*fs)/(fp-fs);
fs = fp;
xs = xp;
f (x) fp = f(xa);//notar que f es lla-
g(x) = x − ′ (3.2.4) xp = xa; //mada una sola vez
f (x)
cn = fabs(xp-xs);
printf("%14.11f %14.11f\n",
Si x0 es un cero de f (x), es xp,fp);
fácil comprobar que g′ (x0 ) = }while(cn>tolerancia muy chica);
}
0, que implica que x0 es pun- main()/*****************/
to fijo (localmente) estable { printf("semilla=");
scanf("%lf",&xs);//espera dato
de g(x). Este es le método de cero(xs); //por teclado
Newton para obtener ceros. }

Suele ocurrir que se necesi-


Figura 3.5: Versión sencilla para usar méto-
te conocer la ubicación pre- do de la secante. Notar que la instrucción que
cisa de los ceros de una fun- se ha puesto es printf("semilla"); y no
ción demasiado complicada printf("semilla\n");
para poder tener una forma analı́tica para f ′ (x). Esto impide poder ha-
cer uso de (3.2.4). Existe un método inspirado en el anterior que es fácil
de programar y normalmente de convergencia muy rápida. En lugar de
(3.2.4) se usa
fn
xn+1 = xn − f − f
n n−1
xn −xn−1

3.2. RECURRENCIAS, PUNTOS FIJOS Y CEROS Facultad de Ciencias Fı́sicas y Matemáticas


47 Métodos Numéricos

que se simplifica a
xn−1 fn − xn fn−1
xn+1 = (3.2.5)
fn − fn−1
y que se conoce como el método de la secante y estrictamente corres-
ponde a xn+1 = g(xn , xn−1 ).
Un buen programa no debiera producir jamás un mensaje de error. En el
caso de arriba, fig. 3.5 no se ha precavido el caso en que el denominador
fn − fn−1 pueda anularse. Tampoco se ha previsto la posibilidad de que
jamás se logre convergencia de la secuencia. Conviene poner un contador
que no permita que se sobrepase algun número de iteraciones.
Los autores del siguiente algoritmo, publicado en 2007, afirman que es
mucho más estable que el método de la secante1 :
xn−1 fn−1
xn+1 = xn−1 − (3.2.6)
fn−1 + xn−1 xfnn − fn−1
−xn−1
fn − fn−1
= x2 (3.2.7)
xn−1 fn − 2xn−1 fn−1 + xn fn−1 n−1

♠ 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.

3.2.5. Puntos fijos con más de una variable


Lo anterior se puede generalizar al caso de N variables planteando la
relación de recurrencia
~x ′ = ~g(~x ) (3.2.8)
Si ~x0 es punto fijo de g entonces
~x0 +~ε ′ = ~g(~x0 +~ε )
= ~g(~x0 ) +~ε · (∇~g)x0 (3.2.9)
donde el último término en forma más explı́cita es
 
∂ gi
εj
∂ x j x0
1 C. Hu, Computing in Science and Engineering v.9, #5, p.78 (2007)

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

De (3.2.9) se obtiene entonces que

~ε ′ = J0~ε (3.2.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 = e−ak +i bk
son tales que todos los ak son positivos .

3.2.6. Método de la secante en varias variables


Se desea encontrar los ceros de
 
F1 (~r )
~F(~r ) =  ..  (3.2.11)
Fn (~r )

donde ~r = (x1 , x2 , . . .xn ). Es decir, se busca puntos ~r0 en los que todas las
funciones Fn (~r ) se anulan simultáneamente.
El método de Newton generalizado a este problema se plantea a partir de
definir
~r ′ = ~g(~r ) ≡~r − J−1 (~r ) ~F(~r ) (3.2.12)

donde J es el Jacobiano ∂∂ xFij de ~F. En efecto, el lado izquierdo se escribe


en torno a un cero de ~F: ~g(~r0 +~ε ) ≈ ~g(~r0 ) +~ε ′ . El correspondiente lado de-
recho es ~r0 +~ε más el producto de las expansiones de J−1 y de ~F. Pero la
expansión de este último es ~F(~r0 ) = 0 más J0~ε , donde el ı́ndice cero indi-
ca que el Jacobiano es evaluado en~r0 . Siendo J0~ε una cantidad de primer
−1
 expandir el factor J (~r ) sino que basta con tomar
orden, no es necesario

sencillamente J−1 0 . Con todo lo anterior se ve que a primer orden, el
lado derecho de (3.2.12) se anula: el Jacobiano J de la función ~g(~r ) eva-
luado en los ceros de ~F (no confundirlo 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 (3.2.12).

3.2. RECURRENCIAS, PUNTOS FIJOS Y CEROS Facultad de Ciencias Fı́sicas y Matemáticas


49 Métodos Numéricos

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


∂ F1 ∂ F1
! !
∂ F2 ∂ F1
∂x ∂y 1 −
J= ∂ F2 ∂ F2 , det(J) = ∆ & J−1 = ∂y
∂ F2
∂y
∂ F1
∂x ∂y
∆ − ∂x ∂x

El método de la secante se obtiene a partir de lo anterior usando, en lugar


de J, la matriz de cantidades tipo
ν ν −1
∂ Fi Fi (x j ) − Fi (x j )
≈ (3.2.13)
∂xj xνj − xνj −1

donde el ı́ndice ν se refiere a la iteración ν -ésima. Para no hacer muy pe-


sada la notación, se ha usado como argumento de Fi solamente la variable
x j que se está cambiando.
Ejercicio: Estudie numéricamente la secuencia

xn+1 = x2n − y2n + p , yn+1 = 2xn yn + q

Considere en especial los valores (p, q) siguientes: (0.32, 0.043), (-0.12375,


0.56508), (-0.39054,-0.58679) y (-0.11, 0.67).

3.3. Métodos de interpolación


A partir de un conjunto de N pares, o datos, {xk , yk }N
k=1 y se desea encon-
trar una función que describa estos como una función continua f (x). Hay
diversos métodos que a continuación se separan en dos grupos. En el pri-
mer grupo siempre se cumple que f (xk ) = yk , mientras que en el segundo
f (xk ) ≈ yk .

3.3.1. Interpolaciones leales


Estos son métodos que definen una función f (x) que satisface

f (xk ) = yk para todo k

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

3.3.1.1. Interpolación lineal

En este método se define una recta entre puntos consecutivos


yk+1 − yk
f (xk ≤ x ≤ xk+1 ) = yk + (x − xk ) (3.3.1)
xk+1 − xk
Se puede generalizar este método usando tres puntos (xk−1 , xk , xk+1 ) y
definir una curva cuadrática que pase por estos tres puntos. También se
puede usar más puntos, pero el método se deteriora porque resultan ex-
presiones que contienen oscilaciones.

3.3.1.2. Interpolación de Lagrange

Este método consiste en construir un polinomio P(x) asociado a un conjun-


to de N pares de valores {(x1 , y1 ), ...(xN , yN )}. Se define los N polinomios
de orden N − 1
N
(N) x − xk
p j (x) ≡ ∏ x j − xk
, j = 1,...N (3.3.2)
k=1,,k6= j

que satisfacen (N) p j (x j ) = 1 con lo cual la interpolación es


N
P(x) = ∑ (N) p j (x) yj (3.3.3)
j=1

que pasa sobre los N puntos de partida (xk , yk ), k = 1, ..N. Este método
es particularmente útil cuando se trata de pocos puntos.
En el caso N = 4 se debe definir los cuatro polinomios cúbicos
(4) (x − x2 )(x − x3 )(x − x4 ) (4) (x − x1 )(x − x3 )(x − x4 )
p1 = , p2 = ,
(x1 − x2 )(x1 − x3 )(x1 − x4 ) (x2 − x1 )(x2 − x3 )(x2 − x4 )

(4) (x − x1 )(x − x2 )(x − x4 ) (4) (x − x1 )(x − x2 )(x − x3 )


p3 = , p4 = .
(x3 − x1 )(x3 − x2 )(x3 − x4 ) (x4 − x1 )(x4 − x2 )(x4 − x3 )
Si, por ejemplo, se asocia a los cuatro puntos x1 , x2 , x3 , y x4 (k = 1, 2, 3, 4)
los valores xk = k −1 e yk = sin xk , el método anterior para P, usando (3.3.3),
da la expresión polinomial para sin x
sin x ≈ 1,207506817 x − 0,355642612 x2 − 0,0103932197 x3

3.3. MÉTODOS DE INTERPOLACIÓN Facultad de Ciencias Fı́sicas y Matemáticas


51 Métodos Numéricos

Este polinomio no se anula en x = π sino en x = 3,112, pero da el valor


correcto de sin(x) en cada uno de los cuatro puntos xk usados como datos
de entrada.

3.3.1.3. La aproximación de empalme (“spline”) cúbico

Dados los N datos (xi , yi ), i = 1 . . . , N, se define N − 1 funciones polinomia-


les de orden 3
fk (x) = yk +ck1 (x−xk )+ck2 (x−xk )2 +ck3 (x−xk )3 , xk ≤ x ≤ xk+1 , k = 0, . . .N −1
Puesto que cada una tiene tres coeficientes e debe determinar un total
de 3N − 3 coeficientes ck j . Para ellos se plantea el siguiente sistema de
ecuaciones
fk (xk+1 ) = yk+1 N − 1 ecuaciones

d fk−1 d fk
= N − 2 ecuaciones
dx xk dx xk (3.3.4)

d 2 fk−1 d 2 fk
= N − 2 ecuaciones
dx2 xk dx2 xk

d 2 f0
lo que da un total de 3N −5 ecuaciones. Al agregar condiciones dx2 x
=
0
d 2 fN−1
0 y dx2
= 0 se tiene las 3N − 3 ecuaciones necesarias.
xN
Este método se denomina “spline” cúbico porque se escoge polinomios
cúbicos. La palabra “spline” debe entenderse como “empalme”: el método
busca empalmar la función calculada en cada intervalo (xk , xk+1 ) exigiendo
continuidad de la función y sus dos primeras derivadas.
Los coeficientes se resuelven como un sistema lineal de 3N ecuaciones y
debe usarse algunos de los métodos ya descritos.

3.3.2. Métodos de ajuste suavizado


Son métodos que buscan una función suave que satisfaga
f (xk ) ≈ yk

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

3.3.2.1. Mı́nimos cuadrados

Usando polinomios simples. El objetivo es, dada una lista de valo-


res yk asociados a puntos dados xk con k = 1, . . ., N, ajustar una función
f (x, {β }) tal que
N N
S= ∑ rk2 ≡ ∑ (yk − f (xk , {β }))2 (3.3.5)
k=1 k=1
tenga un valor mı́nimo, donde {β } representa un conjunto de m paráme-
tros que se debe ajustar.
A las diferencias rk ≡ yk − f (xk , {β }) se los llama residuos.
Las condiciones que impone exigir que S tenga el menor valor posible son
las m ecuaciones
∂S ∂ rk
= 2 ∑ rk = 0, s = 1, . . ., m (3.3.6)
∂ βs k ∂ βs
La forma estándar de abordar este problema consiste en dar una depen-
dencia lineal en los β a las f , del tipo
f (xk , β ) = ∑ βs φs (xk ) (3.3.7)
s

Si se define
∂ f (xi , β )
Xis = = φs (xi ) (3.3.8)
∂ βs
Acá no se demostrará que los β están dados por
−1 T
β = XT X X y (3.3.9)

Ejemplo. Se toma los mismos cuatro puntos xk y los mismos yk = sin xk y


se define
f (x, {β }) = β1 + β2 x + β3 x2 + β4 x3
Nótese que se ha escogido φ1 = 1, φ2 = x, φ3 = x2 y φ4 = x3 . Evaluado para
los cuatro valores de xk , de modo que cada rk = yk − f (xk , {β }) sea lineal
en los β y por esto S es cuadrático en los β . Las ecuaciones ∂ S/∂ βs = 0
son lineales en los β y triviales de resolver. En el presente ejemplo se
obtiene
β1 = −1,416666667 10−9 , β2 = 1,207506832 ,
β3 = −0,3556426262 , β4 = −0,01039321669

3.3. MÉTODOS DE INTERPOLACIÓN Facultad de Ciencias Fı́sicas y Matemáticas


53 Métodos Numéricos

con lo cual la función seno queda aproximada por

sin x ≈ −1,416666667 10−9 +1,207506832 x−0,3556426262 x2 −0,01039321669x3

que coincide con la solución obtenida antes.

3.3.2.2. Ajuste no paramétrico

Si se tiene datos tipo experimentales {xi , yi }N


i=1 y se desea un ajuste sin
parámetros se plantea definir una función que represente algún tipo de
promedio de los puntos vecinos. Para ello se define una función K(x) que
debe cumplir

1. K es finita
R
2. K es finita

3. preferentemente que tenga suporte finito

4. rápida de evaluar

5. continua y de derivada continua

para definir
∑i yi K(x − xi )
f (x) = (3.3.10)
∑i K(x − xi )
Nótese que la distribución de Gauss no es una buena elección porque
tiene soporte infinito. Tampoco resulta una función escalón porque no es
diferenciable.
Una posible elección es
 2
 (a − x2 )2 si |x| ≤ a
K(x) =

0

Con este método se puede evaluar en cualquier punto x dentro del rango
cubierto por los datos, pero no es sensato intentar extrapolar.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

3.3.3. Interpolación mediante el aproximante de Padé


Algunas funciones no pueden ser expresadas en forma polinomial con
precisión apropiada, como es el caso de una expansión en serie truncada,
S
f (n) (0)
f (x) ≈ ∑ cn xn , donde cn =
n!
(3.3.11)
n=0

Lo que puede resultar muy efectivo es aproximar la función como una


función racional, esto es, el cuociente de dos polinomios,
∑Mi=0 ni x
i
f (x) ≈ RM,N (x) = (3.3.12)
1 + ∑Nj=1 d j x j
donde los M +N +1 = S coeficientes ni y d j deben ser determinados y para
ello se exige que RM,N (x) satisfaga

R(0) = f (0); R(k) (0) = f (k) (0) para k = 1, 2.., (M + N) (3.3.13)


donde Y (k) se refiere a la derivada de orden
k de Y . En (3.3.13) se tiene M + N + 1 ecua-
ciones para igual número de incógnitas. En
otras palabras, se exige que la expanción en
serie de RM,N (x) hasta potencia M + N coinci-
da con la expansión de f (x) hasta la misma
potencia.
Por ejemplo
Figura 3.6: De estas tres cur-
1 − x2 vas, la que está bajo todas co-
f= sin x rresponde a la que es el cuo-
1 + x2 ciente de un polinomio cúbico
tiene un desarrollo en serie sobre uno cuártico, la del me-
dio es la función exacta y la que
f ≈ x − 13 3 281 5 2369 7 852913 9
6 x + 120 x − 1008 x + 362880 x
está sobre todas es de primer
orden en el numerador y de or-
93820541 11 den 6 en el denominador. La se-
− 39916800 x +... rie misma diverge a −∞ muy
rápido.
que diverge rápidamente, mientras que la
aproximación de Padé
x − 1,009135886x3
f≈
1 + 1,157530781x2 + 0,1663166920x4

3.3. MÉTODOS DE INTERPOLACIÓN Facultad de Ciencias Fı́sicas y Matemáticas


55 Métodos Numéricos

representa a la función en un rango más amplio. Puede compararse


además con
x
f≈ 13 2 847 4 35899 6
1 + 6 x + 360 x + 15120 x
También se podrı́a intertar, por ejemplo, un polinomio cuártico dividido por
uno cúbico.
En general para obtener los coeficiente de Padé se debe resolver un sis-
tema lineal de ecuaciones, métodos que—como se ha visto—-si no son
bien tratados, podrı́an dar poca precisión. Se sabe que por lo menos se
debe usar el método de factorización LU posiblemente seguido por algún
método iterativo que mejore la precisión.

3.4. Problemas
3.1 Haga un programa utilizando el método de gradiente conjugado que
resuelva el sistema con seis incógnitas xk : A~x = ~b donde
   
4 1 2 3 2 −2 26
 1 3 2 1 0 1   21 
   
 2 2 1 3 1 3   38 
A=  ~b =  
 3 1 3 5 2 −1   40 
   
 2 0 1 2 1 2   26 
−2 1 3 −1 2 5 35

En C el resultado de 9/10 puede dar cero. Se debe escribir 9.0/10.0.

3.2 (a) Se trata de probar el método de ajuste no paramétrico que se


define en §3.3.2.2 a partir de una función Ka (x) con soporte en −a ≤
x ≤ a que tenga forma de campana anulándose en los puntos ex-
tremos. Considere el archivo “DatosT2.dat” de N pares (xa , ya ) que
puede bajar de ucursos. Defina dos funciones Ka (x) diferentes y por
cada una de ellas utilice 3 valores de a. Esto da seis funciones Fβ (x)
con β = 1, 2, .,6.
(b) Además compare los seis ajustes anteriores con el interpolación
de Lagrange FL . ¿Cuán suave es esta interpolación? Si fuese intere-
sante incluya un detalle (un zoom) que muestre una pequeña zona
de la interpolación y los puntos dados.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

(c) Para cada uno de estas Fβ y de FL obtenga la suma S = N1 ∑k (yk −


F(xk ))2 . Un buen ajuste debe ser suave y tener un Sβ tan pequeño
como sea posible. Comente.

3.3 (a) Haga un programa que busque los ceros del polinomio: P =
x7 − 3x6 − 8 x5 + 20 x4 + 15 x3 − 13 x2 + 24 x − 36 que incluya tres ruti-
nas diferentes para buscar ceros: método de Newton, de la secante,
algún método de encajonamiento. Aleatoriammente el programa de-
be generar al menos 30 semillas diferentes, que se ubiquen entre
−3 y 3, con las que se debe probar todas las rutinas “busca cero” y
por cada una de ellas debe anotar qué cero de P obtuvo y cuántas
iteraciones fueron necesarias en cada caso. Es muy importante que
cada una de las rutinas que buscan ceros tengan un lı́mite al número
de iteraciones que hace (por ejemplo, no hacer más de 50 iteracio-
nes). Su informe debe tener una tabla con columnas que den la se-
milla, el algoritmo, la raı́z obtenida y el número de iteraciones; puede
decir “ninguna” ya que un algoritmo puede fallar con algunas semi-
llas. En C el generador de semillas puede ser: semilla = -3.0 +
6.0*drand48();
(b) Usando el algoritmo visto en clases encuentre los ceros simultáneos
de F1 (x, y) = x4 + y4 − 10 y F2 (x, y) = x3 y − x y3 − 0,5 y − 2,0. Esto es, de-
be encontrar pares p j = (x j , y j ) en los cuales ambas funciones son
nulas. Indique cuántas iteraciones fueron necesarias en cada caso.

3.4. PROBLEMAS Facultad de Ciencias Fı́sicas y Matemáticas


Capı́tulo 4

Ecuaciones diferenciales
ordinarias

4.1. Reducción a ecuaciones de primer orden


El problema de resolver

d2g
= F(ξ , g, g′) con condiciones inicial (4.1.1)
dξ 2

puede ser replanteado en la forma

d~y ~
= f (ξ ,~y) con condiciones iniciales (4.1.2)

donde    
g ~f = y2
~y = , (4.1.3)
y2 F
es decir
dg dy2
= y2 , = F(ξ ; (g, y2)) (4.1.4)
dξ dξ
Se puede adivinar de lo anterior que siempre se puede reducir un pro-
blema de ecuaciones diferenciales ordinarias de orden mayor a uno a un
sistema de ecuaciones de primer orden.

57
Interpolación Patricio Cordero S.

~ puede plantearse definiendo


Por ejemplo ~x¨ = m1 F
   
~x ~ ~v
~y = f= 1~ (4.1.5)
~v mF

con lo que el problema consiste en resolver el sistema


d~x d~v 1
=~v , = ~F (4.1.6)
dt dt m

A continuación se verá una serie de métodos para abordar (4.1.2).

4.1.1. Método directo simple (de Euler)


Este método consiste en plantear (4.1.2) en la forma
 
′ yn+1 − yn h ′′
yn+1 = −O y = fn
h 2
y de aquı́ definir la recurrencia

yn+1 = yn + h fn + O(h2) (4.1.7)

Una forma para tratar de mejorar la precisión podrı́a consistir en aproximar


y′ → (yn+1 − yn−1 )/2h con lo que la ecuación a iterar es

yn+1 = yn−1 + 2h fn + O(h3 ) (4.1.8)

pero ambas recurrencias sufren del mismo problema de estabilidad.

Estabilidad de (4.1.8): Sea ȳ la solución exacta del problema discreto.


Se define εn tal que yn = ȳn + εn con lo cual (4.1.8) pasa a ser

ȳn+1 + εn+1 = ȳn−1 + εn−1 + 2h f (ξn , ȳn + εn )


 
∂ f (ξn , ȳn )
= ȳn−1 + εn−1 + 2h f (ξn , ȳn ) + εn (4.1.9)
∂y
de donde
∂ f (ξn , ȳn )
εn+1 = εn−1 + 2h εn (4.1.10)
∂y

4.1. REDUCCIÓN A ECUACIONES DE PRIMER ORDEN Facultad de Ciencias Fı́sicas y Matemáticas


59 Métodos Numéricos

que es la ecuación que da la forma como se propaga el error. Si la función


f no es muy sensible a y se puede razonar suponiendo que es constante
y en tal caso se trabaja con εn+1 = εn−1 + 2 γ εn . Esta última ecuación se
puede resolver suponiendo que

εn = ε0 λ n
porque
p (4.1.10) se recuce a λ 2 − 2γ λ − 1 = 0 que da las raices λ± = γ ±
1 + γ 2 y entonces
εn = A λ+n + B λ−n (4.1.11)
• 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
cambiando de signo. La solución numérica que se obtiene va oscilando
en torno a la solución ȳ con amplitud creciente.
Es decir, el método es incondicionalmente inestable y no sirve.

4.1.2. Método implı́cito


La ecuación (4.1.2) se plantea
   
dy
= f ξn+ 1 , yn+ 1 (4.1.12)
d ξ n+ 1 2 2
2

El lado izquierdo se reescribe como


yn+ 1 + 1 − yn+ 1 − 1 yn+1 − yn
2 2 2 2
+ O(h2) = (4.1.13)
2 h2 h

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


n + 1, 21 [ fn + fn+1 ] con lo cual resulta
h
yn+1 = yn + ( fn + fn+1 ) + O(h3) (4.1.14)
2
La incógnita, yn+1 aparece en ambos lados, por tanto, en cada paso de
iteración se debe buscar el cero de la función
h
G(z) = z − yn − [ f (ξn , yn ) + f (ξn + h, z)]
2

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

Estabilidad del método implı́cito: En forma análoga a como se pro-


cedió en el caso anterior se plantea
h
ȳn+1 + εn+1 = ȳn + εn + ( f (ξn , ȳn + εn ) + f (ξn+1 , ȳn+1 + εn+1 ) (4.1.15)
2
Expandiendo y trabajando un par de pasos se obtiene que
h
εn+1 = εn + (∂y fn εn + ∂y fn+1 εn+1 ) (4.1.16)
2
El último εn+1 puede ser reemplazado por εn ya que la diferencia es de
más alto orden. Entonces
 
h
εn+1 ≈ εn 1 + (∂y fn + ∂y fn+1 ) (4.1.17)
2
Lo crucial es el signo del paréntesis redondo en la expresión anterior. Si
es negativo el error decrece.
Como se ve, lo que importa es el signo de dy/d ξ . Si la función es cre-
ciente, el error crece (aunque puede que porcentualmente crezca menos
que la función) y si la función decrece el error decrece. El método puede
funcionar y puede no funcionar: es condicionalmente estable.

4.1.3. Algoritmos Runge-Kutta


Esta vez (4.1.2) se plantea en la forma
d~y
= ~f (ξ ,~y)

~y(0) = ~y0
Y se usa dos expansiones de Taylor,
h2 ′′
~yn+1 =~yn + h~yn ′ + ~yn + O(h3) (4.1.18)
2
h
~yn+ 1 ′ =~yn ′ + ~yn ′′ + O(h2) (4.1.19)
2 2
De la última, multiplicada por h, se obtiene
h2 ′′  ′ ′

~yn = ~yn+ 1 −~yn h + O(h3 ) (4.1.20)
2 2

4.1. REDUCCIÓN A ECUACIONES DE PRIMER ORDEN Facultad de Ciencias Fı́sicas y Matemáticas


61 Métodos Numéricos

Que se reescribe utilizando la ecuación original

h2 ′′ ~ ′

~yn = fn+ 1 −~yn h + O(h3 ) (4.1.21)
2 2

Al reemplazar esta expresión en (4.1.18) se cancelan las primeras deriva-


das y se obtiene
h h
~yn+1 =~yn + h ~f (ξn + ,~yn + ~fn ) (4.1.22)
2 2
Este resultado final conocido como RK2, tradicionalmente se reescribe en
la forma
~k1 = h ~f (ξn ,~yn )
~k2 = h ~f (ξn + h ,~yn + 1~k1 ) RK2 (4.1.23)
2 2
~
~yn+1 = ~yn + k2 + O(h ) 3

Este método es explı́cito, el error es orden h3 y puede hacerse estable. La


desventaja es que la función f debe ser llamada dos veces en cada itera-
ción. Otra ventaja es que, puesto que avanza paso a paso y no requiere
de información anterior, se puede ir ajustando el paso h a medida que se
avanza en la integración.
Siguiendo un camino semejante se obtiene algoritmos de más alto orden.

RK3:
~k1 = h ~f (ξn ,~yn )
~k2 = h ~f (ξn + h ,~yn + 1~k1 )
2 2
~k3 = h ~f (ξn + h,~yn −~k1 + 2~k2 ) (4.1.24)
1 
~yn+1 = ~yn + ~k1 + 4~k2 +~k3 + O(h4)
6

RK4:
~k1 = h ~f (ξn ,~yn )
~k2 = h ~f (ξn + h ,~yn + 1~k1 )
2 2
Universidad de Chile Escuela de Ingenierı́a y Ciencias
Interpolación Patricio Cordero S.

~k3 = h ~f (ξn + h ,~yn + 1~k2 ) (4.1.25)


2 2
~k4 = h ~f (ξn + h,~yn +~k3 )
1 
~yn+1 = ~yn + ~k1 + 2~k2 + 2~k3 +~k4 + O(h5 )
6

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


bilidad.
Desventaja: se debe calcular f cuatro veces en cada iteración.

Sobre el paso variable. Para que el método sea preciso la magnitud de


los ~ka deben ser mucho menores que δ ≡ k~yn+1 −~yn k. Si se va detectando
que tales magnitudes se acercan a δ se debe escoger h más chico. Por el
contrario, si k~ka k ∼ δ entonces se debe agrandar h.

4.1.4. Estabilidad de RK4 en el caso y′ = λ y


Un análisis completo de estabilidad depende de la ecuación particular que se quiera
tratar, pero la tendencia general de cada esquema de integración puede sondearse es-
tudiando lo que ocurre en el caso de la sencilla ecuación y′ = λ y. En lo que sigue se
estudiará para esta ecuación la estabilidad de RK4. Calcularemos los ka y finalmente
usaremos la expresión para yn+1 dada en (4.1.25). En las expresiones de los ka se re-
emplaza f por λ multiplicando al segundo argumento de f que, genéricamente es y,
obtieniéndose

k1 = h λ yn
   
1 h
k2 = h λ yn + k1 = h λ 1 + λ yn
2 2
   
h h
k3 = h λ yn + λ 1 + λ yn
2 2
  
h h
= hλ 1 + λ 1 + λ yn
2 2
   
h h
k4 = hλ 1 + hλ 1 + λ 1 + λ yn (4.1.26)
2 2

Al reemplazar estos valores en la expresión para yn+1 y escribiendo yn+1 = ȳn+1 + εn+1 y
similarmente yn = ȳn + εn (donde los ȳ son la solución exacta de la ecuación discreta, se
obtiene que
εn+1 (hλ )2 (hλ )3 (hλ )4
= 1 + hλ + + + (4.1.27)
εn 2 6 24

4.1. REDUCCIÓN A ECUACIONES DE PRIMER ORDEN Facultad de Ciencias Fı́sicas y Matemáticas


63 Métodos Numéricos

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 la estabilidad está garantizada con 0 < h < 2,7853, que da un
amplio margen para tener una ecuación absolutamente estable aun cuando, si h no es
pequeño, la solución va a ser posiblemente poco confiable.
Si λ > 0 se puede superar la limitación de estabilidad integrando en la
dirección opuesta, esto es, usando h < 0. Se comienza desde una “con-
dición final” y, por cierto no se llega a la condición inicial que se da como
dato. Por lo que debe volver a integrarse con otra “condición final” esco-
giéndola usando una rutina de Newton apropiada.

4.2. Integradores multipaso

4.2.1. Presentación
Nuevamente considérese la ecuación genérica

y ′ = f (ξ , y) (4.2.1)

Al integrarla entre ξn y ξn+1 se obtiene


Z ξn+1
yn+1 − yn = f (ξ , y(ξ )) d ξ (4.2.2)
ξn | {z }
G (ξ )

El integrando será denotado G (ξ ) y debe tenerse presente que es un valor


de y′ = f .
En este tipo de algoritmo debe tenerse una condición inicial: y0 = y(ξ0 ).
Puesto que f (ξ , y) es una función conocida, entonces de (4.2.1) se tiene
también y ′ (0). El valor y1 = y(ξ0 + h) se puede obtener, al menos en una
aproximación de bajo orden, por medio de y1 ≈ y0 + h y ′ (0). Si se necesi-
tara más puntos iniciales (por ejemplo y0 , y1 , y2 ), estos algoritmos deben
obtener esos primeros valores con alguna estrategia diferente como pue-
de ser RK4 con paso suficientemente fino.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

Al aproximar G (ξ ) ≈ Gn la integral en (4.2.2) resulta valer h Gn + O(h2 ) y se


obtiene
yn+1 = yn + h Gn + O(h2 )
que es el algoritmo de Euler, que ya se sabe que es inestable.

4.2.2. Algoritmo predictor de Adams-Bashforth


Los métodos AB1 que se discuten a continuación se basan en la predic-
ción del valor de F en el intervalo que se requiere en (4.2.2) usando como
información valores anteriores: Gn , Gn−1 . . .
Si se toma como aproximación que G (ξ ) = a ξ + b y que exige que tal
expresión sea válida en ξ = ξn−1 y en ξ = ξn se obtiene
−ξ + ξn ξ − ξn−1
G (ξ ) = Gn−1 + Gn + O(h2) (4.2.3)
h h
Si se extiende la validez de la expresión anterior al intervalo siguiente, en
él se puede hacer la integral
Z ξn+1  
3 1
G dξ = h Gn − Gn−1 + O(h2 ) (4.2.4)
ξn 2 2
Es decir, se usa el conocimiento de G en (ξn−1 , ξn ) para extrapolar al inter-
valo (ξn , ξn+1 ) y hacer la integral recién descrita. Esta extrapolación con-
duce al integrador AB3,
h
yn+1 = yn + (3 Gn − Gn−1 ) + O(h3 ) AB3 (4.2.5)
2
Claramente acá se ha usado la extrapolación como una forma de predecir
el comportamiento de la función.
A continuación, versiones más precisas. En la que sigue se aproxima G =
aξ 2 + bξ + c y los coeficientes (a, b, c) se determinan exigiendo que den
los valores Gn−2 , Gn−1 y Gn . Una vez que se tiene tales coeficientes se
tiene una forma cuadrática para F que se integra en el intervalo (ξn , ξn+1 ).
Finalmente se obtiene:
h
yn+1 = yn + (23Gn − 16Gn−1 + 5Gn−2 ) + O(h4 ) AB4 (4.2.6)
12
1 John Couch Adams (1819-1892)

4.2. INTEGRADORES MULTIPASO Facultad de Ciencias Fı́sicas y Matemáticas


65 Métodos Numéricos

En forma semejante pero ahora tomando en cuenta Gn−3 , Gn−2 , Gn−1 y Gn


se obtiene:
h
yn+1 = yn + (55Gn − 59Gn−1 + 37Gn−2 − 9Gn−3 ) + O(h5 ) AB5
24
(4.2.7)
Estos son métodos explı́citos de alto orden (error pequeño) y rápidos por-
que G 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 G es muy variable.
Por su propia naturaleza el paso h debe permanecer fijo.

4.2.3. Estimador de Adams-Moulton


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

AM3: Se toma
ξn+1 − ξ ξ − ξn
G (ξ ) = Gn + Gn+1 + O(h2 )
h h
que permite obtener que la integral de la derecha sea
Z ξn+1
Gn + Gn+1
G (ξ ) d ξ = h + O(h3 )
ξn 2

por lo cual

h
yn+1 = yn + (Gn + Gn+1 ) + O(h3) AM3 (4.2.8)
2
Este es un método implı́cito y es equivalente a alguno de lo métodos que
ya se habı́a visto. Para determinar yn+1 se debe buscar el cero de

h
G(z) = yn + (Gn + f (ξn+1 , z)) − z
2
Por definición G(yn+1 ) = 0.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

/*Se usa un predictor corrector de


bajo orden para integrar un pen-
dulo simple:
dˆ2 phi/dtˆ2 = -sin phi
//Se llama AM3 en los apuntes
Notacion: Y = phi
void Corrige()
o = omega
{ Y2 = Y1 + 0.5*h*(Fu1 + Fu2 );
F = [omega, -sin(phi)] :
o2 = o1 + 0.5*h*(Fd1 + Fd2 );
Fu = F_up
}
Fd = F_down*/
void Itera()
#include<stdio.h>
{ Predice();
#include<math.h>
Estima();
#include<stdlib.h>
Corrige();
#define h 0.01
//Se traspasa valores
FILE *archivo; Y0 = Y1;
/*No se usa arreglos, sino tan solo
o0 = o1;
el conocimiento de phi, omega y F
Fu0 = Fu1;
en tres instantes distintos que en
Fd0 = Fd1;
los apuntes se llaman (n-1,n, n+1)
Y1 = Y2;
y que aqu’i se llaman (0,1,2).
o1 = o2;
Es feo usar tanta variable global.
Fu1 = Fu2;
*/ Fd1 = Fd2;
double t, Y0, o0, Y1, o1, Y2, o2;
}
double Fu0,Fd0,Fu1,Fd1,Fu2,Fd2;
main()
//Inicializaci’on poco elegante
{ int k;
void Inic()
archivo = fopen("angulo.dat","wt");
{ Y0 = 1.0; //phi(0) = 1
Inic();
o0 = 0.0; //dotphi(0) = 0
k = 0;
//la linea que sigue significa
t = 0.0;
//phi(dt)=phi0-omega*dt y la
do
// siguiente
{ Itera();
// omega1 =-sin(phi0)*dt
k++;
Y1 = Y0 - h*o0;
t += h;
o1 = -sin(Y0)*h;
if(t>600)//.. partir de t>600
}
{ if(k%20==0)//se usa formato %g
//Se llama AB3 en los apuntes:
{fprintf(archivo,
void Predice()
"%8g %12g\n",t,Y2);}
{ Y2 = Y1 + 0.5*h*( 3.0*Fu1 - Fu0 );
} //No es necesario guardar
o2 = o1 + 0.5*h*( 3.0*Fd1 - Fd0 );
} while(t<800); // para todo k
}
fclose(archivo);
//Solo aqui entra fuerza -sin(phi)
}
void Estima()
{ Fu2 = o2;
Fd2 = -sin(Y2);
}

AM4: Esta vez f (ξ ) en el intervalo (n, n+1) se aproxima con una parábo-
la que pasa por los valores Gn−1 , Gn y Gn+1 y se obtiene
h
I= (5Gn+1 + 8Gn − Gn−1 ) + O(h4 )
12
y entonces
h
yn+1 = yn + (5Gn+1 + 8Gn − Gn−1 ) + O(h4) AM4 (4.2.9)
12

4.2. INTEGRADORES MULTIPASO Facultad de Ciencias Fı́sicas y Matemáticas


67 Métodos Numéricos

AM5: En forma análoga que en el caso anterior pero usando un polino-


mio cúbico con la información de (n − 2, n − 1, n, n + 1) y se obtiene
h
yn+1 = yn + (9Gn+1 + 19Gn − 5Gn−1 + Gn−2 ) + O(h5 ) AM5
24
(4.2.10)
Puesto que estos métodos son implı́citos se debe determinar un cero con
métodos como el de la secante y eso conlleva un riesgo. Pero en §4.2.4
se muestra una variante muy exitosa.

4.2.4. Método predictor-corrector


Este método consiste en mezclar métodos explı́cito y otro implı́cito del
mismo orden.
La versión más sencilla de predictor-corrector es la regla trapezoidal de
Nystrom que se puede enunciar como sigue:
(P)
p: Primero se predice yn+1 = yn−1 + 2 h Gn .
e: Con el valor recién obtenido de yn+1 se evalua Gn+1
c: El valor de yn+1 se corrije calculando yn+1 = yn + h2 (Gn + Gn+1 )

En el método general de esta serie y que hace uso de los algoritmos AB


y AM se procede como sigue:
(P)
P: Usando AB se obtiene yn+1 a partir de la información de puntos ante-
riores;
(E)
E: el último valor obtenido de yn+1 se usa para calcular Gn+1 = G (ξn+1 , yn+1 );
(E) (C)
C: el último valor, Gn+1 , se usa en AM para obtener yn+1 .
En el paso C se usa Adams-Moulton como si fuese un método explı́cito.
El paso P se hace una sola vez, pero los pasos (EC) se pueden hacer
sucesivamente para lograr algún tipo de convergencia, lo que se denota
P(EC)n . El paso E es el único que hace uso de la función f de la ecuación
que se está resolviendo.
En lugar los algoritmos AM y BM se podrı́a otros algoritmos de integración
como se muestra en los que sigue.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

4.2.5. Métodos predictor corrector especı́ficos para ecua-


ción de Newton
4.2.5.1. Método de Beeman

Predictor: se obtiene lpas posiciones y velocidades en el instante tn+1 =


tn + ε a partir de lo que ya se ha determinado de los instantes anteriores
 
2~ 1~
~rn+1 = ~rn + ε~vn + fn − fn−1 ε 2 (4.2.11)
3 6
1 ~ ~ 
~vn+1 = ~vn + 3 fn − fn−1 ε (4.2.12)
2

donde ~fn representa la fuerza por unidad de masa. Ella puede depender
tanto de las posiciones como de las velocidades.
Hecho lo anterior ahora se puede corregir el valor de las velocidades.
Corrector:  
5 ~ 2~ 1~
~vn+1 =~vn + fn+1 + fn − fn−1 ε (4.2.13)
12 3 12

4.2.5.2. Predictor-corrector de Gear

Aquı́ se da una versión sencilla de esta estrategia predictor-corrector para


la ecuación de Newton r̈ = a, donde a(r, v) es una función conocida. En
general todas estas cantidades tienen varias componentes.
En la etapa predictiva se calcula

h2 h3
rn+1 = rn + h vn + an + bn
2 6

h2 h3
hvn+1 = hvn + 2 an + 3 bn
2 6
(4.2.14)
h2 h2 h3
an+1 = an + 3 bn
2 2 6

h3 h6
bn+1 = bn
6 6

4.2. INTEGRADORES MULTIPASO Facultad de Ciencias Fı́sicas y Matemáticas


69 Métodos Numéricos

Con los actuales valores en rn+1 y vn+1 se puede calcular un valor corre-
gido acn+1 , lo que define un error
h2 c 
∆n+1 = an+1 − an+1
2
El único lugar donde interviene el lado derecho de la ecuación de movi-
miento es en el cálculo de acn+1 . Una vez determinado este error se calcula
nuevas cantidades
rn+1 = rn+1 + c0 ∆n+1

hvn+1 = nvn+1 + c1 ∆n+1

h2 h2 (4.2.15)
an+1 = an+1 + c2 ∆n+1
2 2

h3 h3
bn+1 = bn+1 + c3 ∆n+1
6 6
C.W. Gear (en trabajos de 1966 y 1971) determinó los valores óptimos
para los coeficientes c j en diversos casos. Dependen, por ejemplo, de si
la ecuación que se resuelve es de primer orden (como las ecuaciones de
Hamilton) o de segundo orden (Newton) y también depende del orden de
la expansión que se haga (en (4.2.14) se expandió hasta b = r′′′ ). En el
caso que aquı́ se ha presentado los coeficientes de Gear son
 
1/6
 5/6 
c=  1 
 (4.2.16)
1/3
Al revés que los métodos predictor multipaso vistos antes, éste determina
directamente los valores en n + 1 conociendo los valores en n.

4.3. Métodos de Verlet y variaciones


Este método para integrar las ecuaciones de Newton es tratado aparte
dada su importancia. Se trata de resolver ecuaciones de Newton
~r¨ = f (~r,t) donde f es la fuerza por unidad de masa (4.3.1)

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

sin pasar a ecuaciones de primer orden. Estos métodos se definen cuando


f (~r,t) no depende de las velocidades. Sin embargo es generalizable al
caso en que existe una fuerza viscosa lineal en la velocidad ~r¨ =~a0 (~r,t)−c~v.
Se usa ~v = ~rn+12h
−~rn−1
.
L. Verlet2 presentó su algoritmo por primera vez en su trabajo Computer
“experiments” on classical fluids. I. Thermodynamical properties of Lennard-
Jones molecules, Phys. Rev. 159, 98-103 (1967).

4.3.1. Propiamente Verlet


La ecuación (4.3.1) se discretiza,
~rn+1 − 2~rn +~rn−1
+ O(h2) = ~fn
h2
con lo cual,
~rn+1 = 2~rn −~rn−1 + h2 ~fn + O(h4 ) (4.3.2)
En cada iteración se evalua ~f una sola vez y el error es orden h4 . La
velocidad no aparece.
Las iteraciones son (~rn−1 ,~rn ) →~rn+1 , pero si las condiciones iniciales son
~r0 y ~v0 se puede integrar con RK4 desde ~r0 hasta ~r1 y luego se procede
2 3
con (4.3.2) o bien usando ~r(h) =~r(0) + h~v(0) + h2 ~f (0) + h6 ~f ′ (0).
Nótese que igualmente se puede despejar~rn−1 y la ecuación es la misma,
es decir, el algoritmo es reversible en el tiempo.
La velocidad se puede evaluar en la forma
~rn+1 −~rn−1
vn = + O(h2) (4.3.3)
2h
que es un error muy grande frente a O(h4 ).

Si bien (4.3.2) aparece con un error de truncamiento pequeño, suele tener


error de redondeo grande porque a una diferencia de dos números gran-
des (orden 1), 2~rn −~rn−1 , se le suma una cantidad de segundo orden, h2 ~an .
Para evitar esta fuente de error existe el método leapfrog que se describe
en §4.3.3.
2 Fı́sico francés nacido en 1931

4.3. MÉTODOS DE VERLET Y VARIACIONES Facultad de Ciencias Fı́sicas y Matemáticas


71 Métodos Numéricos

/*Verlet para orbita planetaria*/ r = sqrt(xx*xx + yy*yy);


r3 = r*r*r;
#include<stdio.h> ax = -xx/r3;
#include<math.h> ay = -yy/r3;
#include<stdlib.h> x[2] = 2.0*xx - x[0] + h2*ax;
#define h 0.004 y[2] = 2.0*yy - y[0] + h2*ay;
#define h2 h*h }
#define largo 20000 void Itera()
FILE *archivo; {ii = 0;
int ii; do
double x[3],y[3]; {if(ii%10==0)
void Inic() /*-----------------*/ fprintf(archivo,"%9.6f %9.6f %9.6f\n",
{double vx,vy; h*ii,x[1],y[1]);
x[0] = 4.0; Verlet();
vx = 0.0; ii++;
y[0] = 0.0; x[0] = x[1]; y[0] = y[1];
printf("(ojo: 0.1<vy<=0.6) VY[0]="); x[1] = x[2]; y[1] = y[2];
scanf("%lf",&vy);/* << por teclado*/ }while(ii<largo || fabs(x[1]-4.0)>0.1);
x[1] = x[0] + h*vx; }
y[1] = y[0] + h*vy; main()
} { Inic();
void Verlet() archivo = fopen("orbita.dat","wt");
{double xx,yy,r,r3,ax,ay; Itera();
xx = x[1]; fclose(archivo);
yy = y[1]; }

Figura 4.1: En este ejemplo se usa el algoritmo de Verlet para integrar la ecuación de
un péndulo simple

4.3.2. Estabilidad del método de Verlet


Sea x̄ la solución exacta de (4.3.2) con h fijo y definamos
xn = x̄n + εn
donde los ε representan desviaciones que se han introducido. La sustitu-
ción de esta definición en la ecuación de Verlet da

εn+1 − 2 + h2 a′n εn + εn−1 = 0 (4.3.4)
donde an se escribió como a(x̄n + εn ) ≈ a(x̄n ) + εn a′n .

Caso de fuerza armónica: A continuación se analiza el caso de una


fuerza armónica,
a(x) = −ω 2 x a′ (x) = −ω 2
entonces
εn+1 − 2 (1 − R) εn + εn−1 = 0 (4.3.5)

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

donde 2R = h2 ω 2 . Se reemplaza εn = ε0 λ n Im λ
lo que inmediatamente conduce a
λ
λ 2 − 2(1 − R) λ + 1 = 0 (4.3.6)
Re λ
cuyas raices son
p λ
λ ± = 1 − R ± R2 − 2 R (4.3.7)

por lo que λ puede ser complejo. Figura 4.2: El plano complejo λ .


Si R = 0 entonces λ± = 1.
Si R = 1 entonces λ± = ±i.
Si R = 2 entonces λ± = −1.
q
Si R → ∞ entonces λ± = 1 − R ± R 1 − R2 concluyéndose que λ+ = 0 y que
λ− = −∞.
En resumen, cuando R crece desde cero hasta infinito, λ+ recorre primero
la semicircunferencia Im λ > 0 unitaria del plano complejo y luego avanza
desde λ+ = −1 hasta λ+ = 0 mientras que λ− recorre primero la semicir-
cunferiencia 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.
2 2
Puesto que R = h 2ω , la condición R ≤ 2 corresponde a h ≤ ω2 y si se reem-
plaza ω = 2Tπ entonces la condición es h ≤ Tπ

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


U (x), la cota máxima para h está dada por el perı́odo mı́nimo, es decir,
por la frecuencia máxima, que pes proporcional a la raı́z cuadrada de la
segunda derivada del potencial U ′′(xmin ).
Si bien de esta manera se obtiene estabilidad, eso no quiere decir que se
tenga confiabilidad, es decir, precisión aceptable. Normalmente se debe
usar un h bastante menor que el que garantiza estabilidad.

4.3. MÉTODOS DE VERLET Y VARIACIONES Facultad de Ciencias Fı́sicas y Matemáticas


73 Métodos Numéricos

#include<stdio.h>
#include<math.h>
main()
#include<stdlib.h>
{ int k;
#define PI M_PI
archivo = fopen("leapfrog.dat","wt");
#define h 0.0005
fprintf(archivo,"%% t \t\t X \t\t V\n");
#define L 1.0
fprintf(archivo,"%8g %12g %12g\n",
#define A 0.3
t,X2,V3);
#define roce 0.01
Inic();
#define nu 3.0
k = 0;
#define w02 (2*PI)
t = 0;
#define w1 (2.0*PI*nu)
do
#define Ar (w1*w1*A/L)
{ fprintf(archivo,
FILE *archivo; "%8g %12g %12g\n",t,X2,V3);
double t,tF,X2,X4,V1,V3;
LeapFrog();
double fuerza(double x)
V1 = V3;
{return -w02*sin(x)
X2 = X4;
-roce*V3-Ar*cos(w1*t);}
k++;
void Inic()
}while(t<50.0);
{ X2 = 0.0; V1 = 0.1; }
fclose(archivo);
void LeapFrog()
}
{ V3 = V1 + h*fuerza(X2);
X4 = X2 + h*V3;
t += h;}

Figura 4.3: El caso de un péndulo con roce viscoso y forzamiento externo resuelto con
el algoritmo leapfrog.

4.3.3. Leapfrog
Puesto que
~vn+ 1 −~vn− 1
2 2
+ O(h2) = ~Fn
h
se obtiene que
~vn+ 1 =~vn− 1 + h ~Fn + O(h3 )
2 2

Además
~rn+ 1 + 1 −~rn+ 1 − 1
2 2 2 2
+ O(h2 ) =~vn+ 1
h 2

que conduce a
~rn+1 =~rn−1 + h~vn+ 1 + O(h3)
2

En resumen las ecuaciones que siguen deben usarse en el orden indicado

~vn+ 1 =~vn− 1 + h ~Fn + O(h3)


2 2
(4.3.8)
~rn+1 =~rn + h~vn+ 1 + O(h3 )
2

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

Las posiciones se determinan con n entero y las velocidades con ı́ndice


semientero.

4.4. Algoritmos simplécticos

4.4.1. Operadores de traslación


Se define la notación
a ddξ d a2 d 2 an d n
e ≡ 1+a + + . . . + +... (4.4.1)
d ξ 2! d ξ 2 n! d ξ n
de donde se obtiene que

a ddξ an d n
e f (ξ ) = ∑ n
f (ξ ) = f (ξ + a) (4.4.2)
n=0 n! d ξ

a ddξ
La acción del operador e sobre una función f (ξ ) es producir la función
trasladada f (ξ + a).
h i
~
En forma similar se puede definir el operador exp b · ∇~z ,

1  
f (~z +~b) = f (~z) + (~b · ∇) f (~z) + ~b · ∇ ~b · ∇ f (~z) + . . . (4.4.3)
2!
∂ 1 ∂2
= f (~z) + ∑ b j f (~z) + ∑ b j bk f (~z) + . . . (4.4.4)
j ∂zj 2! j ,k ∂ z j ∂ zk
h i
= exp ~b · ∇~z f (~z) (4.4.5)

4.4.2. Ecuaciones de movimiento


En mecánica las ecuaciones de movimiento de un sistema pueden escri-
birse en la forma    
d ~r ~v
= ~ (4.4.6)
dt ~v f
donde a = 1, 2, . . ., N y ~f es la fuerza total por unidad de masa. Si trata,
por ejemplo de un sistema de dos partı́culas en 3D se debe entender que

4.4. ALGORITMOS SIMPLÉCTICOS Facultad de Ciencias Fı́sicas y Matemáticas


75 Métodos Numéricos

~r = (x1 , y1 , z1 , x2 , y2 , z2 ) y algo similar en el caso de ~v. Si las respectivas


masas son m1 y m2 entonces ~f = (~F1 /m1 , ~F2 /m2 ).
Estas mismas ecuaciones pueden escribirse también usando el operador
Liouvileano,
L ≡~v · ∇r + ~f · ∇v (4.4.7)
 
~r
donde los ingredientes con que se construye L están en el vector
~v
sobre el cual va a actuar.
La ecuación (4.4.6) toma la forma
   
d ~r ~r
=L (4.4.8)
dt ~v ~v
La solución formal del movimiento entonces es
   
~r(ε ) εL ~r
=e (4.4.9)
~v(ε ) ~v t=0
El problema es que esta operación no puede hacerse en forma sencilla.
Sin embargo, si las fuerzas dependen solo de la posición conviene escribir
eε L = eε A+ε B donde A =~v · ∇r , B = ~f · ∇v (4.4.10)
El operador eε A actua sólo sobre los vectores posición, es una simple
traslación de la posición, mientras que el operador eε B actua sólo sobre
los vectores velocidad y es una traslación de velocidades, es decir,
       
εA ~r ~r + ε ~v εB ~r ~r
e = , e = (4.4.11)
~v ~v ~v ~v + ε ~f

Nótese que en~r + ε ~v el vector velocidad es el que aparece en la segunda


componente y en ~v + ε ~f el argumento de ~f es el vector ~r que está en la
primera componente. Ası́ entonces, si se define la notación
~rn ≡~r(t = ε n) y ~vn ≡~v(t = ε n) (4.4.12)
resulta
     
εA ~rn ~rn+1 ~rn + ε~vm
e = = ,
~vm ~vm ~vm
     
εB ~rn ~rn ~rn
e = = (4.4.13)
~vm ~vm+1 ~vm + ε fn

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

Integrar el movimiento es no trivial porque


eε (A+B) 6= eε A eε B
Una forma conocida de encontrar una solución aproximada es utilizando
la aproximación
3 ε ε
eε (A+B)+O(ε ) = e 2 B eε A e 2 B (4.4.14)

4.4.3. Construcción del algoritmo O(ε 3 )


A continuación se muestra en detalle como actúa el operador compuesto
(4.4.14). El operador a la extrema derecha actua sobre (rn , vn ):
       
~rn ε
B ~r n ~rn ~rn
= e2 = =
~vn+ 1
2
~vn ~vn + ε2 ~f (~rn ) ~vn + ε2 ~fn
El siguiente operador actua sobre este resultado
    !   !
~rn+1 ~ ~
r + ε ~
v ε~
r n n 1
n+ 2 ~rn + ~vn + 2 fn ε
~vn+ 1 = eε A ~v = =
2 n+ 2 1 ~
v 1
n+ 2 ~vn + ε ~fn
2
2
!
~rn + ε ~vn + ε2 ~fn
=
~vn + ε2 ~fn
Y finalmente
    2 !
~rn+1 ε
B ~rn+1 ~rn +~vn ε + ε2 ~fn 
=e 2
~vn+ 1 = (4.4.15)
~vn+1 2
~vn + ε ~fn + ~fn+1
2

En esta expresión final se ve que es crucial que ~fn dependa tan solo de las
posiciones, porque la parte superior de la ecuación permite calcular ~rn+1 ,
con el cual se obtiene ~fn+1 y ası́ se tiene los ingrediente para calcular
explı́citamente ~vn+1 .

4.4.4. El Jacobiano asociado


Por simplicidad se calcula el Jacobiano asociado al algoritmo unidimen-
cional
ε2 ε
xn+1 = xn + vn ε + fn , vn+1 = vn + ( fn + fn+1 ) (4.4.16)
2 2
4.4. ALGORITMOS SIMPLÉCTICOS Facultad de Ciencias Fı́sicas y Matemáticas
77 Métodos Numéricos

Se comprueba que
∂ xn+1 ε 2 ∂ fn
= 1+
∂ xn 2 ∂ xn
∂ xn+1
= ε
∂ vn
 
∂ vn+1 ε ∂ fn ∂ fn+1 ∂ xn+1
= +
∂ xn 2 ∂ xn ∂ xn+1 ∂ xn
∂ vn+1 ε ∂ fn+1 ∂ xn+1
= 1+
∂ vn 2 ∂ xn+1 ∂ vn
que conduce a que
∂ xn+1 ∂ vn+1 ∂ xn+1 ∂ vn+1
J= − =1
∂ xn ∂ vn ∂ vn ∂ xn
Autores han demostrado que J = 1 a todo orden y en cualquier dimensión.
Esta es una caracterı́stica central de los algoritmos simplécticos.

4.4.5. Nuevamente el algoritmo de Verlet


El algoritmo simpléctico (4.4.15) escrito por componentes es

ε2
~rn+1 = ~rn +~vn ε + ~fn
2
ε ~ ~ 
~vn+1 = ~vn + fn + fn+1
2
Si a la primera de ellas se le resta una réplica con n → n − 1 se obtiene
ε 2 ~ ~ 
~rn+1 −~rn =~rn −~rn−1 + ε (~vn −~vn−1 ) + fn − fn−1
2
pero, de acuerdo
 a la segunda
 de las ecuaciones, se puede reemplazar
ε ~ ~
~vn −~vn−1 por 2 fn−1 + fn por lo que se obtiene

~rn+1 − 2~rn +~rn−1 = ε 2 ~fn + O(ε 4 )

que es el algoritmo de Verlet obtenido como consecuencia del algoritmo


simpléctico (4.4.15).

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

4.4.6. Algoritmos simplécticos de más alto orden

Un teorema establece cómo construir algoritmos simplécticos de más alto


orden. Una familia de ellos toman la forma

N
n+1 )
e(A+B) ε +O(ε = ∏ ea j A ε eb j B ε aquı́ se define n (4.4.17)
j=1

Esta forma general es muy importante porque es trivial demostrar que


una traslación de posición sin trasladar las velocidades o vice versa es
′ ′
una transformación con Jacobiano unitario: det ∂∂(~(~rr,~,~vv )) = 1. Esta propiedad
es necesaria y suficiente para que se conserve el volumen del espacio de
fase, que es una propiedad básica de las evoluciones hamiltonianas.
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
invariancia a la inversión temporal. La primera exigencia se traduce en mu-
chas condiciones dependiendo del valor de N. De todas esas condiciones
las que siempre se deben cumplir son

∑aj = 1, ∑bj = 1
Para ver cómo exigir invariancia temporal se debe recordar primero que
 −1
etA1 etA2 . . . etAK = e−tAK . . . e−tA2 e−tA1 (4.4.18)

La expresión de (4.4.17) toma una forma como (4.4.18). Si se resume


(4.4.18) como U −1 (t) = V (t), simetrı́a a la inversión temporal quiere decir
que V (t) = U (−t), lo que hace necesario que A1 = AK , A2 = AK−1 etc.
El algoritmo (4.4.14) 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 D, 43, 105 (1990)]: (N = 4, n = 4, a1 = 0, a2 = a4 = θ , a3 = 1 −
2θ , b1 = b4 = θ2 , b2 = b3 = 1−2 θ ) y θ = (2 − 21/3 )−1 .
Muchı́simo más sobre esto puede verse en el artı́culo de Omeyan, Mry-
glod y Folk en Phys. Rev. E 66, 026701 (2002) y en referencias que ahı́ se
citan.

4.4. ALGORITMOS SIMPLÉCTICOS Facultad de Ciencias Fı́sicas y Matemáticas


79 Métodos Numéricos

4.5. Recomendación final


Si f se puede evaluar rápidamente conviene usar RK4.

Si se necesita ir adaptando el paso también debe usarse RK4.

Si es una ecuación de Newton conservativa se debe usar alguno de


los algoritmos simplécticos.

Si f es muy lento de evaluar conviene usar un método predictor


corrector.

4.6. Problemas
4.1 Considere la ecuación de un oscilador armónico forzado

ẍ + ω 2 x = A sin (kx − Ωt) (4.6.1)

Ella proviene de la ecuación de una partı́cula cargada moviéndo-


se en un campo magnético uniforme a lo largo del eje Z al que se
superpone una electrostática plana que se propaga a lo largo del
eje X . Ver Physcis Today de noviembre 1988, p27. Esencialmente la
misma ecuación es mencionada también en Physics Today, marzo
1987, p9.

4.2 Integrar la evolución de la ecuación de van der Pol

ẍ = (1 − x2 ) ẋ − x (4.6.2)

Representa a un oscilador armónico más un término que podrı́a re-


presentar un freno viscoso, pero para |x| < 1 ese término acelera en
lugar de frenar.

4.3 Integrar la evolución del oscilador de Duffing

ẍ = x − x3 − a ẋ + b cos ω t (4.6.3)

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

4.4 Se trata de calcular, usando RK4, el comportamiento de un péndulo


amortiguado por un roce viscoso γ y forzado. Este sistema consiste
en una vara ideal rı́gida de largo L, de masa despreciable, en cuyo
extremo hay una masa m. El punto de apoyo O no está fijo sino
que oscila verticalmente con amplitud A y frecuencia ν . Se puede
demostrar que la ecuación para el ángulo ϕ es
(2πν )2 A
ϕ̈ + γ ϕ̇ + ω02 sin ϕ = − cos(2πν t)
L
donde ω02 = Lg , g = 9,81 y L = 1m.

1. Tome A = 0,07m, γ = 0,1seg−1 , ϕ (0) = 10o y ϕ̇ (0) = 0 y estudie la


amplitud angular asintótica (t → ∞) como función de la frecuen-
cia en el rango: 0,9 ≤ ν ≤ 1,1 con δ ν = 0,001. (Amplitud angular
es el valor máximo que toma ϕ (t)).
2. Tome A = 0,3m, γ = 0,4seg−1 , ϕ̇ (0) = 0 y ν = 3seg−1 . Obtenga
la evolución de ϕ tanto cuando ϕ (0) está alrededor de 10o como
cuando está alrededor de 170o .

4.5 Modifique el algoritmo de Verlet original para el caso en que la ecua-


ción de movimiento bidimensional pueda tener una fuerza de roce
viscoso lineal, ~r¨ =~a(~r) − c~v. Con ese nuevo algoritmo integre numéri-
camente la órbita en el caso
~a = −k1~r − k2 r2~r (4.6.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 órbita durante tiempo sufi-
ciente para que corte al eje X ocho veces.

4.6 Estudie el movimiento de un péndulo plano, que en lugar de hilo


tiene un resorte de constante elástica 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
(r − R) x
ẍ = −k
r
(r − R) y
ÿ = −k −g
r
4.6. PROBLEMAS Facultad de Ciencias Fı́sicas y Matemáticas
81 Métodos Numéricos

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


g/k, vx = 0,1, vy = 0) e integre hasta t = 20. Calcule la evolución del
punto material con RK4 y con Verlet usando el mismo dt = ε . Esco-
ja este incremento de modo que ambos algoritmos den soluciones
parecidas pero distinguibles (al menos en la parte final). Para hacer
esta comparación dibuje x(t), y(t) y y(x). Compruebe que usando un
dt varias veces más chico ambos algoritmos dan esencialmente la
misma solución. ¿Cual de las dos soluciones originales estaba más
cerca de la solución más precisa?

4.7 Integre la ecuación


¨ = − ~r
~r(t)
r3
directamente en coordenadas cartesianas (x(t), y(t)) usando como
condiciones iniciales:

~r (0) = 2 ı̂ ~v (0) = 0,1 jˆ

En todos los casos integre hasta poco más allá de completar una
vuelta y dibujando la órbita 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.

4.8 Para obtener el algoritmo para integrar la evolución de una cadena


unidimensional de N osciladores amortiguados usando Verlet se co-
mienza con las ecuaciones de movimiento del sistema conservativo.
El lagrangeano del sistema (naturalmente sin amortiguar) es
N N
m q̇2a k
L= ∑ 2 ∑ 2 (qa+1 − qa )2
− (4.6.5)
a=0 a=1

Aquı́ los qa son las desviaciones del punto de equilibrio de cada osci-
lador. La ecuación de movimiento genérica es m q̈a = k (qa+1 + qa−1 − 2qa )
de ahı́ que si se agrega amortiguación la ecuación queda m q̈a =
k (qa+1 + qa−1 − 2qa ) − c q̇a o equivalentemente

q̈a = ω 2 (qa+1 + qa−1 − 2qa ) − η q̇a (4.6.6)

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

Al discretizar usando el algoritmo de Verlet se obtiene

qn+1
a − 2qna + qn−1
a 2 n n n
 qn+1
a − qn−1
a
= ω q a+1 + q a−1 − 2q a − η
ε2 2ε

El problema consiste en tratar dos medios: la interacción entre las


partı́culas de la 0 a la A está caracterizada por un ω1 y de la A + 1
hasta la última por un ω2 (pero se usará el mismo η ). La partı́cula A
es la frontera entre ambos medios y es la que satisface una ecuación
diferente.
Las partı́culas de la 1 a la A − 1 interactuan igual que en el caso
anterior. Lo mismo con las partı́culas de la A + 1 en adelante.

q̈a<A = ω12 (qa+1 + qa−1 − 2qa ) − η q̇a


(4.6.7)
q̈a>A = ω22 (qa+1 + qa−1 − 2qa ) − η q̇a

y debe ser discretizada tomando esto encuenta. La partı́cula A que


hace de frontera, en cambio, satisface

q̈A = ω22 qA+1 + ω12 qA−1 − (ω12 + ω22 )qA − η q̇A (4.6.8)

y usted debe discretizarla siguiendo un patrón semejamte al ya usa-


do.
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ωπ , después de eso permanece cero para siempre. Tome ω = 0,1.
El punto a = 500 está siempre quieto. De modo que lo que se debe
evolucionar son las partı́culas a = 1, 2, . . ., 499. La condición inicial es
qa = 0, q̇a = 0.
Haga seis gráficos qa (t) versus a para un t fijo (cada uno de los cua-
les representa instantáneas del sistema) separadas por ∆t = 120seg.
Es decir, el sistema en t = 120, t = 240 .. hasta t = 720. Para que que-
de más claro lo que representa cada figura, es mejor que dibuje lo
dicho con lı́nea sólida y con lı́nea más débil o de puntos el estado del
sistema unos 4 segundos antes, de esa manera se verá el sentido
de la evolución.

4.6. PROBLEMAS Facultad de Ciencias Fı́sicas y Matemáticas


Capı́tulo 5

Problemas de condiciones de
borde y problemas de
autovalores

5.1. Ecuaciones 1D lineales con condiciones


de borde
En este capı́tulo se aprenderá a resolver ecuaciones lineales de la forma

d 2y
− R(x) y = S(x) (5.1.1)
dx2
donde S es un término inhomogéneo, R es una función real. Además, en
lugar de imponerse condiciones iniciales—como podrı́a ser (y(0), y ′ (0))—
se impondrá condiciones de borde del tipo y(a) = ya y y(b) = yb . Cuando
R es negativo la solución de la ecuación homog
√ énea (esto es, con S = 0)
son oscilantes con número local de onda −R, mientras que cuando√R es
positivo la solución está dominada por exponenciales reales tipo e±x R .
Es fácil comprobar, por ejemplo, que en el caso en que R(x) cambia de
signo como en la ecuación y′′ + y/x = 0 (es caso con R(x) = −1/x), impo-
niendo condiciones de borde y(0) = √ 0, y(1) = 1 √
es oscilante para x > 0 y
diverge para x < 0. En efecto y = x BesellJ (1, 2 x)/BesellJ (1, 2).
Otro ejemplo que se puede mirar es y′′ +x6 y = 0 con y(0) = 0, y(1) = 1 cuya

83
Interpolación Patricio Cordero S.

solución es x BesellJ ( 81 , 14 x4 )/BesellJ ( 18 , 14 ).

Si se tiene una ecuación que incluye un término con primera derivada


como
f ′′ + A(x) f ′ + B(x) f = C(x)
Rx
se hace el reemplazo f (x) = y(x) exp[− 21 A(u) du] y se obtiene una ecua-
ción de la forma (5.1.1).

5.1.1. Dos ejemplos de ecuaciones lineales


5.1.1.1. La ecuación de Poisson esféricamente simétrica

Si se busca el potencial electrostático V generado por una distribución de


carga ρ (~r ) se debe plantear la ecuación de Poisson1 ∇2V = −ρ /ε0 que, si
hay simetrı́a esférica, puede simplificarse a
 
1 d 2 dV ρ
2
r =− (5.1.2)
r dr dr ε0

y si se hace la sustitución V (r) = φ (r)/(ε0 r) la ecuación se reduce a

d2φ
= −rρ (5.1.3)
dr2
que es de la forma (5.1.1) con R = 0 y S = −r ρ .

5.1.1.2. Una conocida ecuación de autovalores

Similarmente, el problema radial asociado a la ecuación de Schrödinger


es
 
d 2 ΨR 2 2 2m ℓ(ℓ + 1)h̄2
+ k (r) ΨR = 0 , k (r) = 2 E − −V (r)
dr2 h̄ 2m r2

tiene la forma (5.1.1) con R(r) = −k2 (r) y S = 0. Si V (r) = − Ar esta ecua-
ción tiene solución tan solo para un conjunto discreto de posibles valores
1 Simon Denis Poisson, francés, (1781-1840)

5.1. ECUACIONES 1D LINEALES CON CONDICIONES DE BORDE Facultad de Ciencias Fı́sicas y Matemáticas
85 Métodos Numéricos

para el autovalor E negativos. En cambio tiene solución para cualquier E


positivo.
Ambos ejemplos podrı́an ser resueltos con métodos ya vistos excepto que
hay situaciones que hacen recomendable el algoritmo que se ve a conti-
nuación.

5.2. El algoritmo de Numerov


En el método que se describe ahora las condiciones de borde tı́picamente
deben imponerse en puntos diferentes y, en el caso de una ecuación de
onda o tipo Schrödinger, hay un problema de autovalores que resolver.
Expandiendo y(x ± h) hasta O(h6 ) se obtiene
 
′′ h2 IV 2
yn+1 − 2yn + yn−1 = yn + yn h + O(h6) (5.2.1)
12
Por otro lado, tomando la segunda derivada de (5.1.1) resulta

d2
yIV
n = [ R y + S ]n
dx2
(Ry)n+1 − 2(Ry)n + (Ry)n−1 Sn+1 − 2Sn + Sn−1
= + + O(h2 )(5.2.2)
h2 h2
Esta expresión para yIVn y la expresión para la segunda derivada que da
la ecuación original, (5.1.1) se sustituyen en (5.2.1) y se reordena, obte-
niéndose la expresión básica para el algoritmo de Numerov (Boris Vasilyevich
Numerov (1891-1941))
     
h2 5h2 h2
1 − Rn+1 yn+1 − 2 1 + Rn yn + 1 − Rn−1 yn−1
12 12 12
h 2
= (Sn+1 + 10Sn + Sn−1 ) + O(h6 ) (5.2.3)
12
A partir de esta expresión se puede despejar ya sea yn+1 o yn−1 para tener
una relación de recurrencia que resuelve hacia adelante o hacia atrás la
ecuación con un error O(h6). En cada paso de iteración las funciones R y
S son llamadas una sola vez.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

d y 2
Si en la ecuación de partida dx 2 − Ry = S la función S es función de x
y también de y(x) el método anterior sigue siendo válido. En tal caso la
ecuación (5.1.1) no es lineal.

5.3. Problemas asociados a las condiciones de


borde

5.3.1. Integración directa de un problema con condicio-


nes de borde
5.3.1.1. Primer ejemplo: la ecuación de Poisson con simetrı́a esféri-
ca

Se verá cómo resolver numéricamente el caso especial de (5.1.3) en


que la densidad de carga tiene una forma exponencial, ρ = 81π e−r . Una
densidad
R
de carga esféricamente simétrica implica una carga total Q =
4π 0∞ r2 ρ dr. En el caso actual arroja Q = 1. La función φ satisface

d 2φ r
2
= − e−r (5.3.1)
dr 8π
Puesto que ρ es una función suave, el potencial V = φ (r)/(ε0 r) es finito
en el origen, lo que implica que φ ∝ rV y, por tanto que φ (0) = 0. Por otro
Q
lado la forma asintótica de V en infinito tiene que ser V (r ∼ ∞) = 4πε 0r
que,
en el caso actual, implica que
1
φ (∞) = (5.3.2)

Para resolver este problema con el algoritmo de Numerov se plantea

h2
φn+1 = 2φn − φn−1 + (Sn+1 + 10Sn + Sn−1 ) (5.3.3)
12
donde S = − 8rπ e−r . Para proseguir se escoge un rmax suficientemente
grande para considerar que ya la solución en ese valor tiene un valor
asintótico muy cercano a 41π .

5.3. PROBLEMAS ASOCIADOS A LAS CONDICIONES DE BORDE Facultad de Ciencias Fı́sicas y Matemáticas
87 Métodos Numéricos

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;
}

. Figura 5.1: El ciclo de itereación inicial usando (5.3.3).

Para integrar se da inicialmente un valor arbitrario a φ1 = φ (h). El valor


de φ en rmax va a depender de ese valor arbitrario. Si se integra desde
infinito hacia la izquierda partiendo del valor φ∞ = 41π no se obtendrı́a cero
en r = 0.
El rango 0 ≤ r ≤ rmax es dividido en N intervalos de tamaño h. La rutina que
usa (5.3.3) comienza con valores conocidos para los dos primeros puntos:
φ0 y φ1 para calcular φ2 y continuar hacia la derecha. La rutina toma como
datos iniciales conocidos los valores Sizq = S(r = 0) y Scen = S(r = h) y luego
entra en un ciclo como el que se muestra en la figura 5.1.
Al integrar tomando en cuenta una sola condición de borde se hace inevi-
table incorporar caracterı́sticas de la solución general de la ecuación. En
el caso particular que se está viendo la ecuación homogénea tiene co-
mo solución general φh = a + b r lo que implica que la solución general
de la ecuación completa—de la forma φgen = φ p + φh —crece linealmente
con r. El algoritmo (5.3.3) arroja, entonces, una solución particular φ p que
asintóticamente crece linealmente con r, lo que no es trivial de compatibi-
lizar con la condición φ (∞) = − 41π .
Una forma algo brutal de obtener la solución buscada consiste en tomar
un cierto valor rmax como si ya fuese infinito y definir
φm − φ p (rmax)
φ (r) = φ p (r) + r (5.3.4)
rmax
donde φm es el valor que se quiere imponer para φ en r = rmax , ya que
ası́ es automático que φ (0) = 0 y que φ (rmax ) = φm . En resumen, se inte-
gra imponiendo tan solo φ p (0) = 0 y una vez que se tiene esta solución
numérica, que llamamos φ p , se calcula φ usando (5.3.4). Los valores que
toma φ p dependen del valor arbitrario inicialmente dado a φ (h), pero ese
efecto es borrado al usar (5.3.4). La forma lineal de reparar la solución tie-
ne sentido tan solo porque la solución general de la ecuación homogénea

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

en este ejemplo es lineal.

5.3.1.2. Rutina de reparación

Más en general, para integrar cualquier ecuación de la forma (5.1.1), con


S 6= 0, dadas las condiciones y(a) = ya e y(b) = yb , se puede comenzar
desde x = a hacia la derecha, obteniéndose una función ỹ que satisface la
ecuación y la condición de borde en x = a. Pero esta solución en general
no satisface la condición de borde en x = b.
Para obtener que también se satisfaga la condición de borde a la derercha
se usa una solución de la ecuación homogénea, yh (x) que en x = a satis-
faga yh (a) = 0. Con ỹ e yh se construye la función y(x) buscada utilizando
la expresión
yb − ỹ(b)
y(x) = ỹ(x) + yh (x) (5.3.5)
yh (b)
Es fácil comprobar que en efecto esta función y(x) satisface la ecuación
diferencial y además satisface ambas condiciones de borde. En efecto,
puesto que fue construida como combinación lineal de una solución par-
ticular ỹ de la ecuación inhomogénea y una solución de la ecuación ho-
mogénea, está garantizado que y(x) es solución de la ecuación lineal
original.
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 ex-
presión anterior. Es recomendable estudiar el comportamiento asintóti-
co analı́tico de la solución, descrito por una función yasint e imponer que
y(xmax ) = yasint (xmax ). Por ejemplo, resolviendo (5.3.1), en lugar de tomar
φm = 41π en (5.3.4) se puede primero ver que la forma asintótica debe ser
de la forma 41π + β e−x y, para tener consistencia con x ∼ ∞, es necesario
que β = 41π , viéndose que es conveniente usar φm = 41π + 41π e−xmax .
Al integrar hacia la derecha desde x = a se debe dar un valor arbitrario
a y(a + h) cuidando que sea muy parecido a ya para evitar que ỹ pueda
tomar valores muy grandes y en general debiera ser y(a) + O(h). De otro
modo, los dos términos en (5.3.5) serı́an muy grandes de signo opuesto y
la solución y(x) resultarı́a poco confiable.
⋆ En algunos problemas suele ser más conveniente integrar de derecha
a izquierda.

5.3. PROBLEMAS ASOCIADOS A LAS CONDICIONES DE BORDE Facultad de Ciencias Fı́sicas y Matemáticas
89 Métodos Numéricos

⋆ Si las soluciones de la ecuación homogénea son muy dispares, este


método puede no ser muy preciso.

En lugar de usar un método de reparación, también puede definirse una


función F(z) = φ (rmax ) − yb donde z = φ1 y aplicar una rutina para buscar
ceros para alcanzar la solución. Esto no es eficiente y puede ser muy
inestable.

5.3.1.3. Segundo ejemplo

Un caso semejante al del primer ejemplo consiste en resolver numérica-


mente la ecuación
r
y′′ − a2 y = − e−r (5.3.6)
2
con a2 ≥ 1, y(0) = 0 y y(∞) = 0.
Puesto que el dominio es infinito, se debe escoger un rmax . El asunto
es escoger ahora un valor para y(rmax ). En un primer intento se le su-
pondrá igual a y(∞), es decir, y(rmax ) = 0. En tal caso, al aplicar (5.3.5) se
obtiene
ear − e−ar
y1 (r) = ỹ(r) − ar ỹ(rmax )
e max − e−armax
que se anula en r = rmax .
Se puede hacer mejor. Ya que la solución que se construye satisface au-
tomáticamente la condición en r = 0, el asunto es integrar en un intervalo
finito y lograr que se satisfaga la forma correcta para r muy grande. Puesto
que la función buscada se debe anular en infinito, es muy pequeña para
r grande y su segunda derivada debe ser bastante pequeña, lo que hace
sospechar (mirando la ecuación original cuando se pone y ′′ ∝ y) que para
r muy grande y ∼ r e−r . En efecto, ya se vió que la solución de la ecuación
homogénea que se anula en infinito decrece como e−ar que es más rápido
(a > 1) que el comportamiento que acá se está indicando. Si se reemplaza
y = B r e−r en la ecuación y se conserva solo los términos dominantes, se
obtiene una ecuación para B que conduce a y ≈ y∞ (r) = 2(a2r−1) e−r y una
solución más satisfactoria que y1 es
 
ear − e−ar rmax −armax
y2 (r) = ỹ(r) − ar ỹ(rmax ) − e (5.3.7)
e max − e−armax 2(a2 − 1)

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

Esta función es cero en el origen y en el distante punto rmax toma el valor


asintótico estimado. Se ve que la única diferencia con y1 reside en el valor
que se escoge para y(rmax ).

Si se desea controlar las virtudes y defectos de y1 e y2 se deja constancia


que la solución analı́tica de (5.3.6) es

2e−ar + (ra2 − r − 2) e−r


y= (5.3.8)
2 (a2 − 1)2

5.3.2. Uso de una función de Green

5.3.2.1. El problema

Esta parte sigue de cerca los desarrollos del libro [2].


Existe una aplicación menos conocida del algoritmo de Numerov y que
puede ser muy útil en casos en que los otros métodos no dan precisión
suficiente. Esto ocurre si las soluciones de la ecuación homogénea tienen
comportamientos muy diferentes. Considérese nuevamente la ecuación
general
 
d2
− R(x) y = S(x) con condiciones de borde y(a) = ya , y(b) = yb
dx2
(5.3.9)
El método que se verá a continuación debiera ser aplicable aun si el inter-
valo (a, b) es infinito. Existen dos maneras de abordar este infinito: una es
hacer un cambio de variable, por ejemplo, si se hace el cambio x = tan(ζ )
se puede cubrir todo el eje real x cubriendo un rango perfectamente finito
de ζ : − π2 ≤ ζ ≤ π2 .
Otra posibilidad se presenta en los casos en que se puede obtener analı́ti-
camente la forma asintótica de la solución buscada y, por ejemplo, en lugar
de la condición y(∞) = 0 —imposible de imponer en un método numérico—
que impone que y(x) se comporte como una función sencilla y∞ (x), lla-
mada la forma asintótica de y(x). Por ejemplo, como ya se dijo, la forma
r exp(−r)
asintótica de la función definida en (5.3.8) es 2(a2 −1) .

5.3. PROBLEMAS ASOCIADOS A LAS CONDICIONES DE BORDE Facultad de Ciencias Fı́sicas y Matemáticas
91 Métodos Numéricos

5.3.2.2. Papel de la función de Green

Para resolver este problema con el concepto de función de Green (George


Green, inglés, (1793-1841)) se plantea primero resolver otro problema:

 
d2
− R(x) f (x) = S̃(x) f (a) = 0 , f (b) = 0 (5.3.10)
dx2

donde la función S̃(x) se relaciona con S(x) en la forma que se especifica


más adelante.
Este último problema se plantea como el problema de encontrar una fun-
ción de Green G(x, x′ ) que satisfaga
 
d2
2
− R(x) G(x, x′ ) = δ (x − x′ ) tal que G(a, x′ ) = 0 , G(b, x′ ) = 0
dx
(5.3.11)
Las dos propiedades básicas de δ (x − x′ ), esto es,
Z b
δ (x) = 0 ⇐⇒ x 6= 0 , δ (x) dx = 1 para todo a y b positivos
−a
(5.3.12)
permiten obtener de la ecuación (5.3.11) que
Z x=x′ +ε  2 
d
− R(x) G(x, x′ ) dx = 1 (5.3.13)
x=x′ −ε dx2

Se hace notar que


Z ∞
F(x)δ (x−x0 ) dx = F(x0 ) para toda función F(x) bien definida en x = x0
−∞

Una vez que se tenga G(x, x′ ) se puede ver que f (x) se puede escribir en
la forma Z
f (x) = G(x, x′ ) S̃(x′ ) dx′ (5.3.14)

ya que trivialmente esta función f (x) satisface (5.3.10).

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

5.3.2.3. Hacia la solución del problema original

Una vez que se haya resuelto todo lo anterior se plantea que

y(x) = f (x) + α x + β
(5.3.15)
S̃(x) = S(x) + (α x + β ) R(x)

d 2
debido a lo siguiente. La acción del operador dx 2 − R(x) sobre y(x) es la
acción sobre f (x) más la acción sobre α x + β . De la primera acción, re-
sulta S̃(x) y de la segunda se obtiene −(α x + β ) R(x), de tal modo que la
d2
acción de dx 2 − R(x) sobre y(x) da S(x) que es lo que se buscaba.

En principio el problema está resuelto siempre y cuando se escoja α y


β de tal modo que y(x) satisfaga las condiciones de borde indicadas en
(5.3.9).
Ya que f (x) se anula en ambos bordes, y(a) = α a + β y y(b) = α b + β lo
que determina que
yb − ya b ya − a yb
α= β=
b−a b−a
quedando ası́ totalmente definida la solución y(x) obtenida por medio de
la función de Green G(x, x′ ).

5.3.2.4. Construcción numérica de la función de Green

El asunto crucial, entonces, es obtener G(x, x′ ) y esto se aborda comen-


zando por construir dos soluciones especiales de

g′′ − R(x) g = 0 (5.3.16)

Se integra numéricamente (5.3.16) usando el algoritmo de Numerov des-


de a hacia la derecha a partir del valor g(a) = 0 lo que numéricamente
define la función g− (x). Similarmente se obtiene una función g+ (x) inte-
grando (5.3.16) hacia la izquierda desde b a partir de g+ (b) = 0.
Definiendo el Wronskiano (Józef Maria Hoene-Wronski, polaco, (1776-1853))

W (x) = g+ ′ (x) g− (x) − g− ′ (x) g+ (x) la prima indica derivadas

5.3. PROBLEMAS ASOCIADOS A LAS CONDICIONES DE BORDE Facultad de Ciencias Fı́sicas y Matemáticas
93 Métodos Numéricos

se puede demostrar en forma muy sencilla que W es una constante, esto


es, W ′ = 0. Se escoge normalizar las soluciones g± de modo que W = 1.
El hecho que W 6= 0 garantiza que se tenga soluciones g± linealmente
independientes.
Se define 
 g− (x)g+ (x′ ) x < x′

G(x, x ) = (5.3.17)

g+ (x)g− (x′ ) x > x′

lo que implica que G(a, x′ ) = 0 y que G(b, x′ ) = 0.


Veamos, por otro lado, que el lı́mite ε → 0 de la integral
Z x′ +ε  2 
d
∆(ε ) ≡ 2
− R G(x, x′ ) dx

x −ε dx
no es trivial. Para ver esto se supondrá que R(x)G(x, x′ ) es suave en el
rango x′ − ε ≤ x ≤ x′ + ε por lo que la contribución del término con R en la
integral anterior se anula en el lı́mite ε → 0, mientras que el otro término
2
es la integral de una derivada: ddxG2 por lo cual la integral anterior vale

dG dG
∆(ε ) = − =W =1 (5.3.18)
dx x=x′ +ε dx x=x′ −ε
por lo cual (5.3.11) y (5.3.13) se cumplen y se comprueba que la función
G descrita es la función de Green del problema.

5.3.2.5. La solución formal de (5.3.9)

La solución de la ecuación original (5.3.9) es


Z
yb − ya b ya − a yb
y(x) = G(x, x′ ) S̃(x′ ) dx′ + x+ donde(5.3.19)
 b−a  b−a
yb − ya b ya − a yb
S̃(x) = S(x) + x+ R(x) (5.3.20)
b−a b−a
Fundiendo ambas expresiones en una se tiene que
Z    
′ ′ yb − ya ′ b ya − a yb
y(x) = G(x, x ) S(x ) + x+ R(x ) dx′

b−a b−a
yb − ya b ya − a yb
+ x+ (5.3.21)
b−a b−a

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

Obviamente es fundamental verificar que y(x) cumple con las condiciones


de borde especificadas.

5.3.2.6. Ejemplo

En lo que sigue se considera la ecuación


 2 
d ℓ(ℓ + 1)
− Φ(r) = −4π rρ (r) con ℓ>0 (5.3.22)
dr2 r2
con condiciones de borde Φ(0) = 0, Φ(∞) = 0. La correspondiente ecua-
ción homogénea tiene dos soluciones
r−ℓ
Φ+
h (r) = − , Φ−
h (r) = a r
ℓ+1
(5.3.23)
a (2ℓ + 1)
cuyo Wronskiano vale la unidad para cualquier valor no nulo de a. Ellas
cumplen
Φ−h (0) = 0 , Φ+h (∞) = 0

Los comportamientos de estas dos soluciones tanto para r muy grande o


muy pequeño son muy diferentes, lo que hace muy difı́cil utilizar cualquiera
de los métodos descritos hasta ahora ya que en métodos numéricos hay
una imprecisión intrı́nseca que hace difı́cil deshacerse de la aparición del
comportamiento fuertemente creciente de alguna de las dos soluciones
Φ±
h cuando r es muy grande o muy pequeño. De las diversas formas de
evitar este problema una consiste en usar una función de Green.
En el caso actual


 rℓ+1 (r′ )−ℓ

 − 2ℓ + 1
 r < r′
G(r, r′ ) = (5.3.24)

 −ℓ ′ ℓ+1

 − r (r )
 r > r′
2ℓ + 1
Que satisface G(0, r′ ) = 0 y también G(∞, r′ ) = 0. Teniendo esta función
de Green se puede usar la forma genérica (5.3.21).
Especializando al caso ℓ = 1 la ecuación es
 2 
d 2
− Φ(r) = −4π rρ (r) (5.3.25)
dr2 r2

5.3. PROBLEMAS ASOCIADOS A LAS CONDICIONES DE BORDE Facultad de Ciencias Fı́sicas y Matemáticas
95 Métodos Numéricos

con condiciones de borde Φ(0) = 0, Φ(∞) = 0. La correspondiente ecua-


ción homogénea tiene soluciones
r2 1
Φ−
h (r) = √ , Φ+
h (∞) = − √
3 3r
las que tienen Wronskiano unitario. La función de Green es,
r′ 2 r2
G(r < r′ ) = − , G(r > r′ ) = − (5.3.26)
3r 3r ′
La solución se construye en la forma
Z r Z ∞
′ ′ ′
Φ(r) = G(r > r ) S(r ) dr + G(r < r′ ) S(r′) dr′ (5.3.27)
0 r
En este caso particular se obtiene una solución analı́tica
 
8π 2 −r
Φ(r) = − 4π 2 + r + e
r r
pero el asunto es obtener esta función haciendo numéricamente la integral
(5.3.27).

5.4. Problemas de autovalores


Estos son problemas de ecuaciones lineales homogéneas de segundo or-
den con condiciones de borde en puntos diferentes. El problema genérico
que se analizará plantea determinar λ tal que
d2y
−+ q(x) y = λ y a≤x≤b (5.4.1)
dx2
con y(a) = 0 e y(b) = 0. No se excluye que a = −∞ ni que b = ∞. Puede
ocurrir que esta ecuación no tenga solución para cualquier valor de λ . Los
valores permitidos de λ se denomina los autovalores del operador
d2
+ q(x)−
dx2
Los autovalores pueden ser un conjunto discreto o continuo de valores o
una mezcla: valores discretos en un cierto rango y valores continuos en
otro.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

5.4.1. Problema sencillo de autovalores: una cuerda

El problema de una cuerda homogénea con y(x)


extremos fijos en x = 0 y x = L se puede es- .

cribir en la forma
L
∂ 2 g(x,t) 2
2 ∂ g(x,t) X
= c , g(0,t) = g(L,t) = 0
∂ t2 ∂ x2
(5.4.2)
Se buscará soluciones para las cuales la al- Figura 5.2: En el problema de
tura de la cuerda para (x,t) sea factorizable la cuerda se busca soluciones
con amplitud nula en ambos ex-
en la forma g(x,t) = T (t) y(x), donde y(x) es
tremos.
la amplitud de la cuerda en función de x, la
ecuación es separable en dos ecuaciones

d2T d2y ω 2
= −ω 2 T , − = 2 y (5.4.3)
dt 2 dx2 c

donde, por el momento, ω 2 es una constante desconocida. La prime-


ra ecuación tiene como solución general una combinación lineal arbi-
traria entre sin ω t y cos ω t. Escogiendo que T (0) = 0 se obtiene que
T (t) = A sin ω t.
La segunda, es la ecuación de valores propios. Ella tiene como solución
general y = c1 sin(ω x/c) + c2 cos(ω x/c). pero imponiendo las condiciones
de borde y(0) = 0 y y(L) = 0, la primera implica que c2 = 0 y la segunda
exige que
ωL nπ c
sin =0 =⇒ ω= (5.4.4)
c L
donde n es un entero. De lo anterior se ve que las condiciones sobre
el problema han permitido determinar que ω es un múltiplo de π c/L. No
cualquier valor para ω permite obtener una solución al problema. Los −ω 2
son, en este caso, los autovalores del problema.
Lo que interesa es reproducir el resultado analı́tico anterior integrando la
ecuación
d2y
= −ω 2 y con y(0) = y(L) = 0 (5.4.5)
dx2
usando el algoritmo de Numerov

5.4. PROBLEMAS DE AUTOVALORES Facultad de Ciencias Fı́sicas y Matemáticas


97 Métodos Numéricos

El algoritmo de Numerov en el caso actual se reduce a uno donde, por el


momento, el valor de ω es arbitrario,
     
(hω /c)2 5(hω /c)2 (hω /c)2
1+ yn+1 − 2 1 − yn + 1 + yn−1 = 0
12 12 12
(5.4.6)
La ecuación anterior se puede reescribir en la forma

24 − 10 (hω /c)2
yn+1 = −yn−1 + yn (5.4.7)
12 + (hω /c)2

Usando esta última forma se integra desde el extremo izquierdo hacia la


derecha usando h = L/N obteniéndose en el extremo derecho un valor
yN (ω ) que en general, depende del valor que se ha dado a ω , por lo que
se define la función
F(ω ) = yN
Usando estrategias ya vistas en §3.2, se busca los ceros de F(ω ). Los va-
lores particulares de ω j ası́ encontrados definen los autovalores del pro-
blema planteado en (5.4.5). Es un buen ejercicio ver si el método recién
descrito arroja los valores descritos en (5.4.4).
* *
Puede demostrarse que el problema de una cuerda inhomogénea puede
ser llevado a la siguiente forma como pude verse en Courant-Hilbert, IP Inc.,
1953, Methods of Mathematical Physics, Vol. 1, Cap. V, §3.3.

d2y
− 2 + r(x) y(x) = ω 2 y(x) con y(0) = y(L) = 0
dx
donde r(x) es una función continua mientras que ω 2 es el autovalor bus-
cado. Esta ecuación se analizará en un contexto muy diferente en la sub-
sección que sigue.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

5.4.2. Ecuación de Schrödinger en una dimensión: esta-


dos ligados
Un problema tı́pico de autovalores es el
que plantea la ecuación de Schrödinger
Z
′′
−ψ +V (x) ψ = E ψ , |ψ |2 dx = 1
xizq xder
(5.4.8)
Se debe determinar los autovalores E
asociados a V (x). Normalmente se va E
a suponer que la función V (x) tiende a
cero para |x| grande.
La integral en (5.4.8) es sobre el domi- Figura 5.3: La función potencial V y
nio sobre el cual la función ψ está defi- el valor tentativo para la energı́a E de-
nida. La ecuación será escrita en la for- finen valores xizq y xder que sirven de
base para escoger xmin y xmax .
ma
ψ ′′ +k2 (x) ψ = 0 donde k2 = E −V (x)
Para el caso de autofunciones asociadas a autovalores E < 0 existe un
rango finito (xizq , xder ) fuera del cual E < V (x), es decir k2 (x) < 0 y la solu-
ción de interés decae exponencialmente. Esta es la caracterı́stica por la
que se llaman “estados ligados”: una solución ψE con E < 0 está ligada “al
pozo” V (x). Sin embargo hay que tener presente que fuera de (xizq , xder ) la
ecuación también admite una solución exponencialmente creciente.
Los lı́mites (xizq , xder ) de esta zona son los llamados “puntos de retorno”
en los cuales se satisface V (x) = E. El algoritmo debe abordar el hecho
que la solución general crece exponencialmente fuera de las fronteras de-
finidas por los puntos de retorno: (xizq , xder ). Un problema de este tipo no
puede ser simplemente integrado de izquierda a derecha o vice versa por-
que inevitablemente los errores de redondeo harı́an aparecer la solución
exponencialmente creciente ahı́ donde no debe estar y ninguna rutina de
reparación serı́a confiable.
Para evitar esto se integra desde algún punto xmin —en general muy a
la izquierda de xizq —hasta poco más allá de algún punto intermedio de
eIzq . Además se obtiene ψDer inte-
empalme xe . A esta función se la llama ψ
grando desde un punto xmax —lejos a la derecha de xder —hasta poco más
a la izquierda del mismo punto de empalme.

5.4. PROBLEMAS DE AUTOVALORES Facultad de Ciencias Fı́sicas y Matemáticas


99 Métodos Numéricos

Para hacer estas 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 ψDer
desde la extrema derecha hasta n = e−1 y ψIzq desde la extrema izquierda
hasta e + 1.
Para integrar desde los extremos
lo más sencillo es suponer que ψIzq (xmin ) =
0 y que ψDer (xmax ) = 0, pero esto pue-
de ser insatisfactorio. En general es
más apropiado determinar los compor- e−1 e e+1
tamientos asintóticos de ψ a ambos la-
dos y hacer uso de ellos. Figura 5.4: Para empalmar se inte-
gra hacia la derecha hasta n = e + 1 y
hacia la izquierda hasta n = e−1 donde
Se debe exigir que tanto ψ como ψ ′
n = e es el punto de empalme.
sean continuas en el punto de empal-
me xe .

La condición de continuidad en el punto de ampalme se consigue renor-


malizando una de las funciones. Por ejemplo:
 
ψDer [e]
ψIzq [n] = e [n]
ψ (5.4.9)
eIzq [e] Izq
ψ n=0,1,..,e+1

Esto garantiza que en el punto de empalme n = e haya un valor ψ [e] común


a ambas funciones.
La condición de que la derivada también sea continua en el punto de em-
palme se obtiene buscando los valores de E para los cuales la función

ψDer [e + 1] − ψDer [e − 1] ψIzq [e + 1] − ψIzq [e − 1]


F(E) = − (5.4.10)
h ψ [e] h ψ [e]

se anule. Para ello se busca el valor de E apropiado usando algunas de


las estrategias vistas en §3.2. Los valores de E ası́ encontrados son los
autovalores E del problema que se ha planteado en (5.4.8).
La definición anterior de F(E) corresponde a una definición particular de
la derivada en xe . Si se escoge utilizar una expresión más precisa para la
derivada es necesario integrar ψIzq por más puntos a la derecha de n = e
y lo propio para ψDer hacia la izquierda.
.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

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 de N y se calcula h = (xmax − xmin )/N. La asociación entre el
ı́ndice discreto n y x es x = xmin + n h. Se escoge también el punto del
discreto que se usará para el empalme, n = e, el que debiera estar
entre los puntos de retorno o coincidir con uno de ellos.

eIzq desde n = 0 hasta n = e + 1; se integra ψDer desde


3. Se integra ψ
n = N hasta e − 1.

4. Se define ψIzq por medio de una normalización de ψ eIzq utilizando


(5.4.9); ası́ se logra que ψIzq y ψDer tengan el mismo valor en el
punto de empalme n = e.

5. Se calcula F(E) por medio de (5.4.10)

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 (u otra rutina diseñada para encon-


trar ceros de una función) que terminará 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.

5.4.3. Ecuación de Schrödinger radial


5.4.3.1. La ecuación

En problemas con función potencial central V = V (r) la ecuación de Schröd-


inger −∇2 Ψ +V (r)Ψ = EΨ que debe satisfacer Ψ(~r ) se simplifica si se es-
cribe con coordenadas esféricas en la forma Ψ(~r ) = 1r Φ(r)Yℓm (θ , φ ) donde
los Yℓm (θ , φ ) son funciones conocidas llamadas esféricos armónicos.
La ecuación para la parte radial Φ(r) es reducida en forma estándar a
una ecuación donde la función de energı́a potencial V (r) va acompañada

5.4. PROBLEMAS DE AUTOVALORES Facultad de Ciencias Fı́sicas y Matemáticas


101 Métodos Numéricos

de un término conocido como 0 la barrera centrı́fuga, de modo que la


ecuación para Φ es
d2Φ
+ k2 (r) Φ = 0 0≤r<∞
dr2
  (5.4.11)
2 ℓ(ℓ + 1)
k (r) = E − −V (r)
r2
donde ℓ es un entero no negativo. El problema central es encontrar los
autovalores E.
En lo que sigue se supondrá que
la función V (r) tiende a cero cuan- Potencial de Morse y tres funciones radiales

do r tiende a infinito. 60
50
40
30
5.4.3.2. Comportamiento lejano 20
10
0
La función Φ(r) para r muy grande -10

debe tender a cero de modo que -20


-30
pueda ser normalizada: -40
0 1 2 3 4 5
Z ∞
r
2
|Φ(r)| dr = 1
0 Figura 5.5: El potencial de Morse, V =
Si E < 0 la ecuación para r muy V0 (1 − exp[−a(r − r0 )])2 en linea de cruces y
tres de las la funciones Φ0 , Φ1 y Φ2 sin nor-
grande es Φ′′ /Φ ≈ E que implica malizar correspondientes a los estados más
que bajos (sin ceros, uno y dos ceros). Se apre-
h p i cia que estas funciones se anulan en r = 0.
Φ(r ∼ ∞) ∝ exp − |E| r Las lı́neas horizontales representan los co-
rrespondientes autovalores E < 0.
Si E > 0 hay problemas que no se
verán.

5.4.3.3. El comportamiento cerca del origen

Primer caso: Si V (r) cerca del origen es menos divergente que r−2 la
ecuación en la vecindad de r ∼ 0 es
d 2 Φ ℓ(ℓ + 1)
− Φ=0
dr2 r2

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

que tiene dos soluciones independientes, una proporsional a rℓ+1 y la otra


proporsional a r−ℓ . La segunda solución es inaceptable, de modo que

Φ(r ≈ 0) ∝ rℓ+1

que se anula en el origen como una potencia de r. La integración numérica


se puede hacer entonces comenzando con Φn=0 = 0 y Φn=1 ∝ hℓ+1 y
además se debe integrar hacia la izquierda desde algún rmax y hacer un
empalme para determinar los autovalores E.

Si en el origen V (r) es más singular que r−2 se debe hacer un análisis


diferente.

Segundo caso, un ejemplo: El potencial de Lennard Jones 6-12 co-


múnmente usado en simulaciones moleculares es
   σ 6 
σ 12
VLJ = V0 −2 (5.4.12)
r r

Cerca de r = 0 se puede despreciar de k2 (r) todos sus términos excepto


aquel con r−12 . La solución no divergente en el origen satisface

σ 12
Φ ′′ = V0 Φ
r12
y es
 √ 
V0 σ 6
Φ(r ∼ 0) = exp −
5r5
que se anula muy rápidamente al acercarse a r = 0. En la integración
numérica se debe evitar el punto r = 0 y es usual comenzar a una pequeña
distancia del origen tomando 0,5σ ≤ rmin ≤ 0,8σ . Entre este punto y el
origen se debe usar la forma analı́tica dada en la última expresión.

Segundo caso, general:


 Más en general, si el potencial en el origen
b n
diverge como V0 r con n > 2, de modo que la ecuación cerca del origen
sea  σ n
′′
Φ ≈ V0 Φ
r
5.4. PROBLEMAS DE AUTOVALORES Facultad de Ciencias Fı́sicas y Matemáticas
103 Métodos Numéricos

puede verse que el comportamiento de Φ en el origen debe ser


 √ 
2 V0 σ  σ  2 −1
n

Φ ∼ exp −
n−2 r
En este caso general la función Φ(r) también se anula exponencialmente
en el origen.
La integración debe comenzar nuevamente desde un rmin que sea una
fracción de σ . Más cerca de r = 0 se debe usar la forma analı́tica.

La forma de integrar: Integrando hacia la izquierda, usando el algorit-


mo de Numerov, se comienza desde algún rmax de tal modo que
p p
Φ(N) ∝ exp[− |E| rmax ] y Φ(N −1) ∝ exp[− |E| (rmax −h)]
hasta un punto menor al punto de empalme e.
Desde r = 0 se comienza con la forma analı́tica de modo que para r = h,
esto es, n = 1 se toma que V (r ∼ 0 aproximadamente es
 ℓ+1
 h
 si la barrera centrı́fuga domina
Φ(1) ∝ h √ n i

 exp − 2 V0 σ σ 2 −1 si domina el potencial
n−2 h

donde V (h ∼ 0) ≈ V0 (σ /h)n.
Una vez que se ha hecho las dos integraciones se ejecuta el procedimien-
to de empalme.

5.5. Problemas
5.1 Encuentre los primeros cuatro autovalores λ de la ecuación de una
cuerda inhomegénea,
x2
f ′′ + λ (1 +
)f =0
2
con condiciones de borde f (0) = f (1) = 0. Los autovalores se or-
denan según el número de nodos de la autofunción. Grafique (sin
normalizar) estas cuatro autofunciones.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

5.2 Obtenga numéricamente las funciones propias normalizadas y los


valores propios asociados al potencial

x4 − 16
V (x) =
1 + 4 x6
en −∞ ≤ x ≤ ∞ correspondientes a los primeros cuatro autovalores.
5.3 Encuentre todas las autofunciones y los autovalores En < 0 que re-
sultan de la ecuación de Schrödinger
 
d2
− 2 +V (x) Ψ(x) = En Ψ(x)
dx
donde −∞ < x < ∞ y
2 /20
V (x) = −10 e−x
indicando con n de qué nivel se trata. Haga un gráfico por cada fun-
ción de onda Ψ(x) (puede dibujarse más de una Ψ en un solo gráfico
si no resulta enredado). También dibuje el potencial y sobre él di-
buje con lı́neas horizontales todos los En encontrados agregando (a
mano) el valor de n que corresponda. Discuta y comente.
5.4 Obtenga los tres primeros autovalores del problema de la ecuación
de Schrödinger estacionaria adimensionalizada
 
d2
− 2 +V Ψ = E Ψ
dx
−x
con 0 ≤ x ≤ ∞ y con V = − 5 ex .

5.5 El enlace covalente suele ser modelado por el potencial central de


Lennard-Jones 9-6,
    σ 6 
σ 9
V = V0 2 −3
r r
donde σ es la distancia media entre átomos vecinos a temperatura
muy baja. Resuelva la ecuación (5.4.11) obteniendo los niveles pro-
pios de energı́a y las correspondientes funciones radiales para los
casos ℓ = 0 y ℓ = 1. Use σ = 1, V0 = 23,0.

5.5. PROBLEMAS Facultad de Ciencias Fı́sicas y Matemáticas


Capı́tulo 6

Integrales Monte Carlo y el


algoritmo de Metropolis

La pregunta más persistente en este capı́tu-


lo es cómo generar una secuencia de núme-
ros que tengan una distribución W conocida.

6.1. Números aleatorios r ← U(0, 1)


Desde los primeros tiempos en que se abordó problemas numéricos con
los más primitivos computadares se vió la importancia de los números
aleatorios. Hay problemas que, en el contexto de métodos numéricos,
requieren de algún algoritmo para generar una secuencia de números
(enteros o reales), {x0 , x1 , x2 , . . .} que pueda ser considerada aleatoria. El
concepto de aleatoriedad, sin embargo, es sutil y en muchas de sus apli-
caciones interesa poder decidir cuán aleatorios realmente es la secuen-
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 encuen-
tran en Numerical Recipies [5]. En lo que sigue no nos ocuparemos de
estos problemas y aceptaremos el generador de números aleatorios que
nos da el compilador que estemos usando.

105
Interpolación Patricio Cordero S.

Se supondrá que se cuenta con un generador


de números aleatorios r uniformemente distri- a b
buidos en el intervalo (0, 1). Para no tener que A
usar la expresión números r uniformemente dis-
tribuidos en el intervalo (a, b) se dirá c

r ← U (a, b) (6.1.1)
Si se tiene un generador r ← U (0, 1) se puede d B e
definir una variable
r ′ = (b − a) r + a (6.1.2) Figura 6.1: Se busca que
s = a + b + c + d + e tenga el
la que satisface r′ ← U (a, b). En C la función que menor valor posible.
se usa es drand48().
Veamos a continuación un ejemplo muy sencillo.
Cuatro puntos que forman un cuadrado de 1 × 1 deben ser unidos por
medio de cinco trazos de largos a, b, c, d y e en la forma que muestra la
figura. El asunto es que las coordenadas de A y B deben escogerse de tal
modo que el valor de s = a + b + c + d + e sea el menor posible.

6.2. Densidades de probabilidad

6.2.1. Distribución y el promedio discreto


Las secuencias {x j } de números aleatorios reales usuales son las que
están uniformemente distribuidas en el intervalo (0, 1), pero es de mucho
interés saber generar secuencias que están distribuidas de acuerdo a una
distribución escogida W (x) en (a, b).
Se define una densidad de probabilidad W (x) en (a, b) con una función no
negativa en ese intervalo que esté normalizada,
Z b
W (x) dx = 1 (6.2.1)
a

Con ella se define el promedio de cualquier función f (x) con x ∈ (a, b),
Z b
h f iW = W (x) f (x) dx (6.2.2)
a

6.2. DENSIDADES DE PROBABILIDAD Facultad de Ciencias Fı́sicas y Matemáticas


107 Métodos Numéricos

La variancia σ 2f de f es

2
σ 2f = f 2 W − h f iW (6.2.3)
y a σ f , que se llama la desviación estándar de f , es una medida de cuánto
se desvı́a f de su promedio.
Para calcular numéricamente (6.2.2) se debe utilizar una secuencia de
números {xi }i=1..N en el intervalo (a, b) que tengan distribución W (x) y uti-
lizar la forma aproximada

N
1 (6.2.4)
h f iW ≈
N ∑ f (x j ) con xj ← W
j=1

Pero, ¿cómo generar la secuencia x j ← W ?

6.2.2. Distribuciones relacionadas


Supongamos que se tiene una variable Y
g(b)
aleatoria x en el intervalo (a, b) generada .

con distribución W (x) y además sea y = g(x) ∆y

donde g es función una monótona: g(x)



y = g(x) , dy = g (x) dx (6.2.5)
Esto es, se asocia a cada x j de una secuen- g(a)
∆x
cia con distribución W un valor y j = g(x j ) en a b X
el intervalo (g(a), g(b)). ¿Qué distribución se
debe asociar a los y j ? Figura 6.2: Dada una función
monótona y = g(x) queda defini-
Puesto que la probabilidad asociada a un in- da una relación entre los interva-
tervalo ∆x en torno al punto x es P = W (x) ∆x, los ∆x y los intervalos ∆y
la misma probabilidad tiene asociado el co- .
rrespondiente intervalo ∆y en torno a y = g(x), siempre que ∆y = dg dx ∆x.
Es decir, la probabilidad asociada a este intervalo ∆y es W (y) ∆y = e
We (y) g′ (x) ∆x = W (x) ∆x. De la última igualdad se desprende que los y j se
distribuyen según  
e (y) = W (x)
W (6.2.6)
g′ (x) x=g−1 (y)

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

Si la variable x = g−1 (y) tiene distribución W (x) en el intervalo


e (y) = [W (x)/g′ (x)] −1
(a, b), la variable y tiene distribución W x=g (y)
en el intervalo [g(a), g(b)].

Es automático que We tiene la normalización correcta. En efecto, la relación


Rb
a W dx = 1 implica
Z g(b)
e (y) dy = 1
W
g(a)

6.2.3. Obtención de secuencia W (x) a partir de U(0, 1)


Si en los resultados de la subsección anterior se considera (6.2.6) en el
caso We (y) = 1 con 0 ≤ y ≤ 1, esto es, los valores de y son generados por
una distribución uniforme U (0, 1)

y ← U (0, 1)

entonces los x j = g−1 (y j ) están distribuidos de acuerdo a

W (x) = g ′ (x) (6.2.7)

en el intervalo [a = g−1 (0), b = g−1 (1)].


Esta última relación implica que si se y
conoce W (x), la función g(x) definida g(b) = 1
por
Z x
g(x)
g(x) = W (x′ ) dx′ (6.2.8)
a

permite definir el cambio de variable y =


x
g(x) tal que y ∈ [0, 1]. g(a) = 0
a b
Si y ← U (0, 1) entonces los x = g−1 (y)
se distribuyen de acuerdo a W (x) donde Figura 6.3: Una función monótona
W y g se relacionan por (6.2.8). g(x) con a ≤ x ≤ b tal que g(a) = 0 y
g(b) = 1 define una distribución W (x)
dada por (6.2.7).
Lo anterior es una descripción formal
del asunto, pero no se deja claro aun la forma de proceder en un caso
arbitrario ya que se requiere

6.2. DENSIDADES DE PROBABILIDAD Facultad de Ciencias Fı́sicas y Matemáticas


109 Métodos Numéricos
Rx
poder calcular g(x) = a W (x′ ) dx′ analı́ticamente y además

se debe poder determinar analı́ticamente la función inversa g−1 para


poder tener los x j = g−1 (y j ).

⊙ Un ejemplo en que todo puede hacerse analı́ticamente es el si-


guiente. Se escoge la distribucion de velocidades

2 c −c2 /T
W (c) = e con 0≤c<∞ (6.2.9)
T
se obtiene Z c
2 /T
y = g(c) = W (c′ ) dc′ = 1 − e−c
0

o equivalentemente
p
c = g−1 (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

p dada una secuencia de números y j ← U (0, 1), la secuencia


es decir,
c j = −T ln y j tiene la distribución (6.2.9).

6.2.3.1. El histograma asociado a una distribición W (x)

Se tiene una secuencia x j con distribución de probabilidad W (x) en el in-


tervalo a ≤ x ≤ b. Se divide este intervalo en M pequeños intervalos iguales
de largo ∆ = b−aM . Si la secuencia es de largo N suficientemente grande, el
intervalo k-ésimo debiera contener Hk puntos de la secuencia con

(b − a) N
Hk ≈ wk , k = 1 , . . .M
M
donde wk es el valor de W (x) en el punto medio del k-ésimo intervalo.
Si la igualdad anterior se divide por N y se suma sobre k, el lado izquierdo
arroja necesariamente
R
1, muentras que el lado derecho arroja el valor de
la integral W (x) dx en la aproximación trapezoidal con error O(M −2 ).

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

6.2.4. El caso de n variables


El razonamiento recién descrito puede ser generalizado a n variables. Se
tiene un n-uplo de variables aleatorias, X = {x1 , . . . , xn } en un dominio DX
con distribución W (X ). Además se tiene una función invertible, Y = G(X ),
donde las nuevas variables Y están, en el dominio DY = G(DX ). La trans-
formación G induce una distribución W e (Y ) para las variables Y y ambas
distribuciones se relacionan por
 
e (Y ) = W (X )
W
J(Y ; X ) X=G−1 (Y )

donde J(Y ; X ) es el Jacobiano J = det [∂ G(X )/∂ X ]. Esto es ası́ porque

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

De especial interés es, al igual que en la sub-


sección anterior, el caso en que los Y tienen
distribución uniforme y el dominio DY es el hi- ~
W(Y )
W(X )
percubo unitario, es decir 0 ≤ ya ≤ 1 para to-
do a. En tal caso W e (Y ) = 1 en este hipercubo. G D(Y)
D(X)
Dada una función G(X ) se define secuencia
de n-uplos X = G−1 (Y ) los cuales tienen una Figura 6.4: Se tiene un n-
distribución uplo X de variables aleatorias
en un dominio DX con distri-
W (X ) = J(Y ; X ) (6.2.10) bución W (X). Además se tie-
ne una función invertible, Y =
G(X), donde las nuevas varia-
Un ejemplo de esto se da a continuación.
bles Y están, en el dominio DY =
G(DX ). La transformación G in-
duce una distribución We (Y ) para
6.2.5. Uso de W (x1 , x2 ) para las variables Y .

generar gaussianas
El método visto en §6.2.3 no se puede aplicar en forma directa cuando se
quiere generar una secuencia {x j } según la distribución gaussiana

1 2 2
Wσ (x) = √ e−(x−a) /2σ , −∞ ≤ x ≤ ∞
σ 2π

6.2. DENSIDADES DE PROBABILIDAD Facultad de Ciencias Fı́sicas y Matemáticas


111 Métodos Numéricos

La distribución está trivialmente relacionada con la distribución centrada


en el origen y con variancia unidad:
1 2
W (x) = √ e−x /2 (6.2.11)

que
Rx
tampoco se puede resolver en forma directa porque la función g(x) =
′ ′
−∞ W (x ) dx no puede ser escrita con funciones elementales, ni menos se
puede obtener la función g−1 .
Sin embargo, como veremos, es fácil generar pares (x1 , x2 ) con la distribu-
ción
2 2 2
W (x1 , x2 ) = e−(x1 +x2 )/2 , 0 ≤ xi < ∞ con i = 1, 2 (6.2.12)
π
que está correctamente normalizada,
Z ∞Z ∞
W (x1 , x2 ) dx1 dx2 = 1
0 0

En efecto, si se hace el cambio de variable


2 x2 p π y1
y1 = arctan x1 = −2 ln y2 cos
π x1 2
(6.2.13)
−(x21 +x22 )/2
p π y1
y2 = e x2 = −2 ln y2 sin
2
se obtiene que el Jacobiano de la transformación es precisamente
2 2 2
J(Y ; X ) = W (x1 , x2 ) = e−(x1 +x2 )/2 (6.2.14)
π
Basta con generar pares (y1 , y2 ) por medio de y j ← U (0, 1) con j = 1, 2
para que (6.2.13) genere una secuencia de puntos en el plano (x1 , x2 ) con
la distribución (6.2.12).

6.3. Integración Monte Carlo

6.3.1. El problema
Se discutirá la forma de calcular
Z b
I= f (x) dx (6.3.1)
a

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define PI M_PI
#define N 200 void Guarda()
#define Max 1e+8 { arch = fopen("gaussiana.dat","wt");
int j,Suma; for(j=0; j<2*N; j++)
int H[2*N]; { printf("%4d %8d\n",j,H[j]);
double X1,Y1,Y2; fprintf(arch,"%g \t %g\n",
FILE *arch; (1.0*j/N),(1.0*H[j]/H[0]));}
void generador() fclose(arch);
{ Y1 = drand48(); }
Y2 = drand48();
X1 = 0.2* .
sqrt(-2*log(Y2)) main()
*cos(0.5*PI*Y1);} { Inicia();
void Inicia() Histograma();
{ for(j=0; j<(2*N); j++) Guarda();
H[j] = 0; printf("# de puntos admitidos = %d.\n",
Suma = 0;} Suma);
void Histograma() printf("De modo que se acepto el
{ int s; %14.10f por ciento de los puntos\n",
for(j=0; j<Max; j++) 100.0*Suma/Max);
{ generador(); }
s = (int) (N*X1);
if(s<(2*N))
{ H[s]++;
Suma++; }}}

Figura 6.5: Código que permite generar una distribuión Gaussiana. Se recomienda gra-
ficar los datos guardados [x, N W (x)] y también [x, log(N W (x)] donde N se escogió para
que la distribución valga 1 en el origen.
√ Una distribución Gaussiana normalizada
√ en el
intervalo 0 ≤ x < ∞ es W = (2b/ π ) exp[−b2 x2 ] de modo que W (0) = 2b/ π .

utilizando secuencias de números aleatorios.

6.3.2. Primera forma

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


1
con distribución W en (a, b). Si en (6.2.2) se toma W (x) = cte = b−a y f es
la función a promediar, entonces

Z b
1
hfi = f (x) dx
b−a a

6.3. INTEGRACIÓN MONTE CARLO Facultad de Ciencias Fı́sicas y Matemáticas


113 Métodos Numéricos

que, por (6.2.4) es N1 ∑ f j . Multiplicando por (b − a) se obtiene que si x


está uniformemente distribuida en (a, b),
v !2
Z b u
b−a N b−a u 1 N
1 N
I≡
a
f (x) dx ≈ ∑ f j ± √N t N ∑ f j2 − N ∑ f j (6.3.2)
N j=1 j=1 j=1
| {z }
σf

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


La incertidumbre con que se evalua la integral depende tanto de la des-
viación estándar intrı́nseca de f en este intervalo, σ f , como del tamaño N
de la muestra. Nótese que es necesario cuadruplicar el valor de N para
disminuir la incertidumbre a la mitad. Esto contrasta con la regla trapezio-
dal que es O(N −2 ). Sin embargo, como se verá en §6.3.3, en el cálculo
de integrales sobre muchas variables, el método Monte Carlo es el más
eficiente.
En resumen, la primera forma de integración Monte Carlo es
Z b N
b−a σf
a
f (x) dx =
N ∑ f (x j ) + O( √N ) , x j ← U (a, b) MC1
j=1
(6.3.3)
res = 0.0;
n = 0; for(n=0; n<N; n++)
suma = 0.0; { x = PI*drand48();
do{x = a + (b-a)*drand48(); res += sin(x);//cada 50 pasos
suma += f(x); if(n%50==1)//escriba el resultado
n++; { intgr = PI*res/(1.0*n);
}while%(n<=N} printf(" %10d %12.8f\n",n,intgr);
integral = (b-a)*suma/N; }
}

Figura 6.6: A la izquierda rutina para generar números alteatorios x con a ≤ x ≤ b y a la


derecha el resultado que poco a poco converge hacia el valor de la integral.

Este método da, por lo general, resultados pobres, salvo que se use mues-
tras de tamaño N muy grande o bien f varı́e poco en el intervalo. Un punto
a favor es que se usa un solo drand48 y no hay ningún if.
Si f = f0 es constante la integral es exactamente (b − a) f0 , y el lado dere-
cho vale (b−a)
N
f0
N = (b − a) f0 para todo N. La forma (6.3.3) de calcular una
integral es la más ingenua forma de integrar usando números aleatorios
dentro de aquellas que pertenecen a la categorı́a integración Monte Carlo.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.
R
Por ejemplo el cálculo de 0π sin(x) dx: y tal vez puede hacer un gráfico de
los que toma intgr como función de N para ası́ ver el tipo de convergencia.
Posiblemente conviene tomar n = 108 y guardar el valor de la integral una
vez cada 105 sumandos.
Como se acaba de comentar, si la función es constante el resultado que
arroja MC1, (6.3.3), es exacto (en particular no depende de N) y si f varı́a
muy poco este método da valores razonables. Pero en general se requiere
hacer uso de formas más elaboradas de integración Monte Carlo, las que
usan valores x j que provienen de una distribución W escogida especial-
mente.
La otra obvia limitación del método recién descrito es que es aplicable tan
solo si el dominio es acotado. Con dominios infinitos o con integrandos
de alto contraste se procede siguiendo un camino emparentado al que se
vió en §2.3
El algoritmo MC1 es generalizable a muchas dimensiones con la siguiente
dificultad: si el dominio de integración se define como relaciones entre las
variables (por ejemplo x2 + y2 < 1 & x − y > 0) se debe encontrar una
forma económica de generar puntos uniformemente distribuidos sobre ese
dominio y nada más. Normalmente la única solución razonable consiste
en generar puntos uniformemente distribuidos en un dominio más grande
pero sencillo (por ejemplo −1 ≤ x ≤ 1 & − 1 ≤ y ≤ 1) y hacer uso tan solo
de los puntos que caen dentro del dominio de interés.

Más adelante será útil tener presente que la propia fórmula MC1 sugiere
que una forma de calcular h f iW es
N
b−a
h f iW =
N ∑ W (x j ) f (x j ) con x j ← U (a, b) (6.3.4)
j=1

ya que la anterior no es sino MC1 donde se ha puesto W f en lugar de f .


Esta es una primera manera de resolver el problema que plantea (6.2.4).

Ya se ha comentado que si el integrando varı́a fuertemente en el dominio


de integración este algoritmo puede dar resultados muy pobres. Una for-
ma sencilla—que suele dar buenos resultados sin abandonar lo básico de
MC1—consiste en encontrar una función integrable fe(x) que sea parecida
R
a f (x). Es decir, si se conoce el valor I = ab fe(x) dx y además se cumple

6.3. INTEGRACIÓN MONTE CARLO Facultad de Ciencias Fı́sicas y Matemáticas


115 Métodos Numéricos

que f (x) ≡ f (x) − fe(x) es una función suficientemente plana en el dominio


(de modo que MC1 en ella es satisfactoria) la integral se puede calcular
usando Z Z
b b
f (x) dx ≈ I + f (x) dx MC1b (6.3.5)
a
| a {z }
con MC1

6.3.3. Aplicabilidad de los métodos Monte Carlo


Si se quiere calcular una integral con métodos tradicionales (trapezoidal,
Simpson etc) en dimensón D tomando un total de N puntos, los intervalos
en cada dimensión deben ser subdivididos en N 1/D intervalos de tamaño
h ∝ N 1/D . La integral en cada dimensión arroja un error de order O(hν ) (ν =
2 con el método trapezoidal y ν = 3 con el método 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
normalmente resulta más conveniente cuando la dimensión es algo mayor
que 4.

6.3.4. Método explı́cito


R
Se desea calcular ab F(x) dx pero la variación de la función en este inter-
valo es muy grande o el intervalo es infinito o ambas cosas a la vez. En
tal caso se debe seguir el siguiente método que se basa en escoger una
distribución w(x) tal que f (x) = F(x)/w(x),
Z b Z b
I= F(x) dx = w(x) f (x) dx (6.3.6)
a a

donde w(x) debe satisfacer


Z b
w(x) ≥ 0 en (a, b) y w(x) dx = 1 (6.3.7)
a

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

Haciendo el cambio de variable

Z x
y = g(x) = w(x′ ) dx′ ⇒ g(a) = 0 , g(b) = 1
a

se obtiene que

dy
dy = g ′ (x) dx = w(x) dx ⇒ dx =
w(x)

que permite escribir

Z 1  Z 1
−1 1
I= f g (y) dy = fe(y) dy ≈ ∑ fe(y j ) y j ← U (0, 1) (6.3.8)
0 0 N j

h i
F(x j )
pero fe(y j ) = f (g−1 (y j )) = w(x j ) x =g−1 (y ) por lo cual
j j

N  
1 F(x j )
I≈
N ∑ w(x j )
con y j ← U (0, 1) MC2 (6.3.9)
j=1 x j =g−1 (y j )

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


x j = g−1 (y j ) para sumar valores de la función f = F/w.
e
Este m  étodo es exitoso si la desviación estándar de los valores f (y j ) =
f (x j ) x =g−1 (y ) es pequeña. Lo ideal serı́a escoger w proporcional a F, de
j j
tal modo que f sea tan solo una constante. Esto en general no es posible
si se deseaRx
satisfacer las condiciones de hacer analı́ticamente la integral
g(x) = w dx y de conocer la función inversa g−1 .

6.3. INTEGRACIÓN MONTE CARLO Facultad de Ciencias Fı́sicas y Matemáticas


117 Métodos Numéricos

En resumen el algoritmo MC2 explı́cito está descrito aquı́

Z b
I = F(x) dx MC2 explicı́to
a
Z 1 
F(x)
= dy
0 w(x) x=g−1 (y)
 
1 F(x j )
N∑
≈ con y j ← U (0, 1)
j w(x j ) x j =g−1 (y j )

R
donde g = 0x w(x′ ) dx′ y w se escoje para que la función fe sea de
poco contraste en el intervalo [0, 1]
  Z b
e F(x)
f (y) = , w(a ≤ x ≤ b) ≥ 0 , w(x) dx = 1
w(x) x=g−1 (y) a

(6.3.10)
El error en el caso MC2 continua siendo O(σ f /N 1/2 ). La diferencia está en
que con MC2 se puede lograr una desviación estándar mucho menor.
Todo lo que se ha dicho en esta sección debe ser entendido aplicable al
caso multidimensional.
R ∞ 2 −x2
⊙ Ejemplo. Se plantea calcular numéricamente la integral I = 0
√ e
π
dx
que se sabe que vale 1 y se escoge w(x) = a1 e−x/a . Con este w se ob-
tiene que Z x
1 −x′ /a ′
y = g(x) = e dx = 1 − e−x/a
0 a
relación que se puede invertir a
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) = a1 e−x/a . Pero los y j y los 1 − y j
tienen la misma distribución lo que permite escribir
2a 2 2a 2
f (x) = √ e−x +x/a , f (y) = √ y−(1+a ln y)
e
π π
y la integral I en la forma aproximada
2a N h 2 i 2a N
2 2
I ≈ √ ∑ e−x +x/a = √ ∑ e−a ln (y )−ln(y ) ,
j j
y j ← U (0, 1)
N π j=1 x j =−a ln(y j ) N π j=1

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

Un código 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+= exp(-x*x + x);
}
final = 2.0*res/(sqrt(PI)*N);

6.3.5. Estrategia de von Neumann


Consideremos una función F(x) 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 6.7 se ha dibujado la curva F(x) en una caja de altura F0 yR base
(b − a). El área de la caja es (b − a) F0 y el área bajo la curva es I = F dx.
Si se lanza puntos al azar con distribución
uniforme en la caja, la probabilidad que R
cai-
1
gan bajo la curva F(x) es p = (b−a) F F dx
0
y, computacionalemnte p ≈ n1 /n donde n es
F(x)

el total de puntos lanzados y n1 son los que


cayeron bajo la curva, lo que permite con-
cluir que
Z b
n1
I= F(x) dx ≈ (b − a) F0 (6.3.11)
a n Figura 6.7: Dada una función
no negativa en x ∈ (a, b) la es-
Para hacer integrales de funciones que trategia de von Neumann permi-
R
cambian de signo se debe integrar separa- te calcular la integral ab F(x) dx
damente cada tramo donde no haya cambio usando números aleatorios.
de signo. Este método 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 cálculo de F es

n = 0;
n1 = 0;
do
{ x = a + (b-a)*drand48();

6.3. INTEGRACIÓN MONTE CARLO Facultad de Ciencias Fı́sicas y Matemáticas


119 Métodos Numéricos

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

Se genera un x ← U (a, b) y un y ← U (0, F0). Con n se cuenta el total de


puntos mientras que n1 cuenta los puntos que caen bajo la curva F(x). La
F(x)
secuancia que resulta tiene asociada una distribución W (x) = (b−a) F . 0

Pruebe el método calculando 0 sin x dx.
En el método 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 propor-
cional a la función F(x). El costo de cada nuevo punto es llamar dos veces
a la función drand48(), una vez a F(x) y además hay un if. Compárese
con MC1.

6.3.6. Integración Monte Carlo en dimensión D


La integración Monte Carlo en dimensión D toma las formas ya vistas. La
fórmula básica es la generalización trivial de (6.3.2),
s
Z
h f 2 i − h f i2
f (~r ) dV = V h f iU(V ) ±V (6.3.12)
N

donde todos los promedios de arriba se refieren a los que se obtiene de


N
1
hAi =
N ∑ A(~ri) ~ri ← U (V ) (6.3.13)
i=1

y U (V ) designa un generador de puntos aleatorios y uniformemente dis-


tribuidos en el volumen V de integración. La integral se puede calcular
usando una extención directa de MC1, (6.3.3),
Z N
V
f (~r ) dV =
N ∑ f (~ri) , ~ri ← U (V ) (6.3.14)
i=1

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

Sin embargo el dominio sobre el cual se quiere hacer la integral puede


ser suficientemente complejo para que no valga la pena calcular su vo-
lumen. En tal caso se define un volumen sencillo Vs que contiene a V y
se genera puntos uniformemente distribuidos en Vs y se suma sólo los fi
que corresponden a puntos en el interior de V . En tal caso la integral se
calcula como
Z N
Vs
f (~r ) dV =
N ∑ f (~ri) , ~ri ← U (Vs) (6.3.15)
i=1

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


f (x) = f0 entonces el resultado anterior serı́a 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
infinito o la función tiene variancia grande). El cambio que se haga tiene
que ser explı́cito.

6.3.7. Integración Monte Carlo en dominios difı́ciles


En más de una dimensi
R
ón se suele querer hacer integrales en dominios
Ω complicados, Ω f (~x ) d~x. Siempre se puede hacer un cambio f = w h
donde w ≥ 0. Para no complicar la exposición se supondrá que se integra
directamente f tal que f ≥ 0 en el dominio. En tal caso el problema es el
de generar puntos equiprobables en Ω. La solución que aquı́ se plantea es
una generalización de la estrategia de von Neumann definida en §6.3.5.
Se define un dominio sencillo (por ejemplo un hipercubo) que contiene a
Ω. Además se escoge un valor f0 mayor o igual a todos los valores f (~x )
en el dominio y se procede como sigue

n = 0;
n1 = 0;
do
{ x = aleatorio uniforme en el hipercubo de vol=W0;
y = aleatorio uniforme en el intervalo (0,f0);
n++;
if(y<f(x)) then n1++;
}while(n<=N)
integral = W0*f0*n1/N

6.3. INTEGRACIÓN MONTE CARLO Facultad de Ciencias Fı́sicas y Matemáticas


121 Métodos Numéricos

Es bueno siempre que la función no varı́e mucho dentro del dominio.

6.4. La estrategia Metropolis para calcular pro-


medios

6.4.1. El algoritmo de Metropolis


El algoritmo de Metropolis (Nicholas C. Metropolis, griego (1915-1999);
su vida cientı́fica fue en EEUU) fue concebido originalmente en el contex-
to de Mecánica Estadı́stica para calcular promedios asociados a sistemas
estadı́sticos en equilibrio. Esta estrategia sin embargo es de gran generali-
dad y primero será presentada sin hacer uso de los detalles que Mecánica
Estadı́stica requiere. Luego se verá cómo se aplica, en particular, en esa
área.
Reducido a su esencia, el algoritmo representa una estrategia para gene-
rar una secuencia X ← W (X ) para cualquier distribución de probabilidad
W en un un espacio de puntos X sobre los que se pueda asociar una dis-
tribución de probabilidad W (X ). En un sentido muy poderoso, Metropolis
resuelve el problema planteado en (6.2.4) con un código eficiente y bre-
ve. Un promedio, como señala (6.2.4), se logra con el simple promedio
aritmético de los valores generados.
Primero se va a definir el algoritmo de Metropolis y luego se va a argu-
mentar que tiene las propiedades deseadas.

El algoritmo. Se escoge una semilla X0 y se entra en el ciclo que sigue


donde, a partir del último punto Xn , se define un nuevo punto X p el cual
puede ser aceptado o rechazado. El esquema es el siguiente:
a) Se usa alguna regla, cuyas propiedasdes se discuten más adelante,
para generar, a partir de Xn , un X p (el subı́ndice p es por “prueba”).
Esta regla debe ser simétrica, en el sentido que sea igualmente pro-
blable generar X p si se proviene de Xn que vice versa.
b) Se acepta o rechaza X p de acuerdo a
W (X p)
if >r then Xn+1 = X p else Xn+1 = Xn (6.4.1)
W (Xn)

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

donde r ← U (0, 1) de modo que Xn+1 siempre queda definido.

Si Wp > Wn entonces Wp /Wn es mayor que cualquier r ← U (0, 1) y el nuevo


X p es aceptado. Es decir, X p es aceptado incondicionalmente si es más
probable que Xn . Si, por el contrario, X p es menos probable que Xn solo a
veces X p es aceptado. Se subraya que con este método la secuencia {Xn }
tiene puntos repetidos por cada vez que un X p no es aceptado. Esto debe
ser ası́ por razones estadı́sticas.

Dado un número x en el intervalo (0, 1), ¿cuál es la probabilidad P(x) de que


un número aleatorio r en (0, 1) satisfaga x > r? La respuesta es P(x) = x. El
algoritmo de Metropolis hace uso de esto.

Lo óptimo al generar una secuencia Metropolis es que la tasa de acepta-


ción de los X p esté en torno al 50 %.

Un problema que se presenta en algoritmos como estos es que X j y X j+1


no sean independientes. Por la forma como se generan los puntos, ellos
normalmente son cercanos (en algún sentido) lo que implica una correla-
ción entre ellos. Una forma de resolver esto consiste en no utilizar todos
los X j generados, sino que se toma en cuenta sólo uno de cada ν de ellos.
El valor de ν depende del problema que se esté resolviendo.

En muchos casos interesantes en fı́sica la probabilidad W es proporcional


a la exponencial e−E/kT : menos la energı́a (−E) dividida por kT (k es la
constante de Boltzmann y T la temperatura en grados Kelvin). Si la tem-
paratura se mide en unidades de energı́a se puede sustituir kT por T y
W ∝ e−E/T .
W (X )
En tales casos la condición W (Xnp) > r es idéntica a e(En −E p )/T > r y a su vez
esta condición es idéntica a

En − E p > T ln r (6.4.2)

que, computacionalmente, puede ser más rápida y manejable.

6.4. LA ESTRATEGIA METROPOLIS PARA CALCULAR PROMEDIOS Facultad de Ciencias Fı́sicas y Matemáticas
123 Métodos Numéricos

6.4.2. Por qué 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
llamado X p, que será aceptado o rechazado. Al iterar una vez más hay un
cambio en Dn que se debe a traspaso neto de puntos de la vecindad de X
a la vecindad de todos los posibles puntos Y . Este cambio que sufre Dn (X )
formalmente es δ Dn (X ) = Dn+1 (X ) − Dn(X ) y se puede expresar como

δ Dn (X ) = ∑ Dn (Y ) P(Y → X ) − ∑ Dn (X ) P(X → Y )
|Y {z } |Y {z }
ganancia pérdida
 
P(Y → X ) Dn (X )
= ∑ Dn (Y ) P(X → Y ) − (6.4.3)
Y P(X → Y ) Dn (Y )

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


Y . Asintóticamente se alcanza un estado de equilibrio en el sentido que
D(X ) ya no evoluciona más, esto es, δ D se anula. La solución general que
anula el lado derecho es muy difı́cil de encontrar. No demostraremos que
la solución requiere que el corchete sea nulo para todos los pares (X ,Y ).
• Se dice que se alcanza la densidad de equilibrio Deq cuando D(X ) deja
de evolucionar en todos los puntos X y se satisface

Deq (X ) P(Y → X )
= (6.4.4)
Deq (Y ) P(X → Y )

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


• Si D está muy cerca de Deq y ocurre que

Dn (X ) P(Y → X )
> (6.4.5)
Dn (Y ) P(X → Y )

el factor en el corchete en (6.4.3) es ne-


gativo y hay traspaso neto hacia Y , lo WX < WY WY < WX
que acerca a D(X ) al equilibrio. Las dos AXY 1 WY /WX
AY X WX /WY 1
Universidad de Chile Escuela de Ingenierı́a y Ciencias

Probabilidad de
aceptar estado Y
Interpolación Patricio Cordero S.

últimas propiedades muestran que el


mecanismo anterior conduce a un equi-
librio estable. El punto fijo es un punto
de equilibrio estable.
Si se escribe

P(X → Y ) = pXY AXY (6.4.6)

donde pXY es la probabilidad de que si


la semilla es X se intente Y , y AXY es la
probabilidad de que (6.4.1) acepte a Y
si la semilla es X . Por definición de la
estrategia de Metropolis pXY es simétri-
ca: pXY = pY X . Entonces (6.4.4) se pue-
de escribir
Deq (X ) AY X
= (6.4.7)
Deq (Y ) AXY

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


semilla, se sortea un r ← U (0, 1).

WY
Si WX < WY , se ve que W X
> 1 es mayor que cualquier r y Xn+1 = Y .
Esto se traduce en el 1 del primer casillero de la tabla.
WY WY
Si WX > WY , es decir W X
< 1, la probabilidad de aceptar a Y es WX ,
que es el valor superior derecho de la tabla.

En forma similar se obtiene los valores que están abajo en la tabla para el
caso en que Y es la semilla y X es el que se acepta o rechaza. Se com-
prueba inmediatamente que el valor del cuociente AY X /AXY es siempre el
mismo y es WX /WY , es decir,

Deq (X ) WX
= (6.4.8)
Deq (Y ) WY

6.4. LA ESTRATEGIA METROPOLIS PARA CALCULAR PROMEDIOS Facultad de Ciencias Fı́sicas y Matemáticas
125 Métodos Numéricos

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


que Deq = W y por tanto queda aclarado que (6.4.1) finalmente conduce
a W (X ).
En el análisis anterior se hizo uso de la ya cidada propiedad elemental: da-
do un x en el intervalo (0, 1), la probabilidad de que un r ← U (0, 1) esté en-
tre 0 y x es exactamente P = x.

6.4.3. Metropolis en mecánica estadı́stica


Es muy tı́pico considerar un sistema de N partı́culas cuyo hamiltoniano
p2
es de la forma H = ∑a 2ma + ∑a<b Vab y querer calcular, por ejemplo, un
promedio estadı́stico canónico de una cantidad que solo depende de las
posiciones de las partı́culas, A(~ra ) como

∑ A(~r N ) e−V /(kT )


hAi = (6.4.9)
∑ e−V /(kT )

donde V = ∑a<b Vab quiere decir la energı́a potencial total del sistema y la
suma (integral) es sobre los estados configuracionales del sistema. Nor-
malmente lo anterior es una integral d N ~r sobre todas las posiciones po-
sibles de las partı́culas del sistema. En la práctica 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 método de Metropolis genera
estados (configuracionales) directamente con la distribución W requerida,
por ejemplo,
e−β V
W= (6.4.10)
∑ e−β V

Cuando, por ejemplo, se calcula en mecáni-


ca estadı́stica el promedio de una cantidad
que depende tan solo de las coordenadas de
las partı́culas del sistemas (por ejemplo de un
lı́quido), se utiliza una distribución W como en
(6.4.10). Más en detalle, si se tiene un potencial
interpartı́cula, Vab = V (rab ), el exponente simbo-

Universidad de Chile Escuela de Ingenierı́a y Ciencias

Figura 6.9: El espacio se


divide en celdas de tal ta-
ma no que cada partı́cula in-
teractua tan solo con aque-
llas que están en su propia
celda o en las celdas veci-
Interpolación Patricio Cordero S.

lizado como β ∑ V es

βV = β ∑ Vab (6.4.11)
a<b

Esta es una suma sobre todos los pares posi-


bles de partı́culas del sistema. Si el sistema tie-
ne N partı́culas, la suma tiene O(N 2 ) sumandos.
Para sistemas medianamente grandes tal suma
serı́a un inconveniente prohibitivo. Pero lo que
interesa es el cuociente Wp /Wn , es decir, intere-
sa calcular ∆V = Vn − V p .
Si en la iteración Xn → X p se cambia las coordenadas de una sola partı́cula—
la partı́cula k-esima—~rk →~r ′k entonces en la diferencia (6.4.11) la mayorı́a
de los términos se cancela idénticamente y queda tan solo aquellos que
involucran a la partı́cula k,
 
∆V = ∑ V (~ra −~r ′k ) −V (~ra −~rk ) (6.4.12)
a

Esto hace que ahora la suma tenga O(N) sumandos. Aun esto es dema-
siado cuando se desea hacer cálculos sobre sistemas muy grandes.
La solución viene de una aproximación que solo puede hacerse si el po-
tencial Vab decae suficientemente rápido. Si decae rápido se opta por apro-
ximar a cero el potencial más allá de una distancia R0 , es decir, se hace
la aproximación V (rab ≥ R0 ) = 0. Se dice que R0 es el radio de influencia
de cada partı́cula. Una vez que se ha escogido el valor de R0 el sistema
se divide en celdas cúbicas de tamaño mayor o igual a R0 . De esta ma-
nera se logra que cada partı́cula solo interactue con otras que están en
su propia celda o en alguna de las celdas vecinas. Por cada celda c el
programa mantiene una lista Lc con el nombre de las partı́culas que hay
en c y cada vez que una partı́cula cambia de celda el programa actualiza
borrando a esa partı́cula de la lista que deja y anotándola en la nueva.
La suma (6.4.12) se hace tan solo sobre las partı́culas de las celdas que
corresponda. Esta suma ya no dependen del tamaño N del sistema y se
dice que es O(1) precisamente porque no depende de N.

La generación del estado de prueba X p no es un asunto enteramente tri-


vial. Si es muy cercano a Xn la probabilidad de aceptación puede ser muy

6.4. LA ESTRATEGIA METROPOLIS PARA CALCULAR PROMEDIOS Facultad de Ciencias Fı́sicas y Matemáticas
127 Métodos Numéricos

alta y puede haber una gran correlación entre los estados sucesivos. Por
otro lado, si X p es muy lejano a Xn la probabilidad de rechazo puede ser
muy alta lo que hace muy probable que Xn+1 = Xn lo que implica correla-
ción máxima.
En la literatura en el tema suele decirse que el algoritmo de generación
de los X p sea ajustado en una corrida en blanco para lograr una tasa de
aceptación de alrededor de 50 %. Y además para promediar no se tome
todos los estados de la secuencia {Xn } sino uno de cada K estados, para
desminuir los efectos de correlación entre estados consecutivos. Mi expe-
riencia es que hay casos en que lo anterior es claramente inconveniente.

• Para saber más sobre los temas de este capı́tulo se recomienda


- Monte Carlo Methods in Statistical Physics, M.E.J. Newman & G.T. Bar-
kena, Clarendon Press, Oxford, 1999.
- A guide to Monte Carlo Simulations in Statistical Physics, D.P. Landau,
K. Binder, Cambridge University Press, 2000.

6.4.4. Propiedades necesarias


Un algoritmo como el de Metropolis genera una secuencia de puntos X
distribuidos según W (X ). El algoritmo debe cumplir con una serie de pro-
piedades para ser satisfactorio a los propósitos de Mecánica Estadı́stica.
Estas propiedades no necesariamente se refieren a toda la historia de
la secuencia generada, sino a las propiedades que la secuencia alcanza
una vez que ha relajado al equilibrio. Es necesaria esta aclaración porque
si el punto de partida es muy improbable, la primera parte de la secuen-
cia puede ocurrir en una zona muy poco representativa de la distribución
W (X ). Pero tarde o temprano la secuencia va a alcanzar las zonas impor-
tantes 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 capı́tulo, un proceso de Mar-


kov genera aleatoriamente una secuencia de puntos X en algún espa-
cio cumpliendo 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

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

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 se-


cuencia debe en algún momento alcanzar un punto arbitrariamente cer-
cano a X con probabilidad no nula. Más aun, la frecuencia con que la
secuencia visita una vecindad de X debe ser proporcional a W (X ).

Balance detallado. Si se considera la parte de la secuencia que se tiene


después de haber llegado al equilibrio, la probabilidad de alcanzar un pun-
to X debe ser igual a la probabilidad de salir de ese punto, en el siguiente
sentido: ∑Y W (X ) P(X ,Y) = ∑Y W (Y ) P(Y, X ).
El balance detallado exige algo más restrictivo:

W (X ) P(X ,Y) = W (Y ) P(Y, X )

Esta última exigencia—aunque no se justificará—garantiza que la secuen-


cia efectivamente alcanza un equilibrio y no es atrapada en algún tipo de
ciclo lı́mite. En el caso de Metropolis esta propiedad quedó establecida en
(6.4.7).

6.4. LA ESTRATEGIA METROPOLIS PARA CALCULAR PROMEDIOS Facultad de Ciencias Fı́sicas y Matemáticas
129 Métodos Numéricos

6.4.5. Integrales usando el algoritmo de Metropolis


6.4.5.1. Caso unidimensional

Para calcular la integral


Z b
I= f (x) dx , con f (x) ≥ 0 , x ∈ (a, b)
a

en el intervalo (a, b) se divide el intervalo en M trozos iguales de largo


h = b−a
M . La secuencia xk generada por Metropolis produce un histoprama
H, donde cada componente H[ j], ( j = 0, . . . M − 1) del histograma da las
veces que fue visitado ese intervalo

a + h j ≤ x ≤ a + h ( j + 1) , j = 0, . . .M − 1

En la medida que el histograma es fiel se debiera satisfacer que

H[ j]
Q≡ ≈ independiente de j
fj

por lo cual se puede tomar cualquier valor de j para definir Q, aunque es


recomendable hacerlo usando un j para el cual f j tenga un valor grande
(muy probable). Se dirá que Q = HP / fP , donde P quiere decir muy proba-
ble. Puesto que la integral se puede aproximar por

h Nh
I ≈ h∑ fj ≈ ∑ H[ j] =
j Q Q

donde N = ∑ j H[ j] es el largo de la secuencia que se ha generado. De lo


anterior se obtiene que
N h fP
I≈ (6.4.13)
HP
Esta expresión final muestra que no se necesita construir un histograma.
Todo lo que interesa es el largo N de la secuencia, el “volumen” h de una
pequeña zona del dominio de integración, donde la función tiene un valor
significativo fP y, por último, el número entero HP de elementos xk de la
secuencia que están en este dominio.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

6.4.5.2. Caso general

Se desea hacer la integral Z


f (X ) dX
V
de una función no negativa en el dominio V de integración. Se escoge
algún punto X0 del dominio en el cual f (X ) tenga un valor relativamente
grande (ojalá un máximo) y se escoge un pequeño volumen ∆ en torno
a X0 donde se pueda suponer que la función es una constante f0 . Se
puede usar el propio 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 de ∆. La probabilidad que caigan es
ese pequeño volumen es
f0 ∆ n1
p= R =
V f (X ) dX n
de donde se despeja que
Z
n
f (X ) dX ≈ f0 ∆ (6.4.14)
V n1
Para que este algoritmo sea efectivo, primero debe correrse un ciclo que
ajuste el criterio de generación de X p que termine arrojando una tasa de
aceptación del orden del 50 %. Solo entonces se comienza a calcular la
integral.

6.5. Problemas
6.1 Determine un mı́nimo de la energı́a potencial E asociada a un sis-
tema bidimensional de 20 partı́culas 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 partı́culas se pueden mo-
ver tan solo en el plano XY con coordenadas 0 ≤ xa ≤ 10 y también

6.5. PROBLEMAS Facultad de Ciencias Fı́sicas y Matemáticas


131 Métodos Numéricos

0 ≤ ya ≤ 10. Suponga que una de las partı́culas está fija en x = 5,


y = 5 y que otra solo puede moverse en el eje X con y = 5. Un sis-
tema de este tipo está en su mı́nimo de energı́a tan solo si está a
temperatura cero. Más adelante se verá cómo determinar estados
representativos asociados a una cierta temperatura. Como configu-
ración inicial coloque a las partı́culas desordenadamente dentro de
la caja de 10 × 10. La “evolución” del sistema se hace en forma alea-
toria 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 energı́a disminuye. Conviene aumentar el valor de δ (por ejem-
plo en un 50 %) cuando znueva es aceptado y disminuirlo levemente
cuando znueva es rechazado, ¿por qué? a Explique muy claramente
el procedimiento seguido. b Haga un gráfico (o una tabla) con la
evolución de la energı́a como función del número de ciclos, donde se
define como ciclo el conjunto de las 37 iteraciones que intentan mo-
dificar cada una de las 37 coordenadas del sistema libres de variar.
c Una vez que haya obtenido un mı́nimo de E dibuje la posición de
las partı́culas. Interprete el valor de E en base: a este dibujo y a la
expresión para Vab .
R
6.2 Calcule la integral 0π sin x dx, f = sin x, usando MC2, factorizandolo
en la forma f = w h con
 
3 4  π 2
w= 1− 2 x−
2π π 2

y compare la velocidad de convergencia con el resultado de integrar


en forma directa usando MC1.
R
6.3 Compruebe que I = 1∞ sinx3
x
dx puede calcularse usando y = 1
x en
1
la forma I ≈ N ∑ j y j sin(1/y j ) con y j ← U (0, 1).

6.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.


Estime el valor numérico del error de su resultado. El resultado muy
aproximadamente es 6,3 × 103 .

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

6.5 Escriba y ejecute un programa inteligente que genere una secuencia


aleatoria {xk } de 20 millones de valores que se distribuyan según
2x
W (x) = con 0 ≤ x ≤ ∞
(1 + x2 )2
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. ¿Qué porciento de la secuencia está en
este intervalo? En un mismo gráfico superponga los valores de W (x j )
y del histograma normalizado, es decir los valores N H[ j], ¿cómo
debe hacerse la comparación realmente? ¿cómo se escoge N ?
Explique en detalle. Obtenga además el promedio Monte Carlo de
e−x con respecto a W usando los primeros n millones de valores de
la secuencia, con n = 1, n = 2 .. hasta n = 20.
6.6 Use la función
1  −(x−1)2 −(x+1)2

W (x) = √ 2 e +3e
5 π
para generar con el algoritmo de Metropolis una secuencia {xn } par-
tiendo 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 son aceptados. Use la función drand48() de C inicializada una
sola vez con srand48(M), y M es un entero cualquiera. Haga un
histograma hk (k = 0.,799) de los valores de la secuencia que que-
pan 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 número de
puntos de la secuencia xn que cayeron dentro de (−4, 4). Por cada
punto x que está 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 ins-


trucción de más arriba serı́a j = (int) 0.125*N*(4.0+x); ya
que (4.0+x) puede alcanzar el valor 8.0. Se debe dibujar 0,125 ∗ N ∗
h[ j]/n1.

6.5. PROBLEMAS Facultad de Ciencias Fı́sicas y Matemáticas


133 Métodos Numéricos

6.7 Considere un sistema unidimensional de 11 varas de largo 1 dentro


de una “caja” de largo 14. Suponga que la interacción entre ellas es
de energı́a 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
numéricamente la probabilidad de ocupación del centro
R
de cada va-
ra en cada uno de los 200 intervalos. Es claro que n(x) dx = 1. Tam-
bién determine la probabilidad g(x) de que la partı́cula 6 (la central)
tenga distancia relativa x con alguna otra partı́cula. La función g(x)
se llama función de correlación de pares. Haga variar esta distancia
x relativa en el intervalo (0, 5) y haga una normalización arbitrara a
g(x). Para unas tres temperaturas diferentes obténga tanto la densi-
dad como g(x) usando T = 0,01, T = 0,4, T = 10. Explique claramente
todo lo que haga.
6.8 Considere un sistema 2D de 30 partı́culas interactuando con un po-
tencial !
1 1
Vab = 4 12
− 6
rab rab
inicializadas en orden cristalográfico triangular (hexagonal de ca-
ra centrada) en tres filas de 10 partı́culas. Utilizando el algoritmo
de Metropolis estudie el coeficiente de expansión lineal del sistema
(cambio de la longitud media del sistema) como función de la tem-
peratura.
Comience con una temperatura muy baja (T = 0,001). Con cada nue-
va temperatura se comienza de la configuración final que se obtuvo
con la temperatura anterior. Al cambiar de temperatura el sistema
debe ser relajado (unas 30 mil iteraciones) antes de comenzar a
“medir”.
6.9 Considere el modelo de Ising ferromagnético 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 dinámicas Si j solo pueden tomar los valores ±1,
J es la constante de acoplamiento positiva y B es el campo magnéti-
co multiplicado por el momento magnético de cada spin. Los ı́ndices

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Interpolación Patricio Cordero S.

(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 borde periódicas. Cada producto Si j Skl tiene asociado en forma
natural un trazo elemental de la red y el término −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 periódicas sin complicaciones,
la lista de spines vecinos se llama de la siguiente forma

(k, l) = {(i−1 mod N, j); (i+1 mod N, j)(i, j−1 mod N); (i, j+1 mod N)}

donde mod es la función resto, que en C corresponde al operador %.


Se define la magnetización instantánea 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 des-
de 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 disminuyen-
do el parámetro de control. Use una red de tamaño N = 50. Además,
dé una pequeña interpretación de los resultados que obtenga e iden-
tifique la temperatura crı́tica.
Para construir cada curva, se propone usar el siguiente método. Se
genera primero una condición al azar (cada spin toma al azar un
valor 1 ó -1). Luego, se relaja el sistema para una temperatura y
campo magnético iguales al punto inicial de la curva. Después de re-
lajar se promedia la magnetización con esos parámetros. Se varı́an
los parámetros y se usa como condición inicial el estado final que
resultó de la simulación anterior. Después de una breve relajación
(porque como los parámetros son similares, el estado de equilibrio
debe ser similar) se promedia la magnetización, y ası́ sucesivamen-
te.

6.5. PROBLEMAS Facultad de Ciencias Fı́sicas y Matemáticas


135 Métodos Numéricos

6.10 Considere el siguiente modelo para la molécula H2 . La molécula


está compuesta por dos núcleos de hidrógeno (protones) a distan-
cia L. En torno a cada núcleo hay un electrón que supondremos que
está en un órbital s. La expresión para la función de onda de un
electrón en ese orbital en torno a un núcleo ubicado en ~R es
1 ~
Ψ(~r; ~R) = q e−|~r−R|/a0 (6.5.1)
π a30

donde a0 es el radio de Bohr.


El operador de energı́a electrostática de la molécula, que incluye la
interacción entre electrones y núcleos, está dado por

~1, R
~2) = e2 e2 e2 e2
U (~r1,~r2 ; R − − −
|~r1 − ~r2 | |~r1 − R~1 | |~r1 − R~2 | |~r2 − R~1 |
e2 e2
− + (6.5.2)
|~r2 − R~ 2 | |R
~1 − R~2 |

~1 y R
donde ~r1 y ~r2 son las posiciones de los electrones, R ~2 las posi-
ciones de los núcleos y e es la carga electrónica.
Luego, sin considerar antisimetrización por spin de los electrones, el
valor medio de la energı́a electrostática es
Z
hU i = ~1 )2 Ψ(~r2 ; R
d 3 r1 d 3 r2 Ψ(~r1 ; R ~ 2 )2 U (~r1,~r2 ; R
~1 , R
~2 ) (6.5.3)

Use un sistema de unidades donde a0 = 1 y e = 1 y coloque a los


núcleos en R ~1 = L/2 ı̂ y R~ 2 = −L/2 ı̂. Se pide graficar hU i para se-
paraciones L que van desde L = 1,5 hasta L = 2,5. Integre usando
el algoritmo de Metropolis consideando que las dos distribuciones
p(~ri ) = Ψ(~ri ; ~Ri )2 (i = 1, 2) dan la probabilidades con que se distribu-
yen ~r1 y ~r2 respectivamente. No es necesario preocuparse por las
divergencias en U , pues las integrales son finitas.
Tal vez le convenga separar en coordenadas centro de masa y rela-
tivas.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales elı́pticas Patricio Cordero S.

6.5. PROBLEMAS Facultad de Ciencias Fı́sicas y Matemáticas


Capı́tulo 7

Ecuaciones elı́pticas

En este capı́tulo y los que siguen se verá tan solo los métodos más senci-
llos para integrar ecuaciones (normalmente lineales) a derivadas parcia-
les. Existe una amplia variedad de métodos más refinados que no serán
mencionados.

7.1. Ecuación y condiciones de borde


Considérese el sencillo caso bidimensional de una ecuación de Poisson
dentro de un dominio en el plano XY , con borde dado por una curva ce-
rrada Γ
∇2 Φ = G(x, y) (7.1.1)
Como condiciones de borde se puede imponer condiciones rı́gidas, o de
Dirichlet
[Φ]Γ = [g1 (x, y)](x,y)∈Γ (7.1.2)
o bien algún tipo de condición sobre las derivadas, por ejemplo,
 
∂Φ
= [g2 (x, y)](x,y)∈Γ (7.1.3)
∂n Γ

donde ∂ /∂ n = n̂ · ∇ es la derivada normal al borde Γ del dominio de inte-


gración y se llama condición de borde tipo Neumann. Cuando en todo el
borde se tiene este tipo de condición la solución del problema no es única

137
Ecs. diferemciales elı́pticas Patricio Cordero S.

porque a la solución que se tenga se le puede agregar una constante arbi-


traria y sigue siendo una solución del mismo problema. Pero una ecuación
como ∇2 Φ = G(Φ, x, y) puede tener condiciones de borde tipo Neumann en
todos lados y tiene solución única excepto que sea una ecuación de auto-
valores (G = k(x, y) Φ).
Más en general se puede tener condiciones de borde mixtas,
 
∂Φ
+ γ (x, y ) Φ(x, y ) = [g(x, y)](x,y)∈Γ (7.1.4)
∂n Γ
 
La derivada ∂∂Φn se debe entender como n̂ · ∇Φ donde n̂ es la normal al
Γ
borde.
En todo lo que sigue se puede rehacer los cálculos considerando ecua-
ciones elı́pticas más generales, tales como
∇ (p(x, y ) ∇Φ(x, y )) + q(x, y ) Φ(x, y ) = G(x, y ) (7.1.5)
pero en nada sustancial cambian los métodos de aquellos requeridos para
integrar (7.1.1).

7.1.1. Integral de acción


Definiendo la integral de acción S[Φ]
Z  
1 2
S[Φ] = dx dy (∇Φ) + Φ G (7.1.6)
2
se busca la condición bajo la cual S permanece estacionaria—esto es
δ S = 0 — y que sea compatible con las condiciones de borde rı́gidas,
Z
δS = dx dy [∇Φ · ∇(δ Φ) + δ Φ G] (7.1.7)
pero
Z Z Z
∇Φ · ∇(δ Φ) dx dy = ∇ · (δ Φ ∇Φ) dx dy − δ Φ ∇2 Φ dx dy (7.1.8)

La primera de las dos integrales de la derecha es equivalente a una inte-


gral sobre el borde Γ de la zona de integración,
Z
δ Φ ∇Φ · n̂ ds
Γ

7.1. ECUACIÓN Y CONDICIONES DE BORDE Facultad de Ciencias Fı́sicas y Matemáticas


139 Métodos Numéricos

donde n̂ es el vector normal al borde Γ y ds es el elemento de arco. Pues-


to que Φ no varı́a sobre el borde ((δ Φ)Γ = 0) la primera integral es nula
concluyéndose que
Z  
δS = dx dy −∇2 Φ + G δ Φ (7.1.9)

que debe ser nula para cualquier variación δ Φ. Esto implica (7.1.1).
Puesto que la ecuación proviene del mı́nimo de la integral de acción, el
problema se reduce a encontrar el mı́nimo de S compatible con las condi-
ciones de borde.

Para una ecuación como (7.1.5) basta con considerar la integral de acción
Z  
1 2
S[Φ] = dx dy p (∇Φ) + F(Φ)
2

que implica la ecuación

δF
∇ (p ∇Φ) − =0
δΦ

F(Φ) puede, por ejemplo, ser − 21 q Φ2 − Φ G.

7.2. Discretización

7.2.1. Discretización en el volumen


La ecuación (7.1.1) puede ser discretizada en la forma

Φi+1,k − 2Φi,k + Φi−1,k Φi,k+1 − 2Φi,k + Φi,k−1


+ = Gik (7.2.1)
h2 h2

De esta ecuación se despeja Φi,k definiéndose una relación de recurrencia


para ir actualizando los valores de los Φi,k

1 
Φi,k ← Φi+1,k + Φi−1,k + Φi,k+1 + Φi,k−1 − h2 Gik (7.2.2)
4
Universidad de Chile Escuela de Ingenierı́a y Ciencias
Ecs. diferemciales elı́pticas Patricio Cordero S.

Esta relación de recurrencia converge prácticamente a partir de cualquier


conjunto inicial de valores para Φi,k .
Algo más en general se define, en lugar de (7.2.2)
ω 
Φi,k ← (1 − ω ) Φi,k + Φi+1,k + Φi−1,k + Φi,k+1 + Φi,k−1 − h2 Gik (7.2.3)
4
que se reduce a (7.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 (7.2.3) con el arreglo previo, el método, en general, no es
convergente.
Si las condiciones de borde son tipo Dirichlet
se puede usar directamente (7.2.3) sin más (i,N)
consideraciones cuidando no alterar los va-
lores colocados al comienzo en los bordes. (i−1,N−1)(i,N−1) (i+1,N−1)

7.2.2. Discretización en los bor-


des en un caso tipo Neumann Figura 7.1: Detalle de la dis-
cretización en el borde superior
La condición (7.1.3) discretizada es del dominio de integración.

ΦiN − Φi N−1 = h gi (7.2.4)


Al considerar (7.2.2) con k = N − 1, a la derecha aparece un Φi N que se
reemplaza, usando la última expresion, y se obtiene

4Φi,N−1 = Φi+1,N−1 + Φi−1,N−1 + Φi,N−1 + h gi + Φi,N−2 − h2 Gi,N−1 (7.2.5)
Entre llaves aparece la expresión usada en lugar de Φi,N . De esta nueva
expresión se deduce inmediatamente la relación de recurrencia especı́fica
para los puntos vecinos al borde,
ω 
Φi,N−1 ← (1 − ω ) Φi,N−1 + Φi+1,N−1 + Φi−1,N−1 + Φi,N−2 − h2 Gi,N−1 + h gi
3
(7.2.6)
Obtenidos los valores anteriores se actualiza los puntos del borde mismo
con
ΦiN = Φi N−1 + h gi (7.2.7)
En resumen: lejos de los bordes se itera con (7.2.3), al lado de los bordes
se itera con (7.2.6) y los puntos del borde se iteran con (7.2.7).

7.2. DISCRETIZACIÓN Facultad de Ciencias Fı́sicas y Matemáticas


141 Métodos Numéricos

7.2.3. Convergencia
7.2.3.1. Iteración en el volumen

Para estudiar la convergencia de (7.2.3) se utilizará la regla de iteración


lejos de los bordes.
La versión discreta de la integral de acción es
"     #
1 Φik − Φi−1 k 2 1 Φi k − Φi k−1 2
S=∑ + + Φi k Gi k h2 (7.2.8)
i,k 2 h 2 h

y, puesto que interesará la condición dS/dΦik = 0 para cada Φik separa-


damente, basta con tomar en cuenta de todas las contribuciones a S solo
aquellas con términos que tienen un Φik con ı́ndices fijos:
1 1 1
S = (Φik − Φi−1 k )2 + + (Φi+1 k − Φi k )2 + (Φik − Φi k−1 )2
2 2 2
1 2 2
+ (Φi k+1 − Φi k ) + h Φi k Gi k + términos sin Φi k
2
= 2Φ2ik − Φik Φi−1 k − Φik Φi+1 k − Φik Φi k−1 − Φik Φi k+1
+h2 Φi k Gi k + términos sin Φi k
 

= Φik 2Φik − Φi−1 k − Φi+1 k − Φi k−1 − Φi k+1 + h2 Gi k  + términos sin Φi k


| {z }
B
= Φik B + términos sin Φi k (7.2.9)

En esta expresión para S se va a reemplazar Φik por la expresión dada en


(7.2.3), definiendo ası́ un nuevo valor S ′ . Pero primero (7.2.3) será rees-
crita para las necesidades actuales,
ω 
Φi,k ← Φik + −4 Φik + Φi+1,k + Φi−1,k + Φi,k+1 + Φi,k−1 − h2 Gik
|4 {z }
A=ω Ψ/4
← Φik + A (7.2.10)

Nótese que A y B se relacionan por


4
2Φik + B = − A (7.2.11)
ω
Universidad de Chile Escuela de Ingenierı́a y Ciencias
Ecs. diferemciales elı́pticas Patricio Cordero S.

Al hacer el reemplazo (7.2.10) en la expresión para S, tanto en el factor


explı́cito Φik como en B se obtiene

S ′ = (Φik + A) (2A + B)

que permite calcular la variación de S como

∆ = S′ −S
= 2A2 + A (2Φik + B)
 
2 4A
= 2A + A −
ω
ω −2 2
= 2 A
ω
ω (ω − 2) 2
= Ψ (7.2.12)
8
Si ω < 0 el último factor es positivo, lo que no se quiere. Para que S dis-
minuya se necesita ∆ < 0 lo que requiere que ω sea positivo y menor que
dos,
0≤ω ≤2 (7.2.13)
De este sencillo análisis parece desprenderse que el valor óptimo es
ω = 1, sin embargo puede comprobarse que valores de ω más cerca de
2 son los que dan una convergencia mucho más rápida. Debido a erro-
res numéricos, si ω se acerca mucho a 2, el algoritmo se desestabiliza y
diverge.

7.2.3.2. Iteración con condición de borde tipo Neumann

Se presenta en forma muy esquemática la forma de obtener la condición


cuando se itera cerca de un borde cuando se tiene las condición de borde
de tipo analizado en §7.2.2.

o Se define Ψ imponiendo que la expresión a la derecha en (7.2.6) sea


Φi,N−1 + ω Ψ. De esta ecuación se despeja h2 Gi,N−1 .

o Se define Si,N−1 como la suma de todos los términos de S que con-


tienen Φi,N−1 . Una vez que se tiene esta expresión se elimina Φi,N
usando (7.2.7), lo que da una nueva expresión para Si,N−1 .

7.2. DISCRETIZACIÓN Facultad de Ciencias Fı́sicas y Matemáticas


143 Métodos Numéricos

o En Si,N−1 se sustituye Φi,N−1 usando la regla de iteración (7.2.6), lo



que da una expresión que designamos Si,N−1 .

o Se define δ = Si,N−1 − Si,N−1 . En ella se sustituye h2 Gi,N−1 por la ex-
presión que se obtuvo en el primer paso.

El resultado de este procedimiento es


3ω (ω − 2) 2
δ= Ψ
2
que nuevamente garantiza convergencia cuando se satisface (7.2.13).
Si el problema que se resuelve es (7.1.1) y la condición de borde es tipo
Neumann en todos los bordes, entonces la solución no es única, porque
si Ψ es solución, también lo es Ψ + cte. Basta con fijar arbitrariamente el
valor de Ψ en un punto del dominio para que el método garantice unicidad.

7.3. Fluidos incompresibles estacionarios

7.3.1. Las ecuaciones


Lo anterior se aplicará a un caso bidimensional que se deduce a partir de
las ecuaciones hidrodinámicas
∂ρ
+ ∇ · (ρ~v) = 0 (7.3.1)
 ∂ t 
∂~v
ρ + (~v · ∇)~v = −∇p + η ∇2~v + ρ ~g (7.3.2)
∂t
∂T
+ (~v · ∇) T = κ ∇2 T (7.3.3)
∂t
ρ densidad ~v velocidad hidrodinámica
p presión T temperatura
η viscosidad ~g aceleración de gravedad
donde
κ conductividad térmica α coeficiente de expansión térmica lineal
ψ función corriente ζ vorticidad
ν = η /ρ0 viscosidad cinemática
zzu

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales elı́pticas Patricio Cordero S.

Se va a hacer dos simplificaciones: (a) no hay dependencia temporal y


(b) la densidad es reemplazada por la densidad media ρ0 excepto en el
término con gravedad donde se coloca

ρ = (1 − α (T − T0 )) ρ0 . (7.3.4)

T0 es la temperatura media del sistema. En el caso de lı́quidos la densidad


varı́a un poco, no ası́ en el caso de gases.
Existe una sencilla solución hidrostática a las ecuaciones anteriores si se
supone que el fluido está 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 = 0
y
T = Tb + (Tt − Tb ) la temperatura cambia linealmente con la altura
y1
 
α Tt − Tb 2
p = g ρ0 y − y + p0 (7.3.5)
2 y1

7.3.2. Ecuaciones estacionarias para la función corrien-


te, la vorticidad y la temperatura
Sin tiempo y teniendo densidad uniforme (7.3.1) se convierte en

∇ ·~v = 0 (7.3.6)

pero todo campo con divergencia nula puede ser expresado como el rotor
de otro campo que, en el caso presente, se denomina función corriente,
ψ,
vi = εi j ∂ j ψ esto es en 2D (7.3.7)
Donde εi j es antisimétrico y ε12 = 1 mientras que ψ es un seudovector, lo
que bidimensionalmente lo hace un seudoescalar,
  !  
∂ψ
u ∂ y ψy
~v = = = (7.3.8)
v − ∂∂ψx −ψx

Nótese que ψ está definido salvo por una constante aditiva.

7.3. FLUIDOS INCOMPRESIBLES ESTACIONARIOS Facultad de Ciencias Fı́sicas y Matemáticas


145 Métodos Numéricos

Adicionalmente se define la vorticidad, esencialmente como el rotor de la


velocidad
ζ = −εi j ∂i v j
= ∇2 ψ (7.3.9)

Las ecuaciones hidrodinámicas originales se reducen a


ν ∇2 ζ = ψy ζx − ψx ζy + α g Tx (7.3.10)

∇2 ψ = ζ (7.3.11)

κ ∇2 T = ψy Tx − ψx Ty (7.3.12)
que es un sistema acoplado de tres ecuaciones diferenciales para los tres
campos ψ , ζ y T .
En problemas con g = 0, la ecuación (7.3.12) se desacopla de las otras de
modo que basta con resolver solamente (7.3.10) acoplada con (7.3.11).
Las dimensiones de estas cantidades son
[ψ ] = [ℓ2 /t] , [ζ ] = [1/t] , [T ] = [mℓ2 /t 2] , [κ ] = [ν ] = [ℓ2/t]
(7.3.13)

E JERCICIO : Demostrar que


"  2 2 #
∂ 2ψ ∂ 2ψ ∂ ψ ∂ρ
∇2 p = 2ρ0 − − g (7.3.14)
∂ x2 ∂ y2 ∂ x∂ y ∂y

7.3.3. Lı́neas de corriente


Si la curva Γ, definida por [x(s), y(s)], es una curva en el plano XY sobre
la cual la función Ψ es constante se puede deducir que

0 =
ds
∂ Ψ dx ∂ Ψ dy
= +
∂ x ds ∂ y ds

= −v ẋ + u ẏ

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales elı́pticas Patricio Cordero S.

de donde
dy v
=
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 velocidad siga una lı́nea es-
pecı́fica, se debe imponer que Ψ sea constante sobre esa lı́nea.

7.3.4. Versión discreta de ψ y ζ


Las componentes de la velocidad son u y v. En términos discretos estas
componentes se asocian a los trazos horizonatales y verticales del reticu-
lado, como lo muestra la figura y

ψi,k − ψi,k−1 ψi,k − ψi−1,k


uik = vik = − (7.3.15)
h h

Se puede pensar que en cada cuadrilátero ele-


mental hay una corriente ψik en el sentido que in- v
i,k
dica la figura, y las componentes de la velocidad
resultan de sumar las corrientes que impone cada ψ ψ
i−1,k i,k
celda.
Por otro lado, la vorticidad es el rotor de la veloci- ψ
i,k−1 ui,k
dad,

ζik = (uy − vx )ik


ui,k+1 − ui,k vi+1,k − vi,k Figura 7.2: Esta figura
= − ayuda a tener una ima-
h h gen pictórica del significa-
ui,k+1 − vi+1,k − ui,k + vi,k
= (7.3.16) do “local” de ψ .
h
En el nunmerador está la suma de las componentes de la velocidad aso-
ciadas a cada uno de los cuatro lados de la celda, tomando en cuenta el
signo según la forma que indica la figura.
En general se llama circulacin de un campo vectorial ~A por un camino
cerrado Γ a la integral, I
C = ~A · d~r. (7.3.17)
Γ

7.3. FLUIDOS INCOMPRESIBLES ESTACIONARIOS Facultad de Ciencias Fı́sicas y Matemáticas


147 Métodos Numéricos

El signo de la circulacin est ligado al signo con que se escoja recorrer a la


curva cerrada Γ. La expresión (7.3.16) es proporcional a la circulación de
la velocidad ~v en una celda de integración.

7.4. Primer ejemplo: convección térmica


Esta vez se estudiará la dinámica 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 . Hay
gravedad que apunta hacia abajo como lo indica la figura 7.3. Las paredes
laterales AD y BC son perfectamente aislantes (flujo de calor nulo) por lo
que ∂∂Tx = 0 en los bordes verticales. Se debe resolver las tres ecuaciones
acopladas (7.3.10), (7.3.11) y (7.3.12), que con la notación actual son,

ν ∇2 ζ = ψ y ζ x − ψ x ζ y + g α T x (7.4.1)
∇2 ψ = ζ (7.4.2)
κ ∇2 T = ψ y T x − ψ x T y (7.4.3)

Puesto que las paredes son sólidas el cam-


D C
po de velocidad se anula en ellas lo que ha- Tt

ce que el campo ψ sea constante en todo el g


dT dT
=0
perı́metro y se escoge nulo. La temperatura dx
=0
dx
aparece solo derivada, lo que deja la liber-
tad T → c0 + T ′ . Por ejemplo, se puede tomar
Ttop = 0 y Tbot = ∆. A
Tb
B

El problema se discretiza en un reticulado de Figura 7.3: Note que los vérti-


Nx × Ny y, para simplificar la notación, supon- ces tienen nombres diferentes
dremos que se logra tener celdas cuadradas que en la figura del flujo con
de h × h. obstáculo. La función corriente
es nula en todo el perı́metro.
En cuanto a la vorticidad ζ se razona en for-
ma parecida al caso visto anteriormente. Se
comienza por hacer una expansión de ψ en potencias de h y hasta segun-
do orden en un punto (1, k) a distancia h del borde izquierdo,
   
∂ψ h2 ∂ 2 ψ
ψ 1k = ψ 0k + h + (7.4.4)
∂ x 0k 2 ∂ x2 0k

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales elı́pticas Patricio Cordero S.

El primer término es nulo porque ψ es nulo en el borde. El segundo tam-


bién es 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 ψ = ψ xx . Un punto
sobre AD es un punto (0, k) por lo cual
 2 
∂ ψ 2
ζ 0,k = = ψ (7.4.5)
∂ x2 0k h2 1k
La última igualdad viene de (7.4.4). En forma semejante se obtiene las
condiciones de borde para ζ en los otros tres bordes. Todas ellas son:
2 2 2 2
ζ 0,k = ψ , ζ i,N2 = ψ , ζ i,0 = ψ , ζ N1 ,k = ψ .
h2 1,k h2 i,N2 −1 h2 i,1 h2 N1 −1,k
(7.4.6)
Una forma interesante de adimensionalizar cuando se hace un análisis de
las ecuaciones continuas es: xk = Ly x̂k , ψ = ν ψ y ζ = Lκ2 ζ .
y

Las ecuaciones van a ser adimensionalizadas primero en forma genérica


para luego buscar la forma especı́fica más conveniente. Se va a usar

ψ = λ1 ψ , ζ = λ2 ζ , T = ∆T (7.4.7)

donde ∆ = Tb − Tt . Además se usará una forma compacta para los opera-


dores diferenciales discretos
1 ∂ 1
∇2 = δ2 = δk (7.4.8)
h2 ∂ xk 2h
de tal modo que

δ2 f = fi+1,k + fi−1,k + fi,k+1 + fi,k−1 − 4 fik (7.4.9)


δk f = fi,k+1 − fi,k−1 (7.4.10)

las tres ecuaciones hidrodinámicas entonces son


νλ2 λ1 λ2 α g∆
2
δ2 ζ = 2
(δk ψ δi ζ − δi ψδk ζ ) + δi T
h 4h 2h
λ1
δ2 ψ = λ2 ζ (7.4.11)
h2
κ λ1
δ2 T = (δk ψδi T − δi ψδk T )
h2 4h2

7.4. PRIMER EJEMPLO: CONVECCIÓN TÉRMICA Facultad de Ciencias Fı́sicas y Matemáticas


149 Métodos Numéricos

Escogiendo λ2 = λ1 /h2 se logra que la segunda ecuación sea

δ2 ψ = ζ

y ahora las otras dos ecuaciones quedan

λ1 α g h3 ∆
δ2 ζ = (δk ψ δi ζ − δi ψδk ζ ) + δi T
4ν 2νλ1
λ1
δ2 T = (δk ψδi T − δi ψδk T )

Aparecen tres coeficientes numéricos. Se escoge λ1 = 4ν para que el pri-
mer coeficiente sea uno. Automáticamente el tercer coeficiente toma el
valor
ν
Pr ≡
κ
que se conoce como número de Prandtl. El segundo coeficiente puede
ser escrito como
Ra
µ≡
8 Pr Ny3
donde el número de Rayleigh es

∆ L3y α g
Ra ≡ (7.4.12)
νκ

En resumen, las ecuaciones de iteración en puntos del interior son (seguro


que he cometido errores: rechequear)
1h i
ψik = ψi+1,k + ψi−1,k + ψi,k+1 + ψi,k−1 − ζik
4
1h  
ζik = ζi+1,k + ζi−1,k + ζi,k+1 + ζi,k−1 − ψi,k+1 − ψi,k−1 ζi+1,k − ζi−1,k
4
  i
+ ζi,k+1 − ζi,k−1 ψi+1,k − ψi−1,k − µ Ti+1,k − Ti−1,k (7.4.13)
1h
Tik = Ti+1,k + Ti−1,k + Ti,k+1 + Ti,k−1
4
     i
+Pr ψi+1,k − ψi−1,k Ti,k+1 − Ti,k−1 − ψi,k+1 − ψi,k−1 Ti+1,k − Ti−1,k

A estas ecuaciones aun se les debe agregar el parámetro ω de sobre-


relajación para acelerar la convergencia. El problema aparece con dos

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales elı́pticas Patricio Cordero S.

parámetros de control en las ecuaciones mismas, µ y Pr aparte de los que


puedan entrar a través de las condiciones de borde.

Puesto que el campo de velocidad en los bordes debe anularse, debe


cumplirse que ψ sea constante en los bordes, y no hay pérdida de gene-
ralidad tomando nula tal constante:

u i,k+1
ψi,0 = 0 , ψi,N2 = 0 , ψ0,k = 0 , ψN1 ,k = 0

De modo que ψ se itera en los puntos interiores vi,k v


i+1,k
sin restricciones.
Arriba y abajo la temperatura debe ser fija y como u i,k
aparecen sus derivadas no hay pérdida de gene-
ralidad si se toma Figura 7.4: La vortici-
dad puede ser interpreta-
Ti,0 = 1 , Ti,N2 = 0 da como la circulación lo-
cal del campo de veloci-
dad.
mientras que a los costados la derivada de T debe
ser nula, esto es, T1,k − T0,k = 0 y también TN1 ,k −
TN1 −1,k = 0. Al usar la fórmula 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 conduce a la ley de iteración

1h
T1k = T2,k + T1,k+1 + T1,k−1 (7.4.14)
3 i
+Pr {(ψ2,k − ψ0,k ) (T1,k+1 − T1,k−1 ) − (ψ1,k+1 − ψ1,k−1 ) (T2,k − T0,k )}
T0k = T1k (7.4.15)

Algo semejante debe hacerse al lado derecho.


En el caso del campo de vorticidad ζ , se debe cumplir las condiciones de
borde (7.4.6) 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 continuación


deben imponerse estas condiones de borde.

7.4. PRIMER EJEMPLO: CONVECCIÓN TÉRMICA Facultad de Ciencias Fı́sicas y Matemáticas


151 Métodos Numéricos

7.5. Segundo ejemplo: flujo y obstáculo


El sistema se discretiza en N1 intervalos en la dirección X y en N2 inter-
valos en la dirección Y de tal modo que el intervalo elemental en ambas di-
recciones es h (tan solo para que la notación sea sencilla),

B ψ =v ζ=0 C
y 0
x = ih y = kh i = 0, ..N1 , k = 0, ..N2
F G
(7.5.1) ψ =0
ψ =0 x
Las coordenadas enteras del obstáculo son x
ζx=0
ζ=0
E ↔ (i1 , k1 ) y G ↔ (i2 , k2 ) E H

A ψ =v ζ=0 D
y 0
7.5.1. Las ecuaciones discretas
en el volumen Figura 7.5: Con lı́nea puntea-
da se señala un “borde” de ori-
gen puramente algorı́tmico pa-
Este es un problema que se plantea sin ra integrar en una zona finita.
gravedad por lo que bastará con resolver El obstáculo es el rectángulo
(7.3.10) acoplada con (7.3.11). El campo de EFGH.
temperatura se puede evaluar al final si se desea.
Se verá el caso de un fluido 2D que pasa más allá de un obstáculo rectan-
gular EFGH. Para resolver este problema se impondrá ciertas condiciones
de borde de naturaleza fı́sica y otras que son más bien hipótesis simplifi-
catorias. Se escoge resolver el problema dentro de un rectángulo ficticio
ABCD suficientemente lejos del obstáculo. Se supondrá que el fluido fluye
laminarmente desde la izquierda de modo que en los bordes izquierdo y
derecho
∂ψ
−v = =0 a izquierda y derecha la velocidad es solo horizontal
∂x
Se supondrá que la componente horizontal de la velocidad hidrodinámica
arriba BC y abajo AD vale v0 . Es decir, arriba y abajo se tomará

u = ψy = v0 arriba y abajo la componente horizontal de la velocidad está fija

Respecto a la vorticidad, sin mayores argumentos se supondrá que es ce-


ro abajo, arriba y a la izquierda. En cambio a la derecha satisfará ∂ ζ /∂ x =

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales elı́pticas Patricio Cordero S.

0: ley de Kelvin sobre la conservación de la vorticidad que establece que


en fluidos sin viscosidad la vorticidad se conserva.
Todas las condiciones de borde impuestas hasta aquı́ se hacen sobre un
borde ficticio y son simplificaciones del problema. La condición fı́sica tı́pica
de hidrodinámica es que la velocidad es cero en los puntos de contacto
con un sólido, es decir, ψ es constante en el perı́metro EFGH. Puesto que
ψ está definido salvo por una constante aditiva, se toma

ψ =0 en EFGH

La condición sobre ζ en este perı́metro será discutida más adelante.

Adimensionalización: Sea L una distancia caractarı́stica L del proble-


ma y se define los campos adimensionales como sigue:
v0
ψ = v0 L ψ̂ ζ= ζ̂ (7.5.2)
L
Los campos X̂ son adimensionales. Puesto que en todo lo que sigue
de este problema se trata solo con los campos adimensionales no se
pondrá el acento. En cambio las pocas veces que se haga referencia a
los campos con dimensiones se les sobrepondrá una barra: ψ y ζ
La ecuación (7.3.11) se escribe
 
ψi+1,k − 2ψi,k + ψi−1,k ψi,k+1 − 2ψi,k + ψi,k−1 v0
v0 L 2
+ 2
= ζi,k
h h L
Los factores v0 se cancelan y, si se escoge L = h, no aparece ninguna
constante en esta ecuación, reduciéndose a
1 
ψi,k = ψi+1,k + ψi−1,k + ψi,k+1 + ψi,k−1 − ζi,k (7.5.3)
4
que es la primera ecuación que se usará para iterar.
En forma similar (7.3.10) puede ser convertida en
 
1 R
ζik = ζi+1,k + ζi−1,k + ζi,k+1 + ζi,k−1 + (ψi+1,k − ψi−1,k )(ζi,k+1 − ζi,k−1 )
4 4

−(ψi,k+1 − ψi,k−1 )(ζi+1,k − ζi−1,k ) (7.5.4)

7.5. SEGUNDO EJEMPLO: FLUJO Y OBSTÁCULO Facultad de Ciencias Fı́sicas y Matemáticas


153 Métodos Numéricos

en esta expresión
h v0
R=
ν
es una especie de número de Reynolds. Un número de Reynolds con
significado fı́sico es EF v0 /ν .

7.5.2. Las ecuaciones en los bordes


Ecuaciones para ψ : Ya se ha dicho que ψ = 0 en todo el borde con el
obstáculo.
En AB se tiene ψx = 0, que se expresa como

ψ0,k = ψ1,k (7.5.5)

Usando esta relación en (7.5.3) tomada con i = 1 da

4ψ1,k = ψ2,k + ψ0,k +ψ1,k+1 + ψ1,k−1 − ζ1,k


|{z}
ψ1,k

que permite escribir, ya con ω incorporada,


ω 
ψ1,k = (1 − ω )ψ1,k + ψ2,k + ψ1,k+1 + ψ1,k−1 − ζ1,k (7.5.6)
3
En AD se tiene ψ y = v0 , es decir, ψi,1 − ψi,0 = 1, esto es

ψi,0 = ψi,1 − 1 (7.5.7)

que se usa en (7.5.3) y se obtiene, en forma similar que en el caso anterior,


ω
ψi,1 = (1 − ω )ψi,1 + (ψi+1,1 + ψi−1,1 + ψi,2 − 1 − ζi,1 ) (7.5.8)
3
En forma entéramente análoga, en BC se satisface

ψi,N2 = ψi,N2 −1 + 1 (7.5.9)

y también
ω
ψi,N2 −1 = (1 − ω )ψi,N2 −1 + (ψi+1,N2 −1 + ψi−1,N2 −1 + 1 + ψi,N2 −2 − ζi,N2 −1 )
3
(7.5.10)

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales elı́pticas Patricio Cordero S.

Y también en forma entéramente análoga, en CD se satisface

ψN1 ,k = ψN1 −1,k (7.5.11)


ψN1 −1,k = (1 − ω )ψN1 −1,k
ω 
+ ψN1 −2,k + ψN1 −1,k+1 + ψN1 −1,k−1 − ζN1 −1,k (7.5.12)
3

Ecuaciones para ζ en bordes exteriores: Las condiciones sobre ζ en


ABCD son sencillas,

ζ0,k = 0 izquierda
ζi,0 = 0 abajo (7.5.13)
ζi,N2 = 0 arriba

A la derecha se exige ζx = 0 (ley de Kelvin de conservación de la vortici-


dad) lo que conduce a
ζN1 ,k = ζN1 −1,k (7.5.14)
Tomando (7.5.4) con i = N1 − 1 se obtiene

ζN1 −1,k
z}|{
4ζN1 −1,k = ζN1 ,k +ζN1 −2,k + ζN1 −1,k+1 + ζN1 −1,k−1

R
+ (ψN1 ,k − ψN1 −2,k )(ζN1−1,k+1 − ζN1 −1,k−1 )
4

−(ψN1 −1,k+1 − ψN1 −1,k−1 )(ζ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,k−1
3

R
+ (ψN1 ,k − ψN1 −2,k )(ζN1 −1,k+1 − ζN1 −1,k−1 )
4

−(ψN1 −1,k+1 − ψN1 −1,k−1 )(ζN1,k − ζN1 −2,k ) (7.5.15)

7.5. SEGUNDO EJEMPLO: FLUJO Y OBSTÁCULO Facultad de Ciencias Fı́sicas y Matemáticas


155 Métodos Numéricos

Ecuaciones para ζ en bordes del obstáculo: Para obtener las condi-


ciones de borde para ζ en torno al obstáculo se hace una expansión de
Taylor de ψ para un punto (i, k2 + 1) con i1 < i < i2 ,
   
∂ψ h2 ∂ 2 ψ
ψ i,k2 +1 = ψ i,k2 + h + +... (7.5.16)
∂ y i,k2 2 ∂ y2 i,k2

El primer término de la derecha es nulo porque ψ es nulo alrededor de to-


do el obstáculo. El segundo es cero porque corresponde a la componente
tangencial de la velocidad en contacto con un sólido. Ambas componen-
tes de la velocidad son cero en los puntos de contacto con un sólido. En
∂v
particular 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,

∂ 2ψ ∂ 2ψ
ζ= + 2
∂ x2 ∂y
entonces sobre FG es
N2
 2 
∂ ψ
ζ= L1
∂ y2 FG K2 111
000
000
111
U 000
111
000
111
000
111
000
111 D
000
111
000
111
que se puede reemplazar en (7.5.16) K1
000
111
000
111
000
111

obteniéndose L2

h2 0
0 I1 I2 N1
ψ i,k2+1 = ζ
2 i,k2
Figura 7.6: Como explica el texto,
que, al pasar a campos adimensionales conviene definir varias zonas de inte-
se reduce (y las otras se obtienen por gración.
métodos semejantes):

ζi,k2 = 2 ψi,k2 +1 FG
ζi1 ,k = 2 ψi1 −1,k EF
ζi2 ,k = 2 ψi2 +1,k GH (7.5.17)
ζi,k1 = 2 ψi,k1 −1 HE

Las rutinas de integración deben tomar en cuenta con cuidado el rango


de las variables enteras (i, k). En la figura se muestra un caso en que

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales elı́pticas Patricio Cordero S.

0 ≤ i ≤ N1 y 0 ≤ k ≤ N2 . El obstáculo es un rectángulo con vértices opuestos


(i1 , k1 ) y (i2 , k2 ). Debe tenerse rutinas que aplican todas las condiciones
de borde del perı́metro. En estas rutinas debe primero actualizarse los
puntos inmediatos al perı́metro y sólo entonces los del perı́metro mismo.
Debe haber otra rutina que aplica las relaciones asociadas al contacto con
el obstáculo y finalmente rutinas que integran en los “puntos interiores” de
las zonas que en la figura aparecen como U (up wind o corriente arriba),
L1 y L2 que son laterales y D (down wind o corriente abajo). Naturalmente
que puede escogerse integrar en forma algo diferente, pero es importante
escoger correctamente los rangos de integración de cada rutina para no
deshacer, por ejemplo, las condiciones de borde.

7.6. Algoritmo de más alto orden


Este capı́tulo comenzó planteado una forma de discre-
tizar la ecuación 7 2 6
∇Φ = G
obteniéndose como algorı́tmo básico aquel definido en 3 0 1
(7.2.2). Lo que sigue se basa en el análisis que se hace
en [6].
8 4 5
Si se observa los puntos definidos en la figura 7.7 donde
0 representa al punto (x, y), 1 representa al punto (x + Figura 7.7: Pun-
h, y), 6 se asocia con (x+h, y+h) etc. entonces se puede tos del algoritmo.
afirmar que el algoritmo visto en (7.2.2) toma en cuenta tan solo los puntos
0, 1, ... 4.
Se puede definir un algoritmo más preciso que se deduce de expandir la
función en los puntos 0, 1, ... 8 que indica la figura 7.7,
Φ0 = Φ(x, y) Φ1 = Φ(x + h, y) Φ2 = Φ(x, y + h)
Φ3 = Φ(x − h, y) Φ4 = Φ(x, y − h) Φ5 = Φ(x + h, y − h) (7.6.1)
Φ6 = Φ(x + h, y + h) Φ7 = Φ(x − h, y + h) Φ8 = Φ(x − h, y − h)
Definiendo S1 = Φ1 +Φ2 +Φ3 +Φ4 y S2 = Φ5 +Φ6 +Φ7 +Φ8 se comprueba
que el algoritmo original se obtiene de
S1 − 4Φ0
2
≈ ∇2 Φ + O(h2 ) = G + O(h2) ⇒ S1 − 4Φ0 = h2 G + O(h4)
h

7.6. ALGORITMO DE MÁS ALTO ORDEN Facultad de Ciencias Fı́sicas y Matemáticas


157 Métodos Numéricos

que, escrito en forma discreta debe entenderse como,

Φi+1,k + Φi−1,k + Φi,k+1 + Φi,k−1 − 4Φi,k = h2 Gik + O(h4) (7.6.2)

Más preciso es

4S1 + S2 − 20Φ0 2 h2 4 4 h2 2
≈ ∇ Φ + ∇ Φ + O(h ) = G + ∇ G + O(h4)
6h2 12 12
Por lo cual la forma básica para definir el algoritmo es

h2 2
4S1 + S2 − 20Φ0 = 6h2 G + ∇ G + O(h6 )
2
cuya forma discreta es
4 (Φi+1,k + Φi−1,k + Φi,k+1 + Φi,k−1 )
h2 2
+ Φi+1,k+1 + Φi+1,k−1 + Φi−1,k+1 + Φi−1,k−1 − 20Φi,k = 6h2 G + ∇ G + O(h6 )
2
(7.6.3)
Despejando Φik se tiene un algoritmo de iteración más preciso que (7.2.2).

7.7. Problemas
7.1 Ecuación de Poisson: (a) Integre la ecuación de Poisson 2D para
el potencial electrostático
1
∇2V (x, y) = − ρ (x, y) ≡ G(x, y)
ε0
dentro de una caja cuadrada de L × L con L = 10. El potencial V en el
perı́metro vale: V (x, 0) = V (x, L) = x/10, V (0, y) = 0 y V (L, y) =
1. Utilice un coeficiente de relajación ω ≥ 1,5.
Dentro de la caja hay una zona rectangular con vértices opuestos en
(2,4; 2,4) y (4,4; 4,4) dentro de la cual G(x, y) = −1. Vale cero fuera
de esa zona.
7.2 Hidrodinámica 2D: Integre las ecuaciones hidrodinámicas 2D defi-
nidas en este capı́tulo para las funciones corriente, vorticidad y tem-
peratura usando el método de relajación para el caso de un fluido

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales elı́pticas Patricio Cordero S.

en una caja rectangular de 3 × 1 tal que la pared de abajo es más


caliente que la de arriba. Considere además que paredes latera-
les son perfectamente aislantes. La admimensionalización definida
en el capı́tulo condujo a ecuaciones discretas que tienen solo dos
parámetros: µ y Pr. Fije Pr = 1 y varı́e µ desde 0,001 con d µ = 0,0001.
Si bien la diferencia de temperatura arriba y abajo va cambiando, por
definción la diferencia adimensionalizada es siempre la unidad.
Mientras está iterando con un µ fijo se desea saber si hay conver-
gencia y cuándo. Una vez se ha convergido guarde en archivo el
valor de µ , el valor de dT y el número de iteraciones que fueron ne-
cesarias. Nunca barra menos de 50 mil veces antes de comenzar a
observar los cambios que sufre dT . Esto debe hacerse ası́ porque
hay que dar la oportunidad para que la solución se desestabilice
hacia una nueva forma más estable. Siempre tome los campos del
caso anterior como los valores iniciales.
7.3 Flujo en 2D: Integre las ecuaciones 2D que determinan las funcio-
nes corriente y vorticidad en la geometrı́a que indica la figura 7.5. Un
fluido viene de la izquierda y hay un obstaculo rectangular EFGH.
Para efectos prácticos se escoge un dominio finito ABCD que no co-
rresponde lı́mites fı́sico sino al borde del dominio que se usa para
integrar y al cual se le asocia condiciones de borde sencillas.
Antes de adimensionalizar se escoge las siguientes condiciones de
borde: ψx = 0 en AB y CD, ψy = v0 en BC y AD; ζ = 0 en DA, AB y
BC, en cambio ζx = 0 en CD. En el perı́metro EFGH se toma ψ = 0
mientras que las condiciones para ζ son más complicadas y son las
que se discuten en clases. Se adimensionaliza usando ψ → hv0 ψ
y ζ → vh0 ζ . Esta forma de proceder hace que aparezca un único
parámetro en las ecuaciones, R ≡ hvν0 , donde ν es la viscosidad ci-
nemática. Aunque no es totalmente correcto se lo denomina número
de Reynolds.
Utilice una grilla definida por coordenadas enteras (Nx , Ny ): A=(0, 0),
C=(1000, 120), E=(60, 40), G=(80, 80). Conviene que los campos ini-
cialmente valgan 0.0 excepto si alguna condición de borde exigiera
otra cosa.
a) Integre el caso R =0.8. usando al menos dos valores mayores que
la unidad del coeficiente de sobrerelajación ω . Indique cuántas ite-

7.7. PROBLEMAS Facultad de Ciencias Fı́sicas y Matemáticas


159 Métodos Numéricos

raciones fueron necesarias. Presente en un solo gráfico una familia


de curvas iso-ψ y en otro una familia de curvas iso-log |ζ |. Tabule los
valores de ψ y ζ en los puntos (Nx , Ny ) de la grilla que corresponden
a Ny = 70 y Nx es múltiplo de 50, esto es Nx es 0, 50, 100, 150, ...
hasta 1000.
b) Integre el caso R =4.5. Luego de haber iterado al menos 50 mil
veces guarde los valores de ψ y ζ y presente gráficos de las curvas
iso-ψ y las curvas iso-log |ζ | y la misma tabla definida en (a). Una vez
alcanzada la iteración 50 mil, guarde los valores de ψ90,80 y de ζ90,80
y coloque tic=0. Luego cada 5000 iteraciones aumenta tic en uno y
vuelva a guardar ψ90,80 y de ζ90,80 hasta tener tantos puntos que se
vea una gráfico interesante (por sobre 200 puntos). Haga gráficos
de ψ90,80 y de ζ90,80 versus tic.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales parabólicas Patricio Cordero S.

7.7. PROBLEMAS Facultad de Ciencias Fı́sicas y Matemáticas


Capı́tulo 8

Ecuaciones parabólicas

8.1. Ecuación general

Los métodos que se presenta a continuación son generalizables a ecua-


ciones de la forma

 
∂F ∂ ∂F
+ B(t, x, F) = S(t, x, F) (8.1.1)
∂t ∂x ∂x

tanto con condiciones de borde rı́gidas como derivativas.


La ecuación propiamente parabólica más general tiene la forma


a Ftt + b Fxx + ab Ftx + . . . = 0 (8.1.2)

donde los subı́ndices señalan derivadas, los coeficientes a y b representan


funciones de (t, x) y los puntos suspensivos representan términos con tan
solo primeras derivadas o sin derivadas. La ecuación (8.1.1) es un caso
con a = 0.
Suele ocurrir que estas ecuaciones admitan separación de variables. Eso
las convierte en ecuaciones diferenciales ordinarias lo que no es de in-
terés en este capı́tulo.

161
Ecs. diferemciales parabólicas Patricio Cordero S.

8.2. Ecuaciones tı́picas

8.2.1. Ecuación de calor

Las ecuaciones parabólicas más conocidas en fı́sica posiblemente son la


ecuación de difusión de calor que en su forma tridimensional es

∂T
= κ ∇2 T (8.2.1)
∂t

pero que normalmente veremos en una sola dimensión espacial

∂T ∂ 2T
=κ 2 (8.2.2)
∂t ∂x

Puede pensarse que se trata del problema de una barra muy larga con
temperatura T (t, x) que varı́a en el tiempo. Pero también puede verse un
caso tridimensional con simetrı́a esférica. La ecuación no tiene exacta-
mente la forma (8.2.2) pero es igualmente tratable.
Más en general se puede estudiar ecuaciones como

∂ Φ ∂ 2Φ
= + S(x,t) (8.2.3)
∂t ∂ x2

8.2.2. Ecuación de Schrödinger

Un caso interesante es el de la ecuación de Schrödinger dependiente del


tiempo, que podrı́a ser

∂Ψ
= −i H Ψ
∂t
H = −∇2 +V (8.2.4)
Ψ(t = 0) = Ψ0 (x) , Ψ(t, ±∞) = 0

8.2. ECUACIONES TÍPICAS Facultad de Ciencias Fı́sicas y Matemáticas


163 Métodos Numéricos

8.2.3. Otros ejemplos de ecuaciones parabólicas

La ecuación de Burgers:

∂U ∂U 1 ∂ 2U
= −U + (8.2.5)
∂t ∂ x Re ∂ x2

proviene de hidrodinámica. Sin el último término se la llama ecuación de


Burgers con viscosidad nula y Re es un número conocido como el número
de Reynolds.

La ecuación de Swift-Hohenberg:

∂U
= λ U (1 −U 2) − (1 + ∇2 )2U (8.2.6)
∂t

Esta ecuación tiene derivadas de cuarto orden en las coordenadas, pero


es comúnmente considerada como parabólica y se integra con los mismos
métodos.
Los autores se inspiraron en el estudio del fenómeno de convección térmi-
ca. Si se resuelve con una sola dimensión espacial y condiciones iniciales
arbitrarias lo tı́pico es que la solución evolucione hacia un conjunto de
“patrones” que se desplazan a velocidad constante.

Hidrodinámica incompresible 2D dependiente del tiempo: Si en las


ecuaciones con que se presenta §7.3.1 se impone ρ = ρ0 estrictamente
en todas partes, la primera ecuación es ∇ ·~v = 0 que, como ya se sabe,
se puede reducir en 2D a la introducción de la función corriente ψ tal que
vx = ψy y vy = −ψx . Si se define ζ = ∇2 ψ se obtiene una ecuación
dinámica para ζ , reemplazando a (7.3.10) con lo que las ecuaciones son

∂ζ
= ψx ζy − ψy ζx + ν ∇2 ζ (8.2.7)
∂t
0 = ∇2 ψ − ζ (8.2.8)

Esto es, una ecuación parabólica acoplada con una ecuación elı́ptica.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales parabólicas Patricio Cordero S.

8.3. Adimensionalización de la ecuación de di-


fusión de calor 1D
Si en la ecuación (8.2.2) se hace el cambio de variables y función a canti-
dades prima adimensionales:

L2 t ′
x = L x′ , t= , T = T0 T ′ (8.3.1)
κ

donde L normalmente es el largo del intervalo, por lo cual ahora 0 ≤ x′ ≤ 1 y


T0 es alguna temperatura caracterı́stica, mientras que T ′ es adminesional.
De esta manera, si además se elimina las primas, la ecuación queda

∂T ∂ 2T
= 0≤x≤1 (8.3.2)
∂t ∂ x2

8.4. Integración explı́cita directa


El problema adimensionalizado anterior se
n+1
condicion de borde

condicion de borde
puede escribir en forma discreta en la forma .

n
k−1 k k+1
Tkn+1 − Tkn n − 2T n + T n
Tk+1 k k−1
= 2
(8.4.1)
ε h
0 1 condicion inicial N−1 N
que conduce a
Figura 8.1: Las variables (x,t)
Tkn+1 = n
r Tk−1 + (1 − 2r) Tkn + r Tk+1
n
(8.4.2) se discretizan en la forma x = k h,
con k = 0, 1, . . . N y t = n ε,
con n = 0, 1, . . . Los valores k = 0
ε y k = N corresponden a los bor-
donde r = . Esta forma de integrar puede
h2 des. Se subraya que el intervalo
dar buenos resultados. En la literatura se ha X de integración está dividido en
demostrado que si 0 < r < 12 esta regla de N celdas de largo h.
iteración no diverge. Sin embargo dentro del
rango permitido no da resultados muy precisos salvo que r sea bastante
pequeño, pero esto implica ε pequeño, es decir, la integración avanza
lentamente en el tiempo.

Facultad de Ciencias Fı́sicas y Matemáticas


8.3. ADIMENSIONALIZACIÓN DE LA ECUACIÓN DE DIFUSIÓN DE CALOR 1D
165 Métodos Numéricos

8.4.1. Condiciones de borde rı́gidas


La integración (8.4.2) con condiciones de borde rı́gidas es trivial ya que
basta con usar la fórmula iterativa (8.4.2) sucesivamente con n = 1, n = 2,
n = 3 . . . recorriendo cada vez de k = 1 hasta k = N − 1.

8.4.2. Condiciones de borde derivativas


Puede haber varias condiciones de borde con derivada. Algunas son:
∂T
=0 borde aislante perfecto (8.4.3)
∂n
o bien un borde que tiene asociada una tasa de absorcióno emisión de
energı́a. En cada punta la versión adimensionalizada de condiciones de
borde derivativas se puede escribirse en la forma
   
∂T ∂T
= µ (T − Tizq ) , = −µ (T − Tder ) (8.4.4)
∂ x izq ∂ x der

Estas condiciones se podrı́an discretizar en la forma


T1n − T0n  TNn − TN−1
n
= µ T0n − Tizq , = −µ (T0n − Tder ) (8.4.5)
h h
pero es más conveniente agregar puntos ficticios más allá de los extremos
e imponer
T1n − T−1
n  n −Tn
TN+1 N−1
= µ T0n − Tizq , = −µ (TNn − Tder ) (8.4.6)
2h 2h

Este método se usa a continuación en em caso especı́fico siguiente


∂T 2
∂t = ∂∂ xT2
T (0, x) = g(x) condición inicial
(8.4.7)
T (t, x = 0) = TI condición de borde rı́gida
T ′ (t, x = 1) = −µ (T − Tder ) condición de borde derivativa

donde g(0) = TI . La última condición describe una vara cuyo extremo de-
recho dinámicamente ajusta su temperatura acercándola al valor Tder .

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales parabólicas Patricio Cordero S.

Al discretizar el método explı́cito (8.4.2) exige imponer T0n = TI . En el extre-


mo derecho, como se ha dicho, conviene agregar un punto ficticio k = N +1
e imponer
n −Tn
TN+1 N−1
= −µ (TNn − Tder ) =⇒ n
TN+1 n
= TN−1 − 2µ h (TNn − Tder )
2h
n
Puesto que en la expresión (8.4.2) para k = N aparece TN+1 se debe hacer
uso de la expresión anterior para obtener la regla correcta para TNn+1 sin
que aparezca el punto ficticio k = N + 1.
Como se ha visto, el hecho que una de las condiciones de borde sea
derivativa implica que existe una variable dinámica adicional que en este
caso es TN .
Si ambas condiciones de borde hubiesen sido derivativas se tendrı́a N + 1
variables dinámicas: T0 , T1 , . . . TN , esto es, todas ellas tendrı́an que ser
iteradas.

8.4.3. Condiciones de borde periódicas


Si las condiciones de borde son periódicas se puede considerar la misma
malla discreta que muestra la figura 8.1 tan solo que se debe considerar
que los puntos correspondientes de k = 0 y k = N son idénticos. Ası́ enton-
ces la regla de iteración (8.4.2) sigue válida pero se debe tomar en cuenta
que
T0n+1 = r TN−1
n
+ (1 − 2r) T0n + r T1n , (8.4.8)
n+1 n n
TN−1 = r TN−2 + (1 − 2r) TN−1 + r T0n (8.4.9)

8.5. El método de Du Fort-Frankel


En el caso de la ecuación
∂U d 2U
=κ 2
∂t dt
los autores proponen
Ukn+1 −Ukn−1 U n −Ukn+1 −Ukn−1 +Uk−1
n
= κ k+1
2ε h2

8.5. EL MÉTODO DE DU FORT-FRANKEL Facultad de Ciencias Fı́sicas y Matemáticas


167 Métodos Numéricos

que lleva al algoritmo explı́cito


1 − α n−1 α  2κε
Ukn+1 = Uk + n
Uk+1 n
+Uk−1 donde α= (8.5.1)
1+α 1+α h2
Un defecto del método es que requiere condiciones iniciales en dos tiem-
pos consecutivos. Una condición necesaria para que este método dé la
solución correcta es que εh → 0 lo que es automático si se exige que
ε = O(h2) y h → 0.

8.6. El método tridiagonal

8.6.1. La ecuación de calor


ε
A continuación se verá un método que no está limitado a que r =sea
h2
pequeño y que es aplicable a una gran variedad de ecuaciones parabóli-
cas.
Se comienza planteando nuevamente la ecuación

∂T ∂ 2T
= 2
∂t ∂x
con condiciones de borde que por el momento serán rı́gidas:

T (t, 0) = Tizq , T (t, 1) = Tder


T (0, x) = g(x) con g(0) = Tizq , g(1) = Tder (8.6.1)

y g(x) es alguna condición inicial dada compatible con las condiciones de


borde.
En forma discreta las condiciones de borde son

T0n = Tizq , TNn = Tder (8.6.2)

y la condición inicial es la función g(x) que se abreviará, en notación dis-


creta, como gk ,

Tk0 = gk , con g0 = Tizq , gN = Tder (8.6.3)

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales parabólicas Patricio Cordero S.

Esta vez se plantea la ecuación discretizada


" #  n
n+1
− 2Tkn+1 + Tk−1
n+1 n 
Tkn+1 − Tkn a Tk+1 2 − a Tk+1 − 2Tkn + Tk−1
= + (8.6.4)
ε 2 h2 2 h2

donde 1 ≤ k ≤ N − 1, lo que implica que en particular son necesarios los


valores T0 = Tizq y TN = Tder .
Escogiendo a = 0 se tendrı́a el método explı́cito y queda excluido en el
contexto actual. El caso a = 1 conduce al método conocido como de Crank-
Nicolson y con a = 2 se lo llama el método implı́cito, pero a puede tomar un
continuo de valores. El caso a = 1 de Crank-Nicolson es especial porque
corresponde a
 n+ 1
∂T 2 1 h 2 n+1 2
n i
= ∇ T k + ∇ T k
∂t k 2

Para a cualquiera la ecuación (8.6.4) puede ser reescrita con las cantida-
des con n + 1 a la izquierda y con n a la derecha

n+1
−ar Tk−1 + 2(1 + ar)Tkn+1 − ar Tk+1
n+1
n
= (2 − a) rTk−1 + 2 (1 − (2 − a) r) Tkn + (2 − a) rTk+1
n
(8.6.5)

El problema consiste en obtener los T n+1 suponiendo que se conoce los


T n . La ecuación anterior puede ser vista de la forma

A− 0 +
k φk−1 + Ak φk + Ak φk+1 = bk con 1 ≤ k ≤ N − 1 (8.6.6)

De arriba se ve que φk = Tkn+1 , A+


k = −ar, A0k = 2 (1 + ar), A−
k = −ar
mientras que

bnk = (2 − a) rTk−1
n
+ 2(1 − (2 − a) r) Tkn + (2 − a) rTk+1
n
(8.6.7)

que es un valor conocido cuando se está por obtener los Tkn+1 .


Más en general, el problema es resolver una ecuación del tipo

M~φ = ~b (8.6.8)

8.6. EL MÉTODO TRIDIAGONAL Facultad de Ciencias Fı́sicas y Matemáticas


169 Métodos Numéricos

donde M es una matriz rectangular tridiagonal:


 
A− 0
1 A1 A+
1 0 .. 0
 
 

 0 A−
2 A02 A+
2 0 0 

 
 

 0 0 A−
3 A03 A+
3 0 

M=



 0 0 0 0 
 
 
 
 0 0 .. .. .. .. 0 
 
 
0 0 .. 0 A− 0 +
N−1 AN−1 AN−1

Se ve que M tiene N +1 columnas (numeradas del 0 al N) y N −1 filas. Esta


matriz multiplica al vector ~φ = {φ0 , φ1 , ..., φN−1, φN } donde las componentes
φ0 y φN están definidas por las condiciones rı́gidas. El vector ~b tiene N − 1
componentes. La ecuación (8.6.8) conduce, entonces a N − 1 ecuaciones
para las N − 1 incógnitas ~ϕ = {φ1 , ..., φN−1}. Este problema es idéntico al
problema

A−
1 φ0 + (A~
ϕ )1 = b1 ⇒ (A~ϕ )1 = b1 − A−
1 φ0
(A~ϕ )k = bk 2 ≤ k ≤ N −2 (8.6.9)
+ +
(A~ϕ )N−1 + AN−1 φN = bN−1 ⇒ (A~ϕ )N−1 = bN−1 − AN−1 φN

donde A es una matriz tridiagonal de (N − 1) × (N − 1). De esta manera el


problema se reduce auténticamente al de una matriz cuadrada tridiagonal
A de (N − 1) × (N − 1) y un vector ~b̃ modificado por las condiciones de
borde:

A~ϕ = ~b̃ cuya solución formal es ~ϕ = A−1~b̃ (8.6.10)

Nótese que si se tuviera que φ0 = φN = 0 el problema descrito en (8.6.9)


es sencillamente
A~ϕ = ~b

con el vector ~b original.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales parabólicas Patricio Cordero S.

8.6.2. El algoritmo para el caso rı́gido


El método que se explica a continuación se usa para resolver ecuaciones
parabólicas lineales.
Se plantea resolver para ~φ la ecuación

A ~φ = ~b (8.6.11)

donde A es una matriz de (N − 1) × (N − 1) tridiagonal, es decir, (8.6.11)


es

 k = 1, . . ., N − 1
A− φ
k k−1 + A 0
φ
k k + A +
φ
k k+1 = b k con φ0 = UI (8.6.12)

φN = Uder

Se destaca que si bien en la ecuación anterior el rango de k es de 1 a


N − 1, los φk están definidos también con k = 0 y k = N. El problema que
se plantea implica, de alguna forma, invertir la matriz A. Se va a encontrar
un algoritmo que permite encontrar ~φ en pocos pasos.
Ecuaciones lineales de recurrencia como estas siempre tienen solución
de la forma
φk+1 = αk φk + βk (8.6.13)
Reemplazando este φk+1 en (8.6.12) se obtiene

A+ 0 −
k (αk φk + βk ) + Ak φk + Ak φk−1 = bk

que implica que


−A−k b k − A+
k βk
φk = + 0
φ k−1 + +
Ak αk + Ak Ak αk + A0k
que tiene la forma de (8.6.13) y por lo tanto se debe identificar

−A−k
αk−1 = + (8.6.14)
Ak αk + A0k
b k − A+
k βk
βk−1 = + (8.6.15)
Ak αk + A0k

que son ecuaciones de recurrencia para los αk y βk .

8.6. EL MÉTODO TRIDIAGONAL Facultad de Ciencias Fı́sicas y Matemáticas


171 Métodos Numéricos

Para que todo sea consistente se debe cuidar los puntos del borde. La
ecuación (8.6.12) para k = N − 1 debe coincidir con (8.6.13) con k = N − 2.
Pero ellas son

A+ 0 −
N−1 UD + A1 φN−1 + AN−1 φN−2 = bN−1 , φN−1 = αN−2 φN−2 + βN−2
(8.6.16)
Comparándolas se obtiene αN−1 = −A− 0 + 0
N /AN y βN−1 = (bN − AN Uder )/AN .
Juntando estos resultados con las relaciones de recurrencia (8.6.14) y
(8.6.15) con k = N se obtiene que

αN−1 = 0 , βN−1 = Uder ≡ φN (8.6.17)

Con esto se usa las relaciones de recurrencia (8.6.14) y (8.6.15) para ob-
tener en forma descendente todos los αk y todos los βk . Una vez que estos
coeficientes se conocen se usa (8.6.13) en forma ascendente, sabiendo
que φ0 = UI para obtener todos los φk . El problema ha sido resuelto.

8.6.3. Ecuación de calor con conductividad variable


La ecuación de calor en espacio unidimensional para T (t, x) es
 
∂T ∂ ∂T
= K(x)
∂t ∂x ∂x
dK ∂ T ∂ 2T
= +K 2 (8.6.18)
dx ∂ x ∂x
Discretizando con igual peso en los instante n + 1 y n se obtiene
" #
n+1 n+1 n+1
Tkn+1 − Tkn 1 Kk+1 − Kk−1 Tk+1 − Tk−1 Tk+1 − 2Tkn+1 + Tk−1
n+1
= + Kk
ε 2 2h 2h h2
 n −Tn n − 2T n + T n 
1 Kk+1 − Kk−1 Tk+1 k−1 Tk+1 k k−1
+ + Kk (8.6.19)
2 2h 2h h2

Definiendo r ≡ ε /h2 la ecuación puede ser llevada a la forma


n+1
r(Kk+1 − 4Kk − Kk−1 ) Tk−1 + 8(1 + rKk ) Tkn+1
n+1
+r(−Kk+1 − 4Kk + Kk−1 ) Tk+1 = Bnk (8.6.20)

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales parabólicas Patricio Cordero S.

donde

Bnk = r(−Kk+1 + 4Kk + Kk−1 ) Tk−1


n
+ 8(1 − rKk ) Tkn + r(Kk+1 + 4Kk − Kk−1 ) Tk+1
n

viéndose que (8.6.20) tiene la forma (8.6.6) ya estudiada.


Si se escoge
" #
n+1 n+1 n+1
Tkn+1 − Tkn a Kk+1 − Kk−1 Tk+1 − Tk−1 Tk+1 − 2Tkn+1 + Tk−1
n+1
= + Kk
ε 2 2h 2h h2
 n −Tn n − 2T n + T n 
2 − a Kk+1 − Kk−1 Tk+1 k−1 Tk+1 k k−1
+ + Kk (8.6.21)
2 2h 2h h2

Se obtiene una ecuación de la forma (8.6.12) con

A+ ′′
k = ar(Kk−1 − Kk+1 ) − 4arKk
A0k = 8 (1 + arKk ) (8.6.22)
A−
k = ar(Kk+1 − Kk−1 ) − 4arKk

n+1
que multiplican a Tk+1 , Tkn+1 , Tk−1
n+1
respectivamente; mientras que el lado
derecho es de la forma
n n n
pk Tk+1 + zk Tk+1 + mk Tk−1

donde

pk = r(a − 2)(Kk+1 + 4Kk − Kk−1 )


zk = 8 (1 + r(a − 2)Kk ) (8.6.23)
mk = r(a − 2)(−Kk+1 + 4Kk + Kk−1 )

8.6.4. El caso con condiciones de borde periódicas


Esta vez consideraremos la forma de aplicar el método tridiagonal para la
ecuación

A− 0 +
k φk−1 + Ak φk + Ak φk+1 = bk válida con 1 ≤ k ≤ N − 2 (8.6.24)

8.6. EL MÉTODO TRIDIAGONAL Facultad de Ciencias Fı́sicas y Matemáticas


173 Métodos Numéricos

y, debido a la periodicida, la ecuación anterior toma formas especiales en


dos puntos

A−
0 φN−1 +A00 φ0 +A+
0 φ1 = b0
− 0 + (8.6.25)
AN−1 φN−2 +AN−1 φN−1 +AN−1 φ0 = bN−1

lo que da un conjunto de N ecuaciones lineales para las N incógnitas


φ0 , φ1 , . . . , φN−1 .
El problema anterior corresponde a enfrentar un problema de la forma

M ~φ = ~b ⇐⇒ Mi j φ j = bi (8.6.26)

donde la matriz M es de N × N y tiene la forma


 0 
A0 A+ 0 0 .. 0 A−
0
 
 − 
 A
 1 A01 A+ 1 0 .. 0 

 
 
 0
 A− 2 A02 A+ 2 0 

M= 

 (8.6.27)
 0 0 0 
 
 
 
 0 .. 0 A− A0N−2 A+ 
 N−1 N−2 
 
A+N−1 0 .. 0 A− N−1 A0N−1

Los elementos de esta matriz los denotamos Mi j y tanto i como j varı́an


entre 0 y N − 1. La matriz M tiene no nulas las tres diaginales centrales y
dos elementos de vértice como se aprecia en (8.6.27).
La matriz M puede escribirse como una matriz tridiagonal A más valores
en los vértices:

Mi j = Ai j + A− +
0 δi0 δ j (N−1) + AN−1 δi (N−1) δ0 j (8.6.28)

Si se definen los vectores ~u = {a, 0, ..,0, b} y ~w = {c, 0, .., 0, d}, esto es ui =


aδi 0 + bδi (N−1) y w j = cδ j 0 + d δ j (N−1) , se obtiene que ui w j = acδi 0 δ0 j +
ad δi 0 δ(N−1) j + bcδi (N−1) δ0 j + bd δi (N−1) δ(N−1) j . Se necesita que ad = A−
0 y
+
que bc = AN−1 . La matriz M escrita en la forma (8.6.28), como una nue-
va matriz tridiagonal A más una matriz ~u ⊗ ~w cuyos únicos elementos no

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales parabólicas Patricio Cordero S.

nulos están en los cuatro vértices matricialmente se puede representar


por
M = A +~u ⊗~v
A+
N−1 A−
Escogiendo w0 = b y wN−1 = 0
a se obtiene
 
a +
b AN−1 0 0 .. 0 A−
0
 
 
 0 0 0 0 .. 0 
 
 
 
 0 0 0 0 0 
 
~u ⊗ ~w = 


 (8.6.29)
 0 0 0 
 
 
 
 0 .. 0 0 0 0 
 
 
b −
A+
N−1 0 .. 0 0 a AN−1

viéndose que ~u queda indeterminado.


Se verá que la respuesta al problema (8.6.26) se obtiene resolviendo dos
problemas tridiagonales estándar para vectores auxiliares ~η y ~ξ ,

A~η = ~b , A ~ξ = ~u (8.6.30)

y la solución es
~
~φ = ~η − ~w · η ~ξ (8.6.31)
1 + ~w · ~ξ
como se comprueba a continuación.
Primero se multiplica el lado derecho de (8.6.31) por la matriz A lo que da
wk ηk ui
bi − (8.6.32)
1 + wn ξn

y segundo, la acción de ~u ⊗ ~w sobre el lado derecho de (8.6.31) da

wk ηk w j η j + w j η j wn ξn − wk ηk w j ξ j
ui w j η j − ui w j ξ j = ui
1 + wn ξn 1 + wn ξn
w jη j
= ui (8.6.33)
1 + wn ξn

8.6. EL MÉTODO TRIDIAGONAL Facultad de Ciencias Fı́sicas y Matemáticas


175 Métodos Numéricos

Sumando (8.6.32) y (8.6.33) efectivamente se obtiene bi .

En resumen, para resolver el problema M ~φ =~b con M de la forma (8.6.27)


A+ A−
se definen ~u = {a, 0, .., 0, b} y ~w = { N−1
b , 0, ..,0, a } y deben primero resol-
0

verse dos problemas tridiagonales planteados en (8.6.30) siguiendo lo


aprendido en §8.6.2 para luego platear la solución del problema (8.6.26)
en la forma (8.6.31).
Desde el punto de vista analı́tico, la solución ~φ no depende de los valores
escogidos a y b, pero numéricamente se deben escoges con cuidado para
que la precisión sea óptima.

8.7. Un caso parabólico en 1+2 dimensiones


A continuación se comenta brevemente una forma de integrar una ecua-
ción parabólica en (t, x, y) de la forma
∂F
= −~u · ∇F + ν ∇2 F (8.7.1)
∂t
1
Paso 1: En un primer paso se calcula los F n+ 2 a partir de los F n plantean-
do un problema tridiagonal en el ı́ndice i, mientras que en j el método es
explı́cito.
n+ 21 n+ 1 n+ 1
Fi, j − Fi,nj Fi+1,2j − Fi−1,2j Fi,nj+1 − Fi,nj−1
ε = −u1 − u2
2 2h 2h
 
n+ 12 n+ 21 n+ 21
Fi+1, j − 2Fi, j + Fi−1, j Fi,nj+1 − 2Fi,nj + Fi,nj−1
+ν  +  (8.7.2)
h2 h2

1
Paso 2: En un segundo paso se calcula los F n+1 a partir de los F n+ 2
planteando un problema tridiagonal en el ı́ndice j, mientras que en i el
método es explı́cito.
n+ 21 n+ 1 n+ 1
Fi,n+1
j − Fi, j Fi+1,2j − Fi−1,2j Fi,n+1 n+1
j+1 − Fi, j−1
ε = −u1 − u2
2 2h 2h
 
n+ 1 n+ 1 n+ 1
Fi+1,2j − 2Fi, j 2 + Fi−1,2j Fi,n+1 n+1 n+1
j+1 − 2Fi, j + Fi, j−1
+ν  + (8.7.3)
h2 h2

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales parabólicas Patricio Cordero S.

Este método puede ser aplicado, por ejemplo, a las ecuaciones de fluidos
incompresibles vistas en el capı́tulo anterior. Serı́a especialmente sencillo
en el caso de un flujo con obstáculo, sin gravedad y paredes laterales
rı́gidas.

8.8. Dos métodos adicionales

8.8.1. Método de Richtmayer


Se estudia resolver ecuación
∂ U ∂ 2U m
= m entero mayor o igual a 2
∂t ∂ x2
Se hace la siguiente deducción del método (donde δ2 fue definido en
(7.4.9))
Ukn+1 −Ukn θ δ2 (U m )n+1
k + (1 − θ )δ2 (U m )nk
= (8.8.1)
ε h2
pero

∂U m n
(U m )n+1
k = (U m )nk + ε
∂t
 m kn  
m n ∂U ∂U n
= (U )k + ε
∂u k ∂t k
m n
n 
= (U )k + m U m−1 k Ukn+1 −Ukn (8.8.2)
que se reemplaza en (8.8.1) usando la notacion
∆k ≡ Ukn+1 −Ukn
lo que da
∆k 1 h n o i
= 2 θ δ2 Ukm,n + mUkm−1,n ∆k + (1 − θ )δ2Ukm,n
ε h
1 h n o i
= 2 mθ δ2 Ukm−1,n ∆k + δ2Ukm,n
h
1 h n m−1,n o
= 2 mθ Uk+1 m−1,n
∆k+1 − 2Ukm−1,n ∆k +Uk−1 m,n
∆k−1 +Uk+1
h
m,n 
−2Ukm,n +Uk−1

8.8. DOS MÉTODOS ADICIONALES Facultad de Ciencias Fı́sicas y Matemáticas


177 Métodos Numéricos

La última expresión convierte al problema en uno tridiagonal.

8.8.2. Método de Lees


El método de Lees (M.Lees, Math. Comp. 20 516 (1966)) aborda ecuacio-
nes parabólicas de la forma
 
∂U ∂ ∂U
b(U ) = a(U ) , a(U ) > 0 , b(U ) > 0
∂t ∂x ∂x
La derivada espacial se expresa en la forma
δ Ukn ≡ Uk+
n
1 −U
n
k− 1
2 2

La ecuación se discretiza
n+1
n Uk −Ukn−1 1 n n 1 n n n n
o
bk = δ {ak δ Uk } = 2 δ ak Uk+ 1 −Uk− 1
2ε h h 2 2
1 h n n
 i
= 2 ak+ 1 Uk+1 −Ukn − ank− 1 Ukn −Uk−1
n
(8.8.3)
h 2 2

Esta expresión es inestable si a = b = 1. Además, hasta aquı́, es explı́cito.


La estabilidad se resuelve si se hace los reemplazos que siguen, los que
convierten al problema en uno que ya no es explı́cito,
1 
Ukn′ → Ukn+1 ′ +Ukn′ +Ukn−1
′ donde k′ puede ser k′ = k + 1, k, k − 1
3
1 n  1 
ank+ 1 → ak+1 + ank ank− 1 → ank + ank−1
2 2 2 2
Con lo cual el problema es tridiagonal.

8.9. Ecuación de Schrödinger dependiente del


tiempo

8.9.1. Usando el método de Crank Nicolson


Se estudiará un método para integrar (8.2.4) con el método de Crank Ni-
colson. En el caso actual la ecuación de Schrödinger discretizada formal-

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales parabólicas Patricio Cordero S.

mente se plantea en la forma

ψ n+1 − ψ n i  
= − H ψ n+1 + H ψ n (8.9.1)
ε 2
que se puede reordenar en la forma
iε iε
ψ n+1 + H ψ n+1 = ψ n − H ψ n (8.9.2)
2 2
o bien
1 − i2ε H
ψ n+1 = iε
ψn (8.9.3)
1+ 2 H

Este método es bueno porque el operador que actua sobre ψ n tiene la


1−iz
forma F = 1+iz y |F| = 1, lo que sugiere que se preserva la norma de ψ en
su evolución temporal. También se observa que
1 − iz 2
= −1
1 + iz 1 + iz
y basado en esto se escribe
" #
2
ψ n+1 = iε
− 1 ψn = χ − ψn (8.9.4)
1+ 2 H

donde se ha definido,  

1+ H χ = 2 ψn (8.9.5)
2
Se quiere resolver (8.9.5), o más bien su versión discreta,
 
iε χk+1 − 2χk + χk−1
χk + − +Vk χk = 2ψkn
2 h2
que se reescribe como
 
2ih2 2 4h2 n
χk+1 + −2 + − h Vk χk + χk−1 = ψ (8.9.6)
ε −iε k
que es un problema tridiagonal y, por lo tanto, en principio ya se sabe
resolver. Una vez que se obtiene χ , se inserta en (8.9.4) y de ahı́ se sigue.
Se ha demostrado que este método es estable.

8.9. ECUACIÓN DE SCHRÖDINGER DEPENDIENTE DEL TIEMPO Facultad de Ciencias Fı́sicas y Matemáticas
179 Métodos Numéricos

8.9.2. El método explı́cito de Visscher


Este método apareció presentado en Computational Physics, 5 596 (1991).
La idea es separar a la función de onda en sus partes real e imaginaria,

ψ = ψR + i ψI

que lleva a escribir la ecuación de Schrödinger como un par de ecuaciones


reales,
ψ̇R = H ψI , ψ̇I = −H ψR (8.9.7)
que se discretizan evaluando a ψR en tiempos enteros ψRn y la parte ima-
ginaria en tiempos semienteros

n+ 12 n− 12
ψRn − ψRn−1 n− 1 ψI − ψI
= H ψI 2 , = −H ψRn (8.9.8)
ε ε
y se despeja

n− 12 n+ 12 n− 12
ψRn = ψRn−1 + ε H ψI , ψI = ψI − ε H ψRn (8.9.9)

Con estas ecuaciones se itera en forma explı́cita. Antes, claro, se debe


usar que
 
fk+1 − 2 fk + fk−1 fk+1 + fk−1 2
H f =− +Vk fk = − + Vk + 2 fk (8.9.10)
h2 h2 h

8.9.2.1. Conservación de la norma

Se verá que la norma de la función de onda se conserva en el tiempo. Para


ello primero se define la densidad de probabilidad en tiempos enteros y
semienteros,
 2
n+ 1 n− 1 n+ 12 n+ 12
P n
= (ψRn )2 + ψI 2 ψI 2 , P = ψRn+1 ψRn + ψI (8.9.11)

A continuación se calculará la diferencia entre es estas dos densidades y


finalmente se va a demostrar que al sumar sobre k (integrar sobre x) se

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales parabólicas Patricio Cordero S.

obtiene cero.
   2
n+ 12 n n n+ 12 n n+ 12
∆=P −P = ψR + ε H ψI ψR + ψI
 
n 2 n+ 12 n+ 12 n
− (ψR ) − ψI ψI + ε H ψR
 
n n+ 12 n+ 12 n
= ε ψR H ψI − ψI H ψR (8.9.12)

Al reemplazar H en la última expresión se obtiene que la contribución de


V se anula trivialmente. La contribución de −d 2 /dx2 es menos trivial. Se
escribe omitiendo los ı́ndices de tiempo que ya se sabe cuanto valen para
ψR y ψI ,
ε
∆=− (ψR k {ψI k+1 − 2ψI k + ψI k−1 } − ψI k {ψR k+1 − 2ψR k + ψR k−1 })
h2
de donde se observa que hay términos que por pares se cancelan, por
ejemplo
∑ ψR k ψI k+1 − ∑ ψI k ψR k−1 = 0
k k

Podrı́a haber contribución de términos de borde, pero en los bordes la


función de onda es Rnula. Habiéndose 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. Este es un gran mérito del método de Vissher.

8.9.2.2. Estabilidad

El análisis de estabilidad se hará en forma bastante limitada y a pesar de


ellos la experiencia muestra que da criterios que funcionan. Se comienza
replanteando las ecuaciones (8.9.9) en forma matricial,
    !
ψRn 1 εH ψRn−1
n−1/2 = n−1/2 ,
ψI 0 1 ψI
!   !
ψRn−1 1 0 ψRn−1
n−1/2 = n−3/2
ψI −ε H 1 ψI

8.9. ECUACIÓN DE SCHRÖDINGER DEPENDIENTE DEL TIEMPO Facultad de Ciencias Fı́sicas y Matemáticas
181 Métodos Numéricos

En los pasos que sigue se usa la abreviación A ≡ ε H y las dos ecuaciones


anteriores se pueden escribir como una sola,
    !
ψRn 1 − A2 A ψRn−1
n−1/2 = n−3/2
ψI −A 1 ψI

Esta ecuación tiene una estrutura del tipo ψ n = M ψ n−1 lo que implica que
ψ n = M n ψ 0 . Un método de iteración con esta estructura diverge si al me-
nos uno de los autovalores de M tiene módulo mayor que 1 y produce una
función nula si el mayor autovalor es menor que 1. Para que el método
funcione es necesario que los autovalores tengan módulo 1.
Los autovalores de la ecuación matriz de arriba son
A2 A p 2
λ± = 1 − ± A −4 (8.9.13)
2 2
• 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
A2 i A p
λ± = 1 − ± 4 − A2 (8.9.14)
2 2
y trivialmente se comprueba que |λ±| = 1 que es lo que se necesita para
la estabilidad. Ahora se verá las implicasiones que tiene esto sobre los
valores de ε y h.
Con este objetivo se usará un potencial esencialmente plano, Vk = V0 y
funciones de onda estacionarias planas,
ν kπ
ψν = Tν (t) ei N

La acción de H sobre ψν da
" ν (k+1) π ν kπ ν (k−1) π #
ei N − 2 ei N + ei N ν k π
H ψν = Tν − +V0 ei N
h2

El numerador del primer término se puede escribir,


 νπ νπ
 ν kπ  νπ  ν kπ
νπ 2
ei N − 2 + e−i N ei N = ei 2N − e−i 2N ei N
 ν π  ν kπ
= −4 sin2 ei N
2N

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales parabólicas Patricio Cordero S.

lo que muestra que los autovalores son


4 ν π 
Eν = 2 sin2 +V0
h 2N
por lo cual
4ε 2  ν π 
sin + ε V0
A=
h2 2N
Los valores extremos que toma A son ε V0 y ε V0 + 4h2ε lo que lleva a


−2 < ε V0 < 2 y también − 2 < ε V0 + <2
h2
Escogiendo las más exigentes se obtiene

−2 < ε V0 < 2 − (8.9.15)
h2

8.10. Método implı́cito


Se considerará en 0 ≤ x ≤ 1 la ecuación
∂φ ∂ 2φ
= 2 + S(x) , φ (t, 0) = a , φ (t, 1) = b , φ (0, x) = f (x) .
∂t ∂x
(8.10.1)
Sea Φ(x) una solución estática, es decir,

Φ′′ = −S(x) , Φ(0) = a , Φ(1) = b (8.10.2)

Si se define u(t, x) tal que φ (t, x) = Φ(x) + u(x,t) entonces se cumple que
u(t, 0) = u(t, 1) = 0 y el problema se reduce a

u̇ = u′′
u(t, 0) = 0 , u(t, 1) = 0 (8.10.3)

Usando el método de separación de variable este problema resulta trivial.


Si se hace la expansión

u(t, x) = ∑ ar eεr t sin(r π x) (8.10.4)
r=1

8.10. MÉTODO IMPLÍCITO Facultad de Ciencias Fı́sicas y Matemáticas


183 Métodos Numéricos

las ecuaciones de borde nulas en x = 0 y x = 1 implican

εr = − (π r)2 (8.10.5)

lo que asegura que todos los sumandos van a cero cuando t → ∞. Esto
muestra que en ecuaciones parabólicas del tipo (8.10.1) tienen solucio-
nes estáticas estables: las oscilaciones mueren como lo muestra (8.10.4).
Se hace notar que la suma en (8.10.4) comienza en r = 1 porque si hu-
biera una componente r = 0 ésta serı́a estática y la parte estática ya fue
considerada.
La ecuación (8.10.1) se discretiza ahora en la forma
n+1
φkn+1 − φkn φk+1 − 2φkn+1 + φk−1
n+1
= + Sk (8.10.6)
ε h2
que corresponde a escoger a = 2 en (8.6.4) y arroja

1 
φkn+1 = φkn + ε 2
n+1
φk+1 − 2φkn+1 + φk−1
n+1
+ε Sk (8.10.7)
|h {z }
−H ~φ

Estabilidad: La ecuación anterior se escribe en forma vectorial

~φ n+1 = ~φ n − ε H ~φ n+1 + ε ~S (8.10.8)

que formalmente es
 
~φ n+1 = (1 + ε H)−1 ~φ n + ε ~S (8.10.9)

2
Puesto que H es la versión discreta de − ∂∂x2 , sus autovalores Eν son po-
sitivos 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 método es estable.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferemciales parabólicas Patricio Cordero S.

Integración numérica: Para integrar el problema (8.10.7) se utiliza un


método tridiagonal semejante al descrito en sec.8.6.1 usando a = 2. La
ecuación discreta puede ser puesta en la forma estándar
n+1
−r φk+1 + (1 + 2r) φkn+1 − r φk−1
n+1
= φkn + ε Sk (8.10.10)

que tiene forma tridiagonal con coeficientes A que no dependen de k

A+ = −r A0 = 1 + 2r A− = −r bnk = φkn + ε Sk (8.10.11)

Las condiciones de borde e inicial son


φ0n = a , φN0 = b
(8.10.12)
φk0 = fk , con f0 = a , fN = b

Tal como en el caso de la ecuación de calor el problema se resuelve por


medio de
φkn+1 = αk φk+1
n+1
+ βkn (8.10.13)

Para comenzar, se sabe que αN−1 = 0 y se puede obtener todos los αk de


una sola vez. Y todos los β a partir de las α s y de βN−1 = b se obtiene to-
dos los β s. De estos dos conjuntos y la condición inicial para φ se obtiene
todos los φkn .

8.11. Problemas
8.1 Una esfera de radio R es sacada de un horno con distribución casi
uniforme, T (t = 0, r) = T0 , de temperatura y es colocada en un am-
biente que se mantiene a temperatura TA . La esfera se irá enfriando
en forma esféricamente simétrica de acuerdo a
∂T
= κ ∇2 T
  ∂t
∂T
= −µ (T (t, R) − TA)
∂r r=R

Para efectos de hacer compatible la condición de borde en r = R


con la condición inicial, suponga que en t = 0 la temperatura vale T0

8.11. PROBLEMAS Facultad de Ciencias Fı́sicas y Matemáticas


185 Métodos Numéricos

en todo el volumen excepto en la capa externa 0,95R ≤ r ≤ R donde


la temperatura, en t = 0, decrece linealmente desde el valor T0 en
r = 0,95R. Use que dT /dr|r=0 = 0.

1 Escriba la ecuación anterior, aun en forma continua, en la forma


de la ecuación parabólica que va a integrar numéricamente y
también escriba las condiciones de borde que va a utilizar para
tal ecuación (todo en lenguaje continuo).
2 Escriba todas las ecuaciones del algoritmo tridiagonal que va
utilizar, en particular, deje muy claro la forma en que va manejar
los bordes y la forma en que va a escoger α0 y β0 .
3 Use los siguientes valores: R = 100, T0 = 400, κ = 0,01, µ = 1,
TA = 20. Integre la evolución de T (t, r) escogiendo N = 5000,
dr = h = R/N y tres valores para dt = ε en torno a ε = 1. En-
trege un gráfico del perfil de temperatura inicial y el perfil de
T cada vez que en el centro de la esfera la temperatura tome
los valores 350, 300, 250, 200, 150 y 100. Indique el valor del
tiempo t para los que el centro toma tales valores. Compare los
resultados que se obtienen con los tres dt = ε escogidos. Si las
eleccciones han sido razonables debieran ser parecidos.

8.2 Integre la ecuación de Schrödinger adimensional


 
∂ψ ∂2
= −i − 2 +V (x) ψ
∂t ∂x

usando el algoritmo de Visscher. Tome como condición inicial


2
ψ (x, 0) = A e−µ (x−x0 ) eibx

con µ = 0,006, b = 0,333. El potencial es un pozo o una barrera cua-


drada de ancho 10 y magnitud 0,1, es decir, V (x) = ±0,1 en un rango
(x1 , x2 = x1 + 10).
Se recomienda reticular el espacio en 4000 segmentos que abar-
quen desde x = 0 hasta x = 2000, (h = 0,5), x1 = 1000 y el paquete
inicial está muy cerca de la zona con pontencial no nulo, por ejemplo,
x0 = 920. Para el incremento del tiempo parece ser bueno ε = 0,05
(discútalo).

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferenciales hiperbólicas Patricio Cordero S.

1/2
Para simplificar el problema puede aproximar ψI a la parte imagi-
naria de ψ (x, 0). Para evitar problemas lógicos no actualice los va-
lores de ψ en los extremos (piense que corresponden a x = ±∞) y
detenga el cálculo cuando el paquete llegue en forma significativa a
alguno de los extremos. Parece que esto es t ≈ 890.
R
Dibuje P(t) = |ψ |2 dx como función del tiempo y para algunos tiem-
pos tk interesantes dibuje ρk = |ψ (x,tk )|2 .
Resuelva tanto para V0 = 0,1 como para V0 = −0,1.

8.11. PROBLEMAS Facultad de Ciencias Fı́sicas y Matemáticas


Capı́tulo 9

Ecuaciones hiperbólicas

Las ecuaciones hiperbólicas requieren de métodos especiales


porque la información contenida en las condiciones iniciales y
las condiciones de borde normalmente no pueden alcanzar a
todo el dominio de integración. La influencia de tales condicio-
nes impuestas se propaga a lo largo de las llamadas curvas
caracterı́sticas y es difı́cil lograr un método de integración co-
rrecto sin tomar en cuenta esta limitación en la debida forma.
Es probable que sólo cuando las caracterı́sticas son lı́neas rec-
tas un programador inadvertido puede dar con una forma sa-
tisfactoria de integrar ecuaciones hiperbólicas. Para hacer fácil
comprender el papel jugado por las caracterı́sticas es conve-
niente comenzar estudiando un problema análogo que se pre-
senta con ecuaciones de primer orden [6].

9.1. El método de Lax-Wendroff para


ecuaciones hiperbólicas de primer orden

Una forma de integrar ecuaciones del tipo

∂t f = −∂x G( f ) (9.1.1)

187
Ecs. diferenciales hiperbólicas Patricio Cordero S.

se obtiene en lo que sigue. Se define


dG
A( f ) ≡
df
y se calcula
∂t2 f = −∂t ∂x G = −∂x (∂t G) = −∂x (A( f ) ∂t f ) = +∂x (A( f ) ∂x G) (9.1.2)

Por otro lado se tiene que


ε2 2
f (x,t + ε ) = f (x,t) + ε ∂t f +∂t f + O(ε 3)
2
ε2
= f (x,t) − ε∂xG + ∂x (A ∂x G) (9.1.3)
2
que se discretiza en la forma
Gnk+1 − Gnk Gnk −Gnk−1
Gnk+1 − Gnk−1 ε2 Ank+ 1 h − Ank− 1 h
fkn+1 = fkn − ε + 2 2
2h 2 h
que se simplifica al algoritmo de Lax-Wendroff
ε  ε2  n  
fkn+1
= n
fkn − n n n n n
G − Gk−1 + 2 Ak+ 1 Gk+1 − Gk − Ak− 1 Gk − Gk−1n
2h k+1 2h 2 2
(9.1.4)
En esta expresión se debe entender
 n 
n fk+1 + fkn
Ak+ 1 = A
2 2

El algoritmo (9.1.4) pertenece a la clase de algoritmos llamados conser-


vativos y que en forma genérica son de la forma
εh i
fkn+1 = fkn − H( fk+
n
j , . . ., f n
k− j+1 ) − H( f n
k+ j−1 , . . . , f n
k− j ) (9.1.5)
h
Esta clase de algoritmos son apropiados, por ejemplo, para describir on-
das de choque.
El esquema (9.1.4) tiene la forma genérica anterior con j = 1 y
 
G(a) − G(b) ε a+b
H(a, b) = − A [G(a) − G(b)]
2 2h 2

9.1. EL MÉTODO DE LAX-WENDROFF PARA Facultad de Ciencias Fı́sicas y Matemáticas


ECUACIONES HIPERBÓLICAS DE PRIMER ORDEN
189 Métodos Numéricos

Existe una generalización a dos pasos de lo anterior, es de la forma


predictor-corrector y tiene dos parámetros α y β . En el paso intermedio
se calcula una función ℓ
Paso 1: 
αε n
ℓk = (1 − β ) fkn + β fk+1
n
− Gk+1 − Gnk (9.1.6)
h
Paso 2:
n + [2β (1 − β ) − α (1 − 2α )] f n − β (α − β ) f n
(1 − β )(1 − α − β ) fk−1 k k+1
fkn+1 = 2

(α − β )ℓk − (1 − α − β )ℓk−1 ε
+ 2
− (Λk − Λk−1 ) (9.1.7)
2α 2α h
donde Λk = Gk (ℓ). Aunque en general este algoritmo puede dar problemas,
los autores (Lerat y Peyret, 1974, 1975) recomiendan escoger

5 1
α = 1+ , β=
2 2

9.1.1. Pequeña extensión del método de Lax-Wendroff


Se considera esta vez
∂t f = −g(t)∂x G( f ) (9.1.8)
se obtiene en lo que sigue. Se define
dG
A( f ) ≡ , ġ ≡ ∂t g
df
y se calcula
∂t2 f = −ġ∂x G − g ∂x ∂t G
= −ġ∂x G − g∂x (A ∂t f )
= −ġ∂x G + g2 ∂x (A( f ) ∂x G)

Por otro lado se tiene que


ε2 2
f (x,t + ε ) = f (x,t) + ε ∂t f + ∂ f + O(ε 3)
2 t
ε2  
= f (x,t) − ε g ∂x G + −ġA∂x f + g2 ∂x (A ∂x G) (9.1.9)
2
Universidad de Chile Escuela de Ingenierı́a y Ciencias
Ecs. diferenciales hiperbólicas Patricio Cordero S.

que se discretiza como antes usando


Gnk − Gnk−1
g ∂x G → gn
h
2
f n − fk−1
n n k1
ġA∂x f → {ġ} Ak
2h
Gnk+1 −Gnk Gnk −Gnk−1
Ank+ 1 h − Ank− 1 h
g2 ∂x (A ∂x G) → {g2 }n 2 2
h
El resto sigue igual.

9.2. Ecuaciones de primer orden y sus


curvas caracterı́sticas
Consideremos la ecuación
∂U ∂U
a +b =c (9.2.1)
∂x ∂y
donde a, b y c pueden ser funciones de (x, y,U ). Se va a ver que en cada
punto del dominio de solución pasa una curva C a lo largo de la cual hay
que resolver una ecuación diferencial ordinaria.
Se usará la notación,
∂U ∂U
p≡ q≡ (9.2.2)
∂x ∂y
Con esta notación la ecuación original es
a p+bq = c (9.2.3)

Un pequeño desplazamiento produce un cambio en el valor de U

dU = p dx + q dy
c−b q
pero de (9.2.3) se sabe que p = a lo que da
c−bq
dU = dx + q dy
a

9.2. ECUACIONES DE PRIMER ORDEN Y SUS Facultad de Ciencias Fı́sicas y Matemáticas


CURVAS CARACTERÍSTICAS
191 Métodos Numéricos

que se reordena como


q (a dy − b dx) + c dx − a dU = 0 (9.2.4)
La ecuación anterior es independiente de p = ∂∂Ux porque a, b y c solo
dependen de (x, y,U ). Además (9.2.4) se hace independiente de q si se
escoge que dx y dy no sean independientes, es decir, si se define que
el desplazamiento sea a lo largo de una curva C tal que su pendiente
satisfaga
a dy − b dx = 0 (9.2.5)
con lo que (9.2.4) se reduce a
c dx − a dU = 0 (9.2.6)
viéndose que (9.2.5) es una ecuación para C y (9.2.6) es una ecuación
para U sobre C. Ellas se pueden resumir, además de definir un elemento
de arco ds, planteando
dx dy dU
= = = ds (9.2.7)
a b c
De esta igualdad doble, la primera es la ecuación para la caracterı́stica
C mientras que la igualdad del último miembro con cualquiera de las pri-
meras es la ecuación para U sobre C. Planteada la ecuación de la carac-
terı́stica en la forma (9.2.5) pareciera que se debe obtener x(y) o bien y(x),
sin embargo puede ocurrir que ninguna de las dos formas pueda dar una
función univaluada. Es más general formular (9.2.5) como una ecuación
en términos del parámetro s ya mencionado,
dx dy
= a, =b (9.2.8)
ds ds
La ecuación para la función U sobre la caracterı́stica es
dU
=c (9.2.9)
ds
Lo anterior puede ser presentado planteando la ecuación original (9.2.1)
sobre una curva parametrizada por un parámetro s. Sobre la curva se
tiene que
dU dx ∂ U dy ∂ U
= + (9.2.10)
ds ds ∂ x ds ∂ y

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferenciales hiperbólicas Patricio Cordero S.

y se escoge que la curva sea tal que el lado izquierdo de (9.2.1) coincida
con dU /ds, es decir, se exige (9.2.8) y por lo tanto dU /ds = c. Un par de
ejemplos sencillos debieran ayudar a asimilar lo anterior.

9.3. El método de las caracterı́sticas

9.3.1. Ejemplos para ilustrar los conceptos básicos


9.3.1.1. Ejemplo muy sencillo

∂U ∂U
y + =2
∂x ∂y (9.3.1)
U (0 ≤ x ≤ 1, y = 0) = φ (x) condición de borde

En esta ecuación se tiene a = y, b = 1 y c = 2 por lo que las ecuaciones


paramétricas para las caracterı́sticas son

dx dy
= y(s) , =1 (9.3.2)
ds ds

Se resuelve la segunda escogien-


do y(0) = 0 lo que da y = s. La 2.5
2
primera ecuación se convierte en 1.5
dx/ds = s que da x(s) = s2 /2 + xR , 1
es decir x = 21 y2 + xR lo que permi- 0.5
te escribir la ecuación de las ca- 0
Y

-0.5
racterı́sticas, -1
-1.5
y2 = 2 x − 2 xR (9.3.3) -2
-2.5
0 0.5 1 1.5 2 2.5 3
estas son parábolas con el eje X X
como eje de simetrı́a parametriza-
Figura 9.1: Las caracterı́sticas asociadas a
das por xR , que es el punto sobre los extremos del dominio de las condiciones
el eje X por el que pasa la parábo- iniciales del problema.
la descrita en (9.3.3).

9.3. EL MÉTODO DE LAS CARACTERÍSTICAS Facultad de Ciencias Fı́sicas y Matemáticas


193 Métodos Numéricos

Para los propósitos del problema planteado se necesita solo las parábolas
para las que
0 ≤ xR ≤ 1
De (9.2.9) se desprende que dy = dU /2, que implica U = 2 y + UR , pero
como U (xR , 0) = φ (xR ) entonces UR = φ (xR ). De (9.3.3) formalmente se
despeja que xR = 21 (2 x − y2 ) lo que finalmente permite escribir
 
y2
U (x, y) = 2 y + φ x −
2

El término φ en la expresión anterior es constante a lo largo de cada ca-


ractarı́stica. Para verificar que esta solución es correcta se debe notar que
∂U ∂U
= φ′ = 2 −yφ′
∂x ∂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 función
U (x, y) en el dominio comprendido entre las dos parábolas [y2 = 2 x; y2 =
2 (x − 1)]. El método analı́tico debiera dejar claro que con la condición ini-
cial dada no es posible conocer a la función U fuera del dominio descrito.
Un método numérico ingenuo podrı́a intentar integrar la ecuación hacien-
do un reticulado rectangular regular con celdas de (hx × hy ) en el plano
(x, y), lo que llevarı́a a una solución incorrecta tan pronto el incremento hy
sobrepase el valor hx /y.

9.3.1.2. Ejemplo algo más elaborado

Se busca integrar la ecuación


∂U ∂U
+U = −U 2 con
∂x ∂y
2
U (x = 0, y > 0) = 1 + e−y U (x > 0, y = 0) = (9.3.4)
1+x
Las condiciones de borde coinciden en el origen. las ecuaciones para las
caracterı́sticas son
dx dy
= 1, =U (9.3.5)
ds ds

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferenciales hiperbólicas Patricio Cordero S.

y la ecuación para U sobre las caracterı́sticas es

dU
= −U 2 (9.3.6)
ds

La primera de las ecuaciones (9.3.5) permite escoger la parametrización


s = x. De (9.3.6) se obtiene inmediatamente que

1
U (x, y) = (9.3.7)
A(x, y) + x

y se debe determinar A(x, y), que es constante a lo largo de cada carac-


terı́stica, pero que depende de x e y.
La segunda de las ecuaciones (9.3.5), y (9.3.7) se obtiene que sobre la
caracterı́stica
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 (9.3.8)
A(x, y)
Si de aquı́ se despeja x da x = A(ey−yR − 1). Definiendo x0 ≡ x(y = 0) se
despeja yR = − ln((A + x0 )/A) que finalmente da

x = A(x, y) (ey − 1) + x0 ey (9.3.9)

Estas dos formas equivalentes que definen a las caracterı́sticas. La prime-


ra forma es útil para describir las caracterı́stica que nacen en (x = 0, yR )
y la segunda para las que nacen de (x0 , y = 0). Se comprobará que en el
primer caso se debe tomar A(0, yR ) = 1/(1 + e−yR ) y en el segundo caso
A(x0 , 0) = 1−x
2 .
0

A partir de la primera condición de borde: Se usa U = 1/(A + x) en


x = 0 junto a la condición de borde en x = 0, lo que permite deducir que A =
1/(1 + e−yR ), valor que se reemplaza en (9.3.8) para despejar formalmente
que

9.3. EL MÉTODO DE LAS CARACTERÍSTICAS Facultad de Ciencias Fı́sicas y Matemáticas


195 Métodos Numéricos

caracteristicas
4
ey − x
yR = ln 3.5
1+x 3
2.5
Esta expresión permite escribir A
2

y
como función de (x, y), lo que lle-
1.5
va a 1
0.5
1 + e−y 0
U (x, y) = 0 2 4 6 8 10
1+x x

En este caso las caracterı́sticas Figura 9.2: Aquı́ se dibujan caracterı́sticas


son parametrizadas por el punto pertenecientes a las dos familias del ejemplo.
yR > 0 del que nacen sobre el eje
Y y se definen por

ycarac = yR + ln 1 + (1 + e−yR ) x

A partir de la segunda condición de borde: Se usa U = 1/(A + x) en


y = 0 junto a la condición de borde en y = 0, lo que permite deducir que A =
(1 − x0 )/2, valor que se reemplaza en (9.3.9) para despejar formalmente
que
1 + 2x − ey
x0 =
1 + ey
Esta expresión permite escribir A como función de (x, y), lo que lleva a

1 + e−y
U (x, y) =
1+x

En este segundo caso las caracterı́sticas, parametrizadas por el punto x0


en que nacen sobre el eje X satisfacen
 
1 + 2x − x0
ycarac = ln
1 + x0

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferenciales hiperbólicas Patricio Cordero S.

9.3.2. Integración numérica a lo largo de una caracterı́sti-


ca
La integración numérica general debe si-
multáneamente encontrar la forma de la ca-
C
racterı́stica como la función U sobre ella.
Se supondrá que se conoce los valores de R
U sobre una curva Γ (que no puede ser una
caracterı́stica). Sea P un punto sobre Γ: P = P
(xP , yP ) ∈ Γ y sea C la caracterı́stica que pasa Γ
por P. Al punto P se le asocia s = 0.
Para integrar se escoge un paso h para el Figura 9.3: La curva Γ cor-
parámetro s. Las ecuaciones (9.2.8) y (9.2.9) ta a la caracterı́stica C en P =
al más bajo orden se pueden escribir (xP , yP ). Otro punto cercano so-
bre C es R = (xR , yR ).
(1) (1) (1)
xR − xP yR − yP UR −UP
= aP , = bP , = cP (9.3.10)
h h h
de las que se obtiene trivialmente las tres cantidades de orden 1,
(1) (1) (1) (1) (1) (1)
(xR , yR ,UR ). Estos tres valores permiten calcular valores (aR , bR , cR ).
A continuación las mismas ecuaciones se escriben
(ν +1) (ν ) (ν +1) (ν ) (ν +1) (ν )
xR − xP aP + aR yR − yP bP + bR
cP + cR UR −UP
= , = , =
h h 2 h 2 2
(9.3.11)
Las que se iteran desde ν = 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
caracterı́stica hasta un punto que corresponde a s = 2h. El procedimiento
es el mismo. De esta manera se logra obtener toda la caracterı́stica que
nace en P y todos los valores de U sobre esa caracterı́stica.

♠ Usando el método anterior integrar


√ ∂U ∂U
x +U = −U 2 con la condición de borde U (x > 0, 0) = 1
∂x ∂y

9.3. EL MÉTODO DE LAS CARACTERÍSTICAS Facultad de Ciencias Fı́sicas y Matemáticas


197 Métodos Numéricos

9.4. Sistema de ecuaciones hiperbólicas


de primer orden
~
Si se tiene el sistema de M ecuaciones para U(x,t),
~
∂U ~
∂U
+ A(x,t) ~ = ~F(x,t)
+ B(x,t) U (9.4.1)
∂t ∂x
este sistema es hiperbólico si la matriz A de M ×M es diagonalizable y sus
autovalores αk son reales. En general se supondrá que ellos son funciones
de (x,t) y que no dependen de U. ~
Para resolver este sistema se comienza escribiendo
~
∂U ∂U~
~ = dx
dU + dt
∂x ∂t
 
~
∂U ∂ ~
= dx ~
+ dt F − A U − BU ~
∂x ∂x
∂U~  
= (dx − dt A) + dt ~F − BU
~
∂x
En el primer paso se eliminó la derivada parcial con respecto al tiempo. A
continuación se encuentra la condición para que la derivada con respecto
a x también desaparezca. Se escribe A = P−1 Λ P, donde Λ es una matriz
diagonal (en la diagonal están los autovalores αk de A) y P es la matriz
para diagonalizar a A. Al multiplicar a la ecuación por P se obtiene
~
∂U  
~
PdU = (dx − dt Λ) P ~ ~
+ dt P F − BU (9.4.2)
∂x
que por componentes es un conjunto de M ecuaciones
M−1 M−1 ∂U j M−1 
∑ Pk j dU j = (dx − dt αk ) ∑ Pk j ∂ x + dt ∑ Pk j Fj − B jiUi
j=0 j=0 j=0

donde los ı́ndices j y k varı́as de 1 a M o de 0 a M − 1 según lo que se pre-


fiera. Por cada uno de los valores del ı́ndice k se define una caracterı́stica
Ck como la curva x(k) (t) que satisface la ecuación

dx(k)
= αk (x,t) (9.4.3)
dt

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferenciales hiperbólicas Patricio Cordero S.

A lo largo de Ck se satisface
!
M−1 M−1 M−1
∑ Pk j dU j = dt ∑ Pk j Fj − ∑ B jiUi (9.4.4)
j=0 j=0 i=0

Lo anterior se ilustra a continuación con un problema unidimensional de


fluidos.

9.4.1. Fluido compresible sencillo


Esta parte sigue de cerca el modelo planteado en la referencia [6]

Considérese las ecuaciones (7.3.1) y (7.3.2) para el caso en que sólo hay
velocidad hidronámica en la dirección x, los campos sólo dependen de
(x,t), se desprecia el término con viscosidad (η = 0), no hay gravedad
y la temperatura es uniforme y constante en el tiempo. En tal caso las
ecuaciones se reducen a
∂ ρ ∂ ρv
+ =0
∂t ∂x
(9.4.5)
∂v ∂v ∂p
ρ +ρ v =−
∂t ∂x ∂x
Adicionalmente se supondrá que vale la ecuación de estado p = A ρ γ , lo
que implica que ∂ p/∂ ρ = Aγρ γ −1 = γ p/ρ . Se define
dp γ p
c2 = = (9.4.6)
dρ ρ
que permite reescribir la segunda de las ecuaciones (9.4.5) en la forma
∂v ∂ v c2 ∂ ρ
+v + =0 (9.4.7)
∂t ∂x ρ ∂x
La cantidad c no es una constante; es la velocidad del sonido y depende
de la densidad.
El sistema de ecuaciones (9.4.5a) y (9.4.7) puede ser escrito como
  !  
∂ ρ v ρ ∂ ρ
+ c2 =0 (9.4.8)
∂t v ρ v ∂x v

9.4. SISTEMA DE ECUACIONES HIPERBÓLICAS Facultad de Ciencias Fı́sicas y Matemáticas


DE PRIMER ORDEN
199 Métodos Numéricos

Es fácil comprobar que los autovalores de la matriz son λ1 = v − c y λ2 =


v+c. Sin embargo, se reobtendrá este resultado avanzando por un camino
más explı́cito.
Para determinar curvas caracterı́sticas se escribe la variación de ambos
campos en la forma dF = Fx dx + Ft dt simultánamente haciendo el reem-
plazo Ft por lo que dan las ecuaciones dinámicas que se tiene más arriba:
 2

dv = vx dx − v vx + cρ ρx dt
(9.4.9)
d ρ = ρx dx − (vρx + ρ vx ) dt

De la segunda ecuación se obtiene que


d ρ + ρ vx dt
ρx =
dx − v dt
que se reemplaza en la primera, obteniéndose
h i
ρ (dx − v dt) dv = ρ (dx − v dt)2 − c2 dt 2 vx − c2 d ρ dt (9.4.10)

En el paso anterior se eliminó ρx . La última relación es independiente de


vx si se escoge que la integración se haga en curvas que satisfagan

(dx − v dt)2 = c2 dt 2

lo que se cumple en dos familias de curvas caracterı́sticas:


dx
= v+c curvas f (9.4.11)
dt
dx
= v−c curvas g (9.4.12)
dt
No se trata de dos curvas, sino de dos familias de curvas. Cada miembro
de estas dos familias se caracteriza por una constante de integración.
La evolución sobre estas caracterı́sticas reduce la ecuación (9.4.10) a la
forma

ρ (dx − v dt) dv = −c2 d ρ dt


ρ ((v ± c) dt − v dt) dv = −c2 d ρ dt
c d ρ ± ρ dv = 0 ± sobre curvas f /g (9.4.13)

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferenciales hiperbólicas Patricio Cordero S.

Las ecuaciones que hay que integrar numéricamente se pueden resumir


en
C+ : dx = (v + c) dt combinada con c d ρ + ρ dv = 0 (9.4.14)
C− : dx = (v − c) dt combinada con c d ρ − ρ dv = 0 (9.4.15)

Los diferenciales que aparecen en estas ecuaciones están definidos sobre


las caracterı́sticas. Por ejemplo, en (9.4.14), d ρ es la variación de la den-
sidad cuando hay un desplazamiento sobre la caracterı́stica f , en cambio
en (9.4.15) aparece el cambio de la densidad sobre la caracterı́stica g.
Ambos d ρ llevan el mismo nombre pero son objetos diferentes.
A continuación se define un método para integrar estas ecuaciones. Se
hará en dos etapas. En la primera etapa, ver la figura 9.4, se define las
ecuaciones
xR − xP = (vP + cP ) (tR − tP )
(9.4.16)
xR − xQ = (vQ − cQ ) (tR − tQ )
que permiten despejar xR y tR . Luego las
ecuaciones c d ρ ± ρ dv se discretizan,
cP (ρR − ρP ) + (vR − vP ) ρP = 0 dx=(v+c)dt
cQ (ρR − ρQ ) − (vR − vQ ) ρQ = 0 R
(9.4.17) dx=(v−c)dt
que permite despejar ρR y vR . De ρR se Q
obtiene cR . P Γ
Las cantidades recién obtenidas son
Figura 9.4: Las curvas PR y QR son
una primera aproximación a xR , tR , ρR curvas caracterı́sticas.
y vR . A continuación se puede escribir
una forma más precisa para los dos pa-
res de ecuaciones:
xn+1 1 n n n+1
R − xP = 2 (vP + vR + cP + cR ) (tR − tP ) (9.4.18)
xn+1 1 n n n+1
R − xQ = 2 (vQ + vR − cQ − cR ) (tR − tQ )
Se usa las primeras dos ecuaciones con n = 1 para obtener valores xR y
tR de segundo orden e inmediatamente se usa las otras dos, también con
n = 1:
(cP + cnR ) (ρRn+1 − ρP ) = −(vn+1 n
R − vP ) (ρP + ρR )
n n+1 n+1 n (9.4.19)
(cQ + cR ) (ρR − ρQ ) = (vR − vQ ) (ρQ + ρR )

9.4. SISTEMA DE ECUACIONES HIPERBÓLICAS Facultad de Ciencias Fı́sicas y Matemáticas


DE PRIMER ORDEN
201 Métodos Numéricos

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 escoge puntos
sobre estas curvas, que van a jugar los papeles de P y Q de más arriba.
La forma tı́pica de integrar
en este caso consiste en ob- k−1 k k+1
3
tener toda la secuencia de
“puntos R” a partir de puntos k−1 k k+1
2
consecutivos de Γ que jue-
1 0 k−1 k k+1 N
gan el papel de P y Q. La se-
cuencia de puntos R ası́ ob-
tenidos definen una curva Γ1 0
0 1 ... k+1 ... N
k
que será la nueva curva a
partir de la cual se cons- Figura 9.5: Las dos faimilias de caracterı́sticas de
truirá una curva Γ2 . este problema forman un reticulardo no regular.

La iteración de este problema es distinta al pasar de tiempos “pares” a


tiempos “impares” que al revés. En el primer caso las identificaciones
2ν ,t 2ν ) y R = (x2ν +1 ,t 2ν +1 ) mientras que en el
son P = (xk2ν ,tk2ν ), Q = (xk+1 k+1 k k
ν −1 2ν −1
segundo las identificaciones son P = (x2k−1 ,tk−1 ), Q = (xk2ν −1 ,tk2ν −1 ) y
R = (xk2ν ,tk2ν ).

Condiciones de borde. Suponiendo que en la malla de caractarı́sticas


se tiene un punto Q sobre una caracterı́stica g (crece hacia la izquierda)
y el próximo punto, R, está en el borde izquierdo. De (9.4.17) y (9.4.18)
las ecuaciones que fijan las condiciones de borde a la izquierda en una
primera iteración son

xR − xQ − (vQ − cQ ) (tR − tQ ) = 0
cQ (ρR − ρQ ) − (vR − vQ ) ρQ = 0 (9.4.20)

Por ejemplo, se puede presentar el caso que xR = 0 y que las condiciones


de borde del problema sean que la velocidad en el borde sea nula, vR = 0.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferenciales hiperbólicas Patricio Cordero S.

Se tiene dos ecuaciones y dos incógnitas: tR y ρR . Algo similar debe ser


planteado al lado derecho.

9.4.2. Fluido compresible con entalpı́a variable


Esta parte sigue de cerca el modelo planteado en la referencia [3]

Esta vez se considerará las ecuaciones


∂ρ ∂ρ ∂v
+v +ρ = 0 (9.4.21)
∂t ∂x ∂x
∂ ρ v ∂ ρ v2 ∂ p
+ + = f
∂t ∂x ∂x
donde f , reemplazando al término η ∇2~v, es una forma sencilla de repre-
sentar la resistencia del flujo. Si en la segunda ecuación se elimina ∂∂ρt ,
usando la primera, se obtiene la forma
 
∂v ∂v ∂p
ρ +v + =f (9.4.22)
∂t ∂x ∂x

y la ecuación para la entalpı́a H,


   
∂H ∂H 1 ∂p ∂p
ρ +v − +v =Q (9.4.23)
∂t ∂x J ∂t ∂x

donde Q es la tasa de generación de calor y J es una constante que hace


calzar las unidades. Puesto que

∂H ∂H ∂ρ ∂H ∂ p
= +
∂t ∂ρ ∂t ∂ p ∂t
∂H ∂H ∂ρ ∂H ∂ p
= +
∂x ∂ρ ∂x ∂ p ∂x
se puede reescribir (9.4.23) en la forma
     
∂H ∂ρ ∂H ∂ p ∂H ∂ρ ∂H ∂ p 1 ∂p ∂p
ρ + + ρv + − +v =Q
∂ρ ∂t ∂ p ∂t ∂ρ ∂x ∂ p ∂x J ∂t ∂x
(9.4.24)

9.4. SISTEMA DE ECUACIONES HIPERBÓLICAS Facultad de Ciencias Fı́sicas y Matemáticas


DE PRIMER ORDEN
203 Métodos Numéricos

el cuadrado de la velocidad del sonido es


∂ H/∂ ρ
c2 = − (9.4.25)
∂ H/∂ p − 1/(ρ J)
lo que permite obtener
∂p ∂v ∂p c2 Q
+ ρ c2 + v =− (9.4.26)
∂t ∂x ∂x ρ∂ H ∂ ρ

Si ahora en (9.4.23) se elimina ∂∂ pt usando la ecuación recién escrita, se


obtiene
∂H ∂ H c2 ∂ v Q c2 Q
+v + = − (9.4.27)
∂t ∂x J ∂ x ρ ρ 2J ∂ H
∂ρ

Las ecuaciones (9.4.22), (9.4.26) y (9.4.27) se pueden resumir en la forma


       
v v 1/ρ 0 v f /ρ
∂    ∂ 
p + ρc 2 v 0  p = −c2 Q/(ρ∂ H/∂ ρ ) 
∂t ∂x
H c2 /J 0 v H 2 2
Q/ρ − c Q/(J ρ ∂ H/∂ ρ )
(9.4.28)
La matriz A en este caso tiene autovalores
α1 = v + c , α2 = v − c , α3 = v
Si se define
   
1 −1/ρ c 0 1/2 0 J
P= 0 c −ρ Jc  ⇐⇒ P−1 =  −ρ c/2 0 ρ Jc 
1/2J 1/(2ρ Jc) 0 −c/(2J) 1/(ρ Jc) c
(9.4.29)
se obtiene que PAP−1 =diag{v − c, v, v + c}.
En base a estos resultados se puede llegar a las siguientes ecuaciones
que deben ser integradas a lo largo de las respectivas caracterı́sticas.

Ecuaciones para las caracterı́sticas y las cantidades v, p, H .

Caracterı́stica C+ :
dx
= v+c (9.4.30)
dt
dv d p Qc2
ρc + = cf− (9.4.31)
dt dt ρ∂ H/∂ ρ

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferenciales hiperbólicas Patricio Cordero S.

Caracterı́stica C− :
dx
= v−c (9.4.32)
dt
dv d p Qc2
−ρ c + = −c f − (9.4.33)
dt dt ρ∂ H/∂ ρ

En ambos casos las derivadas son sobre la respectiva caracterı́sticas.


Estas dos caracterı́sticas se denominan sónicas.

Caracterı́stica C3 o caracterı́stica material:

dx
= v (9.4.34)
dt
dH 1 d p
ρ − = Q (9.4.35)
dt J dt

Método explı́cito parcialmente basado en las caracterı́sticas .

Un método basado en la integranción a lo largo de las caracterı́sticas, tal


como se hizo en §9.4.1 serı́a mucho más satisfactorio.
Este método calcula pn+1 , vn+1 y H n+1
a partir de pn , vn y H n . En lo que sigue
h = xk+1 − xk = xk − xk−1 y los intervalos n+1
temporales valen ε . Se usa además que
xk − xA n xA − xk−1 n
pA = pk−1 + pk
h h n
xk − xA n xA − xk−1 n
vA = vk−1 + vk k−1 A k B k+1
h h
xk+1 − xB n xB − xk n
pB = pk + pk+1
h h Figura 9.6: Los puntos A y B son
xk+1 − xB n xB − xk n
vB = vk + vk+1 las intersecciones de las caracterı́sti-
h h cas C+ y C− que pasan por el punto
(n + 1, k) con el eje n.
Se plantean las ecuaciones

pn+1
k − pA vn+1 − vA Qc2
+ hρ ci+ k = R+ ≡ c f −
ε ε ρ∂ H/∂ ρ

9.4. SISTEMA DE ECUACIONES HIPERBÓLICAS Facultad de Ciencias Fı́sicas y Matemáticas


DE PRIMER ORDEN
205 Métodos Numéricos

∂ pn+1
k − pB ∂ vn+1 − vB Qc2
− hρ ci− k = R− ≡ −c f −
∂ε ∂ε ρ∂ H/∂ ρ
donde debe entenderse que hρ ci± es los promedios sobre las caracterı́sti-
cas C± . De lo anterior se obtiene

pn+1
k + hρ ci+ vn+1
k = ε R+ + pA + hρ ci+ vA (9.4.36)
pn+1
k − hρ ci− vn+1
k = ε R− + pB − hρ ci− vB (9.4.37)

Los factores que aparacen en los dos lados derechos se conocen, de


modo que estas dos ecuaciones permiten obtener pn+1
k y vn+1
k .
Estas ecuaciones pueden no ser válidas en
los bordes que, tı́picamente, corresponden a n+1
k = 0 y k = N.
Para determinar la entalpı́a se usa (9.4.35)
en la forma n
D D
Hkn+1 − HD 1 pn+1
k − pD <v> > 0 <v> < 0
hρ im − = hQim
ε J ε Figura 9.7: La caracterı́stica
donde HD es el valor de H en el punto D que material define un punto D que
está a la izquierda o derecha
es la intersección de C3 con el eje n y se cum-
según el signo de promedio hvim
ple que de v en C3 .

xD > xk ⇔ hvim < 0


xD < xk ⇔ hvim > 0

como muestra la figura 9.7 donde HD se define por medio de



 hvim εh Hk−1n + (1 − hvi ε ) H n
mh k con hvim > 0
HD = (9.4.38)

| hvim | εh Hk+1
n + (1 − | hvi | ε ) H n
m h k con hvim < 0

y expresiones similares para pD . Pero pn+1


k ya se conoce, de modo que
 
n+1 1 1 n+1 
Hk = ε hQim + pk − pD + HD (9.4.39)
hρ im J

Conociendo Hkn+1 y pn+1


k , se usa la ecuación de estado para determina la
densidad ρ y otras propiedades que pudieran interesar.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferenciales hiperbólicas Patricio Cordero S.

9.5. Ecuaciones de segundo orden cuasilinea-


les
Se considerará la ecuación

∂ 2U ∂ 2U ∂ 2U
a + b + c +e = 0 (9.5.1)
∂ t2 ∂t ∂x ∂ x2

donde los coeficientes a, b, c, e son, en general, función de t, x , U , ∂t U y


∂xU .
Se usará la notación

∂U ∂U
p= , q= ,
∂t ∂x
(9.5.2)
∂ 2U ∂ 2U ∂ 2U
R= 2 , W = , S = .
∂t ∂ x2 ∂t ∂x

Tal como en el caso de las ecuaciones de primer orden, se busca las li-
neas caracterı́sticas en el plano (x,t), parametrizadas por un parámetro s,
a lo largo de las cuales la ecuación diferencial se transforma en la expre-
sión de la diferencial dU cuando varı́a s, es decir, dU = p dt + q dx donde
dt y dx son las variaciones a lo largo de las caracterı́sticas.
La notación anterior permite que la ecuación original se escriba

a R + b S + cW + e = 0 (9.5.3)

A continuación se manipulará para que desaparezcan las segundas deri-


vadas, lo que conduce a la definición de las caracterı́sticas.
Como se ha dicho, la ecuación original anterior será convertida en ecua-
ciones para curvas caracterı́sticas f y g y una forma diferencial para U
sobre las caracterı́sticas. Las curvas caracterı́sticas quedarán definidas
por funciones (x f (s),t f (s)) y (xg (s),tg(s)) de un parámetro s. Usando un
punto para indicar derivada con respecto al parámetro s, se puede escribir

ṗ = R t˙ + S ẋ
(9.5.4)
q̇ = S t˙ +W ẋ

9.5. ECUACIONES DE SEGUNDO ORDEN CUASILINEALES Facultad de Ciencias Fı́sicas y Matemáticas


207 Métodos Numéricos

de donde se despeja
ṗ − Sẋ
R=
t˙ (9.5.5)
q̇ − St˙
W=

que permite reescribir (9.5.3) en la forma
ṗ − Sẋ q̇ − St˙
a +bS +c +e = 0
t˙ ẋ
que reordenada y multiplicada por ẋ da
 2 !
ẋ ẋ ẋ
−t˙ S a − b + c + a ṗ + c q̇ + e ẋ = 0
t˙ t˙ t˙

La ecuación anterior ya no depende ni de R ni de W . El próximo paso es


lograr que tampoco dependa de S. El cuociente ẋt˙ será llamado X (s) y, para
que la ecuación no dependa de S se exige que el paréntesis grande sea
nulo:
aX2 − bX + c = 0 (9.5.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
g = (9.5.7)
2a
Esto quiere decir que (9.5.3) permite dos direcciones en cada punto (t, x)—
definidas por X = dx
dt —que resuelven (9.5.6). A lo largo de tales curvas d p
y dq satisfacen,
a X d p + c dq + e dx = 0 (9.5.8)
Las direcciones que emergen de (9.5.6) se llaman direcciones caracterı́sti-
cas y las ecuaciones de tipo (9.5.1) son clasificables de acuerdo al tipo de
soluciones que emergen de (9.5.6), lo que se decide con el signo/valor de

b2 − 4 a c (9.5.9)

como lo resume la tabla que sigue:

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferenciales hiperbólicas Patricio Cordero S.

tipo de ecuación raı́ces signo

hiperbólica reales y diferentes b2 − 4ac > 0


parabólica reales e iguales b2 − 4ac = 0
elı́ptica complejas b2 − 4ac < 0
Una ecuación puede ser de distinta naturaleza en
distintas zonas del espacio (t, x), como por ejemplo t

xUtt + t Utx + xUxx = F(t, x,U,Ut ,Ux ) (9.5.10) Hiper

En este caso a = x, b = t, c = x y la naturaleza de esta Elip Elip


x
ecuación es hiperbólica, parabólica o elı́ptica según Hiper
si b2 −4ac = t 2 −4 x2 es positivo, nulo o negativo como
lo señala la figura 9.8. En la figura se ve los dominios
donde es hiperbólica y elı́ptica. En las fronteras la
Figura 9.8: La
ecuación es parabólica. ecuación (9.5.10) es
hiperbólica, parabólica
o elı́ptica dependiendo
de la zona del plano
9.6. Ecuaciones hiperbólicas (x,t) que se considere.

9.6.1. Planteamiento del problema


En el caso hiperbólico pasan dos caracterı́sticas diferentes por cada pun-
to. Ellas tienen pendientes
dx dx
= f, =g (9.6.1)
dt dt
que se denominarán las f-caracterı́sticas y las g-caracterı́sticas.
Por lo anterior, la ecuación
∂ 2U ∂ 2U ∂ 2U
a + b + c +e = 0 (9.6.2)
∂ t2 ∂t ∂x ∂ x2
con coeficientes a, b, c y e que son funciones conocidas de (t, x,U, p, q), tie-
ne caracterı́sticas cuyas pendientes se obtienen resolviendo la ecuación
algebraica
 2
dx dx
a −b +c = 0 (9.6.3)
dt dt

9.6. ECUACIONES HIPERBÓLICAS Facultad de Ciencias Fı́sicas y Matemáticas


209 Métodos Numéricos

Las raı́ces se denominan f y g.


A lo largo de las caracterı́sticas los diferenciales d p y dq están relaciona-
dos por
d p dx dq dx
a +c +e =0
dt dt dt dt
que se puede escribir
dx
a d p + c dq + e dx = 0
dt
que toma dos formas, según de qué caracterı́stica se trate,

a f d p + c dq + e dx = 0
(9.6.4)
a g d p + c dq + e dx = 0

En las dos relaciones anteriores los diferenciales, a pesar de tener el mis-


mo nombre tienen valores distintos; d p, dq y dx en la cada una de estas
ecuaciones representan las variacion de p, q y x en la caracterı́stica co-
rrespondiente, f en la primera y g en la segunda.
Finalmente se usa además

dU = p dt + q dx (9.6.5)

que puede evaluarse a lo largo de cualquiera de las dos caracterı́sticas.

9.6.2. Integración explı́cita


Existe una variedad de problemas para los cuales las caracterı́sticas son
integrables en forma explı́cita antes de iniciar el método numérico. En lo
que sigue se describe el caso en que las caracterı́sticas se van obteniendo
numéricamente punto a punto.
Sea Γ una curva que no es una caracterı́stica 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.
El primer paso consiste en resolver (9.5.6)

aP f 2 − bP f + cP = 0
(9.6.6)
aQ g2 − bQ g + cQ = 0

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferenciales hiperbólicas Patricio Cordero S.

para escoger un valor para fP y otro para gQ consistentes para que exista
un punto cercano R donde se corta la f-caracterı́stica que pasa por P con
la g-caracterı́stica que pasa por Q.
En una primera aproximación se toman los
arcos PR y QR como rectas con pendien-
tes fP y gQ por lo que se puede escribir
R
(1) (1)
xR − xP = fP (tR − tP )
(9.6.7) f g
(1)
xR − xQ = gQ (tR − tQ )
(1) Γ
P Q
De estas dos ecuaciones se obtiene valo- Figura 9.9: Naturalmente en las
(1) (1)
res aproximados para (tR , xR ). ecuaciones hiperbólicas de segun-
A las ecuaciones (9.6.4) se les puede dar do orden existen dos familias de ca-
racterı́sticas.
la forma aproximada
(1) (1) (1)
aP fP (pR − pP ) + cP (qR − qP ) + eP (xR − xP ) = 0
(1) (1) (1) (9.6.8)
aQ gQ (pR − pQ ) + cQ (qR − qQ ) + eQ (xR − xQ ) = 0

(1) (1)
que dan primeras expresiones (pR , qR ).
La ecuación para determinar U

∂U ∂U
dU = dt + dx = p dt + q dx
∂t ∂x
en forma aproximada es

(1) 1h (1) (1) (1) (1)


i
uR − uP = (pP + pR ) (tR − tP ) + (qR + qP ) (xR − xP ) (9.6.9)
2
(1)
que determina un valor para uR . También se podrı́a usar la otra carac-
(1)
terı́stica para aproximarse al valor de uR , o ambas y luego utilizar el pro-
medio.
De esta manera se obtiene
  primeros valores para las cinco cantidades
(1) (1) (1) (1) (1)
tR , xR , pR , qR , uR .
 
(1) (1) (1) (1)
Con estos valores se determinan aR , bR , cR , eR .

9.6. ECUACIONES HIPERBÓLICAS Facultad de Ciencias Fı́sicas y Matemáticas


211 Métodos Numéricos

A partir de todo lo anterior se define un método iterativo para mejorar los


valores en R. Este método iterativo permite obtener valores X (n+1) a partir
de valores X (n) . Se ingresa al ciclo iterativo 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) .

1. Se usa el conocimiento de la iteración n para resolver la ecuación


(n) (n) (n)
aR X 2 − bR X + cR = 0 (9.6.10)
(n) (n)
cuyas raices son fR y gR .

2. Se reemplaza (9.6.7) por


(n) (n)
(n+1) fP + fR (n+1) (n+1) gQ + gR (n+1)
xR −xP = (tR −tP ) xR −xQ = (tR −tQ )
2 2
(9.6.11)
(n+1) (n+1)
para obtener (tR , xR ).
3. Se reemplaza (9.6.8) por
(n) (n) (n)
aP + aR fP + fR (n+1) cP + cR (n+1)
(pR − pP ) + (qR − qP )
2 2 2
(n)
eP + eR (n+1)
+ (xR − xP ) = 0
2
(9.6.12)
(n) (n) (n)
aQ + aR gQ + gR (n+1) cQ + cR (n+1)
(pR − pQ ) + (qR − qQ )
2 2 2
(n)
eQ + eR (n+1)
+ (xR − xQ ) = 0
2
(n+1) (n+1)
para obtener (pR , qR ).

4. Hecho todo lo anterior se usa (9.6.9) en la forma


(n+1) (n+1)
(n+1) pP + pR (n+1) qR + qP (n+1)
uR − uP = (tR − tP ) + (xR − xP )
2 2
(9.6.13)
(n+1)
para tener uR .

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Ecs. diferenciales hiperbólicas Patricio Cordero S.

5. Habiéndose obtenido en primera aproximación las cantidades: tR ,


xR , pR , qR y uR se calculan, en esta aproximación, los coeficientes
(n+1) (n+1) (n+1) (n+1)
aR , bR , cR , eR .

Los pasos recién descritos se repiten hasta tener convergencia para las
cinco cantidades que se quiere evaluar en el punto R. Si P, Q y R están
suficientemente cerca se requiere de pocas iteraciones para que las in-
teraciones anteriores converjan.
Recorriendo la curva Γ con pares cercanos (P, Q), se obtiene una nueva
curva—esto es, nuevos puntos (x,t) )—cercana a Γ sobre la cual se de-
termina la función y sus derivadas. Esta nueva curva se usa para seguir
avanzando.

9.7. Condiciones de borde

xizq

Figura 9.10: En el texto se analiza la forma como se determina las cantidades asociadas
a un punto R en el borde izquiero cuando se tiene toda la información en un punto Q sobre
la misma caracterı́stica.

En lo que sigue, se analiza la forma de determinar los valores en los pun-


tos R en el borde izquierdo a partir de los valores que ya se han determi-
nado en puntos Q como lo ilustra la figura 9.10.

(a) Si la condición U (x,t) en x = xizq es rı́gida entonces es dato


UR = U (xizq ,t) que implica conocer pR = p(xizq ,t) (9.7.14)

9.7. CONDICIONES DE BORDE Facultad de Ciencias Fı́sicas y Matemáticas


213 Métodos Numéricos

(b) Si la condición U (x,t) en x = xizq es derivativa entonces es dato


 
′ ∂ U (x,t)
UR= = qR (9.7.15)
∂x x=xizq

De modo que según si la condición de borde a la izquierda es rı́gida o


derivativa se conoce pR o qR .
Puesto que se conoce todo en el punto Q de la figura 9.10, se determina
que q
bQ − b2Q − 4aQ cQ
gQ =
2aQ
que se usa en la forma discreta de dx = g dt,
xizq − xQ = gG (tR − tQ ) (9.7.16)
para determinar tR . Seguı́damente se una la forma discreta de a g d p +
c dq + e dx,
aQ gQ (pR − pQ ) + cQ (qR − qQ ) + eQ (xizq − xQ ) (9.7.17)
En esta expresión se conocen todos los factores excepto por uno. Si la
condición de borde a la izquierda es rı́gida se conoce pR y (9.7.17) permite
determinar qR . Si condición de borde a la izquierda es derivativa se conoce
qR y (9.7.17) determina pR .
Finalmente de (9.6.9) se tiene que
1 
UR = UQ + (pR + pQ )(tR − tQ ) + (qR + qQ )(xizq − xQ )
2
Todos los factores que hay en el lado derecho ya han sido determinados
de modo que se ha integrado correctamente desde Q hasta R.
Un razonamiento similar se puede usar para tratar las condiciones de bor-
de al lado derecho.

9.8. Problemas
9.1 Integre el problema de un fluido compresible unidimensional sin vis-
cosidad que obedece las ecuaciones
∂ρ ∂ρ v
+ = 0
∂t ∂x
Universidad de Chile Escuela de Ingenierı́a y Ciencias
Ecs. diferenciales hiperbólicas Patricio Cordero S.

∂v ∂v ∂p
ρ +ρ v = − (9.8.1)
∂t ∂x ∂x
y ecuación de estado p = A ρ γ . Considere 0 ≤ x ≤ 1, condiciones de
borde v(0,t) = 0 y v(1,t) = 0 y condición inicial ρ (x, 0) = 1 en todo el
domino excepto que en el intervalo 0 ≤ x ≤ 0,1 vale
ρ (x, 0) = 1 + 0,1 cos(10 π 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 barridos de 0 ≤ x ≤ 1) para tener un visión de la evolución
del sistema. Itere su sistema al menos unas 25 mil veces.
Una de las muchas formas de mostrar lo que ha obtenido puede ser,
por ejemplo, mostrar la evolución de la densidad usando gnuplot con
las instrucciones

set nokey
set nosurface
set contour base
set view 0, 0, 1, 1
splot "mis.datos" u 2:1:3 w d

En el caso de la evolución de v(x,t) también interesa ver el signo.


9.2 Integre la ecuación
∂ 2U ∂ 2U ∂U
2
− 2 +α =0
∂t ∂x ∂t
usando el método de las caracterı́sticas en el intervalo 0 ≤ x ≤ 1
con las condiciones de borde U (0,t) = 2 sin ω t, U (1,t) = 0, y con las
condiciones iniciales U (x, 0) = 0 y ∂ U (x, 0)/∂ t = 0. Estudie los casos
con ω = 14π y ω = 15π , y α = 2,0 y α = 8,0.

a) Dibuje U (x,t = fijo) para diversos valores k de iteraciones: para


k = 5000, 10500 x 13400. (Para k = 5000 la función U debiera ser cero
sobre la mitad del intervalo).

9.8. PROBLEMAS Facultad de Ciencias Fı́sicas y Matemáticas


215 Métodos Numéricos

b) Grafique U (x = 71 ,t) y U (x = 12 ,t) desde t = 0 hasta un tiempo sufi-


cientemente largo para que se vea que el sistema ha alcanzado un
estado de régimen.
c) Una vez en el estado de régimen dibuje U (x,t0) para un instante
t0 para el cual U (0,t0) = 2,0
La ecuación planteada es la que satisfacen las componentes del
campo eléctrico y magnético cuando se propaga una onda electro-
magnética en un medio algo conductor. El coeficiente α es propor-
cional a la conductividad del medio. La condición de borde en x = 0
puede pensarse como la que impone una onda que llega desde el
vacı́o al medio conductor que comienza en x = 0. La condición de
borde en x = 1 corresponde a la presencia de un conductor perfecto
de ahı́ en adelante. Ese borde actua como un espejo.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Transformada rápida de Fourier (FFT) Patricio Cordero S.

9.8. PROBLEMAS Facultad de Ciencias Fı́sicas y Matemáticas


Capı́tulo 10

Transformada rápida de Fourier

Este capı́tulo sigue de cerca la primera parte del correspon-


diente capı́tulo de [5]

10.1. La transformada continua

10.1.1. La delta de Dirac

La noción de la “función” δ juega un papel especial en este capı́tulo. Ella


se define como
Z ∞ Z ∞
2π i f t
δ( f) = e dt y δ (t) = e−2π i f t d f (10.1.1)
−∞ −∞

donde δ (y 6= 0) = 0 y
Z ∞
δ (x) h(x) dx = h(0) (10.1.2)
−∞

para cualquier función h(x) continua en x = 0.

217
Transformada rápida de Fourier (FFT) Patricio Cordero S.

10.1.2. Relación entre una función y su transformada

Si g(t) es una función continua y G( f ) es su transformada continua de


Fourier se satisface
Z ∞ Z ∞
G( f ) = g(t) e2π i f t dt ⇐⇒ g(t) = G( f ) e−2π i f t d f (10.1.3)
−∞ −∞

Nótese que en este formalismo se considera valores tanto positivos como


negativos para la variable de frecuencia f .

10.1.3. Convolución y correlación

La convolución de las funciones g1 (t) y g2 (t) como la función de t denotada


g1 ◦ g2 (t) se define por
Z ∞
g1 ◦ g2 (t) ≡ g1 (τ ) g2 (t − τ ) d τ (10.1.4)
−∞

Nótese que g1 ◦ g2 (t) = g2 ◦ g1 (t) y la transformación de Fourier asociada


es el simple producto
G1 ( f ) G2 ( f )

A esta propiedad se la llama teorema de la convolución.


La correlación entre dos funciones g1 y g2 , que se denota Corr(g1, g2 ) , es
una función de t que se define por
Z ∞
Corr(g1 , g2 ) = g1 (t + τ )g2 (τ ) d τ (10.1.5)
−∞

Nótese que la transformada de Corr(g1, g2 ) es

G1 ( f )G2 (− f )

que—si G2 (t) es real—da G1 ( f )G∗2 ( f ) (teorema de la correlación).


Si g(t) es real entonces la transformada de su autocorrelación es |G( f )|2.

10.1. LA TRANSFORMADA CONTINUA Facultad de Ciencias Fı́sicas y Matemáticas


219 Métodos Numéricos

10.1.4. Potencia
La potencia total está dada (teorema de Parseval)
Z ∞ Z ∞
2
potencia total = |g(t)| dt = |G( f )|2 d f (10.1.6)
−∞ −∞

También se define la densidad espectral unilateral de potencia


Pg ( f ) = |G( f )|2 + |G(− f )|2 , 0≤ f ≤∞ (10.1.7)
de modo que la potencia total es
Z ∞
Ptot = Pg ( f ) d f
0
Nótese que
si g(t) es real entonces Pg ( f ) = 2|G( f )|2 (10.1.8)

10.2. Transformada de Fourier en dominio fini-


to
Considérese el espacio de funciones h(x), definidas en 0 ≤ x ≤ L y las
funciones base
1
en (x) = √ e2π inx/L , donde n = 0, 1, 2 . . . (10.2.1)
L
Estas funciones satisfacen
Z L
en (x) e∗m (x) dx = δn m (10.2.2)
0
de modo que es posible escribir h(x) en términos de las funciones base
en (x)

h(x) = ∑ Hnen (x) (10.2.3)
n=0
y a la inversa Z L
Hn = h(x) e∗n (x) dx (10.2.4)
0
Se puede llamar transformada de Fourier directa a (10.2.4), mientras que
(10.2.3) es la transformada inversa.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Transformada rápida de Fourier (FFT) Patricio Cordero S.

10.3. Transformada de Fourier discreta


En lugar de considerar la función continua g(t) con −∞ < t < ∞ se utili-
zará una muestra discreta de datos gk ,

gk = g(∆ k) , k = 0, ±1, ±2, ±3, ... (10.3.1)

y a ∆ se la denomina la tasa de muestreo.


Asociada a ∆ se tiene la frecuencia crı́tica de Nyquist,

1
fc ≡ (10.3.2)
2∆

Se habla del análisis estadı́stico de señales para referirse, en el contexto


actual, al espectro de una serie temporal o señal es una función positiva
de una variable de frecuencia asociada a un proceso estocástico estacio-
nario, o una función dada del tiempo que tiene dimensiones de potencia
por hertz, o energı́a por hertz. Intuitivamente el espectro descompone a
la función temporal en componentes asociadas a las distintas frecuencias
presentes en el proceso y ası́ ayuda a identificar periodicidades escondi-
das. Suelde decirse espectro de potencia, densidad de potencia espectral
o densidad espectral de energı́a.
Acá se usará la expresión densidad de potencia espectral con la abrevia-
tura PSD por power specral density.
Si la función g(t) está definida en −∞ < t < ∞ su densidad de potencia
espectral muy probablemente va a ser infinita. Por lo general interesa li-
mitarse a una lapso finito de tiempo y calcular para esa función g(t)—nula
fuera de un dominio finito de t—su correspondiente densidad de potencia
espectral.
Hay razones que permiten apreciar la importancia de la frecuencia de
Nyquist:

a) Si se muestrea una función continua g(t) a intervalos ∆ y g(t) resulta


tener un ancho de banda limitado por frecuencias de magnitudes
menores que fc , esto es,

G( f ) = 0 para todo | f | ≥ fc ancho de banda limitado (10.3.3)

10.3. TRANSFORMADA DE FOURIER DISCRETA Facultad de Ciencias Fı́sicas y Matemáticas


221 Métodos Numéricos

entonces la función g(t) queda totalmente determinada por el mues-


treo gk . En efecto, si g(t) está dado por el teorema del muestreo o
“sampling theorem”,

sin(2π fc (t − k∆))
g(t) = ∆ ∑ gk
π (t − k∆)
(10.3.4)
k=−∞
La expresión anterior muestra que el contenido de información de
una función de ancho de banda limitado es, en cierto sentido, infini-
tamente menor que el de una función continua general. En tal caso
basta una muestra discreta y no continua.
A menudo se debe trabajar con una señal que—por razones fı́sicas—
tiene un ancho de banda limitado, al menos en un sentido aproxima-
do. Por ejemplo, la señal puede haber pasado por un amplificador
que responde a un ancho de banda limitado. En tal caso, el teo-
rema dice que toda la información de la señal puede ser registrada
muestreando a una tasa ∆−1 , igual al doble de la frecuencia máxima,
(10.3.2), que entrega el amplificador.
b) Si se muestrea una función continua que no está limitada a un ancho
de banda (− fc < f < fc ), toda la información asociada a frecuencias
fuera de este rango es erróneamente trasladada a ese rango. Este
fenómeno se denomina traducción falsa (en inglés se dice aliasing).
c) La forma de superar la traducción falsa consiste en primero tener
claro cuál es el ancho de banda de la señal, o bien imponer un lı́mite
conocido por medio de un filtro analógico de la señal continua y, se-
gundo, muestrear a una tasa suficientemente fina (∆ pequeño) para
dar al menos dos puntos por ciclo para la frecuencia más alta.
d) Para reparar el efecto de la traducción falsa conviene estimar la
transformada de Fourier G( f ) imponiendo que ella sea nula fuera
del rango (− fc , fc ). Si, al hacer esto, se observa que G( f ) se acerca
a cero en sus extremos ( f → fc y f → − fc ) se puede suponer que se
tendrá un resultado razonablemente bueno, pero si esto no ocurre
podemos sospechar fuertemente que componentes fuera del rango
se han colado al rango crı́tico.
Se tiene entonces una muestra discreta y de tamaño finito N,
gk ≡ g(tk ) , tk = k∆ , k = 0, 1, ..., N − 1 (10.3.5)

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Transformada rápida de Fourier (FFT) Patricio Cordero S.

Supongamos además que N es par.


Ya que se tiene un número finito de datos se quiere calcular igual número
N de transformadas G( f ) en el rango (− fc , fc ). Se escoge hacerlo para las
frecuencias discretas:
n N N
fn = , n = − , ..., (10.3.6)
∆N 2 2
Más adelante se reemplazará este rango de n por (0, 1, .., N).
Se hace notar que

fN/2 = fc y que f±n = ± fn (10.3.7)

En (10.3.6) se define N + 1 frecuencias, pero en lo que sigue se verá que


solo se toman en cuenta N.
La exponencial exp[2π i fnt] en el caso discreto (usando fn y t = k ∆) es

e2π i fnt = e2π ink/N (10.3.8)

Esta exponencial no cambia si se reemplaza n → n ± N porque

e2π i(n±N)k/N = e2π ink/N e±2π ik = e2π ink/N (10.3.9)

ya que exp[±2π ik] = cos(2π ik) = 1. Esto es, e2π ink/N es periódica en n con
perı́odo N. En particular el caso n = 0 es equivalente al caso n = N por lo
que a ambos se les asocia la frecuencia nula.
En los casos 0 ≤ n ≤ N2 se continuará asociando la frecuencia fn definida
en (10.3.6). En cambio, en los casos con − N2 ≤ n < 0, en lugar de asociar
la frecuencia negativa f−n se le asociará a frecuencia negativa equivalente
N −n
f−n+N = − (10.3.10)
N∆

f=0 f>0 +−fc f<0 f=0


Se ve entonces que las frecuencias que
entran en este formalismo tiene siempre 0 N/2 N
una magnitud que no sobrepasa fc .
Figura 10.1: Esta figura ilustra la
De todo lo anterior se ve que el rango relación entre los valores de n abajo
para n dado en (10.3.6) puede ser reem- con las frecuencias que se le asocia,
plazado por el rango n = 0, 1, ..N − 1 de arriba. Ver también la tabla (10.3.11)

10.3. TRANSFORMADA DE FOURIER DISCRETA Facultad de Ciencias Fı́sicas y Matemáticas


223 Métodos Numéricos

N
tal manera que para 0 < n ≤ 2 se obtie-
ne frecuencias fn tales que
N
0<n≤ ⇐⇒ 0 ≤ fn < fc
2
N
Mientras que con n tal que 2 ≤ n < N se asocia frecuencias negativas.
La tabla que sigue muestra la relación entre los valores de n y la frecuencia
asociada

N n n
0≤n< fn = = fc
2 ∆ N (N/2)

N 1
n= fN/2 = ± 2∆ = ± fc (10.3.11)
2
N N −n N −n
<n≤N fn = − =− fc
2 ∆N (N/2)

f
Nótese que las frecuencias de mayor magnitud ab-
fc
soluta son ± fc .
Con lo anterior se define la transformada
Z ∞ N−1 N−1 N/2 N n
G( fn ) = g(t) e2π i fn t dt ≈ ∑ gk e2π i f t n k
∆=∆ ∑ gk e2π ikn/N
−∞ k=0 k=0
(10.3.12)
Pero la transformada de Fourier discreta Gn se −fc

define omitiendo el factor ∆,


Figura 10.2: Represen-
N−1 tación gráfica de las fre-
Gn ≡ ∑ gk e2π ikn/N (10.3.13) cuencias como función de
k=0 n según (10.3.11).
que gráficamente se representa por la figura 10.1.
Por ejemplo, en el caso N = 16, esta figura tendrı́a las 17 frecuencias. Esto
es lo que representamos a continuación anotando abajo los valores de n

1 2 6 7
0, 8 fc , 8 fc , ... 8 fc 8 fc , ± fc , − 78 fc , − 68 fc ... − 28 fc − 18 fc , 0

0 1 2 ... 6 7 8 9 10 ... 14 15 16

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Transformada rápida de Fourier (FFT) Patricio Cordero S.

1 2 6 7
0, 8 fc , 8 fc , .. 8 fc 8 fc , ± fc , − 78 fc , − 68 fc .. − 82 fc − 18 fc , 0

0 1 2 .. 6 7 8 9 10 11.. 14 15 16

Puesto que la primera y última frecuencias son iguales (y nulas) efectiva-


mente hay tan solo 16 frecuencias diferentes.
Más en general, siempre con N par, se tiene
2 4 N−2 4 2
fn = 0 N fc N fc ... N fc ± fc − N−2
N f c ... − N f c − N f c 0

N−2 N N+2
n= 0 1 2 ... 2 2 2 ... N − 2 N − 1 N

La transformada discreta asocia a los N números complejos gk son los N


números complejos Gn . Ella no depende de ningún parámetro dimensional
tal como ∆.
G( fn ) ≈ ∆ Gn (10.3.14)

La transformada inversa que—a partir de Gn —recupera la función original


gk , es
1 N−1
gk = ∑ Gn e−2π ikn/N
N n=0
(10.3.15)

y el teorema de Parseval (10.1.6) toma la forma


N−1
1 N−1
∑ |gk |2 = ∑ |Gn|2 (10.3.16)
k=0 N n=0

También se puede escribir formas discretas para la convolución y la corre-


lación.

10.4. La transformada rápida de Fourier (FFT)


Se define la matriz W de componentes W nk como

W nk = e2π ikn/N (10.4.1)

10.4. LA TRANSFORMADA RÁPIDA DE FOURIER (FFT) Facultad de Ciencias Fı́sicas y Matemáticas


225 Métodos Numéricos

con lo cual (10.3.13) se puede escribir


N−1
Gn = ∑ W nk gk (10.4.2)
k=0

que puede mirarse como el producto de la matriz W multiplicando al vector


~g. Según la expresión anterior, cada uno de los Gn requiere de N multipli-
caciones y n = 0, 1, . . .N − 1 toma N valores, de modo que hasta aquı́ se
debe hacer O(N 2 ) multiplicaciones. En lo que sigue se verá cómo reducir
el número de operaciones.
En efecto, en lo que sigue se ve que la transformada discreta de Fourier
se puede reescribir como la suma de dos transformadas de largo N/2, una
usando los ı́ndices pares y otra los ı́ndices impares:
N−1
Gn = ∑ e2π ikn/N gk n = 0, 1, . . .N − 1
k=0
N/2−1 N/2−1
= ∑ e2π in(2k)/N g2k + ∑ e2π in(2k+1)/N g2k+1
k=0 k=0
N/2−1 N/2−1
= ∑ e2π ink/(N/2) g2k +W n ∑ e2π ink/(N/2) g2k+1 , (10.4.3)
k=0 k=0
= G+n +W
n
G−
n donde W ≡ e2π i/N (10.4.4)

donde ± quiere decir parte par o impar. Se puede comprobar que G+


n y
G−
n son periódicas en n con perı́odo N/2 debido a que

e2π i(n+N/2)k/(N/2) = e2π ink/(N/2) e2π ik = e2π ink/(N/2) (10.4.5)

Con esto debiera ser claro que el costo de calcular G+


n es N/2 productos

complejos y lo mismo ocurre con Gn .
Dado un n tal que 0 ≤ n < N2 para calcular Gn+N/2 se debe considerar
sumas como en (10.4.3). En ambas sumas aparecen exponenciales como
(10.4.5) y además y, puesto que

W n+N/2 = W n eπ i = −W n , (10.4.6)

se cumple que
Gn+ N = G+ n −
n −W Gn (10.4.7)
2

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Transformada rápida de Fourier (FFT) Patricio Cordero S.

lo que muestra que si se calcula los G+ − N


n y Gn con 0 ≤ n < 2 , se puede
calcular no tan solo los Gn sino además los Gn+ N , esto es, hay que hacer
2
la mitad de los cálculos para obtener todos los Gn .
Habiendo reducido el cálculo de Gn al cálculo de G+ −
n y Gn , con la mitad
del esfuerzo, en forma semejante se puede reducir el problema de calcular
G+n al problema de calcular sus N/4 datos pares y sus N/4 datos impares,
lo que podrı́amos llamar el cálculo de G++
n y G+−
n . Y algo similar se hace
− −+ −−
con Gn dando Gn Gn . Esto hace que el caso más sencillo se presente
cuando N es una potencia de 2, N = 2q .
Teniendo N = 2q diver-
sos autores argumentan 0000 0 0
0001 1 8
que la transformada de 0010 2 4
0011 3 12
Fourier estándar requie- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0100 4 2
re de N 2 = 22q ope- 0101 5 10
0 2 4 6 8 10 12 14 1 3 5 7 9 11 13 15 0110 6 6
raciones, mientras que 0111 7 14
la FFT (transformada de 0 4 8 12 2 6 10 14 1 5 9 13 3 7 11 15 1000 8 1
1001 9 9
Fourier rápida) requiere 0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15 1010 10 5
q
de q 2 = N ln N ope- 1011 11 13
1100 12 3
raciones. Por ejemplo, si 1101 13 11
q = 12 se reduce el nu- 1110 14 7
1111 15 15
mero de operaciones de
.

224 =16.777.216 a 12 × Figura 10.4: A la izquierda se muestra como las suce-


212 =49.152. sivas separaciones en términos pares e impares lleva al
orden final. A la derecha se ilustran el reordenamiento
Se concluye que existe de los ı́ndices de 16 datos comprobándose que corres-
una relación de recurren- ponde a la inversión de los bits.
cia donde las componen-
tes llegan a tener una secuencia de ı́ndices “par” e “impar”. Se hace uso
de la representación binaria de n, esto es, n es expresado con ceros y
unos, de modo que a 0 se asocia “par” y a 1 se asocia “impar”, como se
ilustra en las figura 10.4 y en (10.4.8). Las transformadas cada vez más
gruesas (menos puntos) deben ser vistas, en la representación binaria de
n, como la eliminación secuencial de los bits menos relevantes.
La idea básica es la siguiente. Se toma el vector original ~g de componen-
tes gk y se lo reordena según el orden natural que resulta una vez que
se cambia cada ı́ndice k por el que corresponda a una inversión de bits
como se ilustra en la Fig. 10.4. Esto corresponde a tomar objetos como

10.4. LA TRANSFORMADA RÁPIDA DE FOURIER (FFT) Facultad de Ciencias Fı́sicas y Matemáticas


227 Métodos Numéricos

    ++++

 
 
  G0

 
 
 +++

 
 
 G0,8

 
 
  +++−

 
 
 G8

 
 
 





 G++
n=0,4,8,12 
 ++−+

 
   G4

 
 
 ++−

 
 
 G 4,12 
  






 
 G++−−
12

  

 G +   +−++

 n=0,2,...14 

  
  G2

 
 
 +−+

 
 
 G2,10

 
 
  +−+−

 
 
 G10

 
 
 



 
 G+−
n=2,6,10,14 
 +−−+

 
   G6

 
  +−−


 
 
 G 6,14 
 
 


 
 
 G+−−−
14
 
Gn=0,...15    −+++ (10.4.8)



 
 
  G1

 
 
 −++

 
 
 G1,9

 
 
  −++−

 
 
 G9

 
 

 




 G−+
n=1,5,9,13 
 −+−+

 
   G5

 
 
 −+−

 
 
 G 5,13 

  




 
 G−+−−
13

 − 

 G n=1,3,...15   






 
  G−−++
3

 
 
 −−+

 
 
 G

 
  3,11  −−+−


 
  G11

 
 −−

 
 Gn=3,7,11,15  −−−+

 
 


 
 
  G7

 
 
 −−−

 
 
 G
   7,15  −−−−
G15

Figura 10.3: Otra forma de ver las sucesivas separaciones de los Gn originales a las
partes pares/impares.

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Transformada rápida de Fourier (FFT) Patricio Cordero S.

Gn+−−+−+−++−.. e invertir el orden de estos ı́ndices superiores.


Lo anterior no es tan sencillo y debe explicarse en más detalles. Si se
tiene tan solo 16 datos, en la primera separación, tipo (10.4.4), se suman
(0, 2, 4, 6, 8, 10, 12, 14) y luego los datos (1, 3, 5, 7, 9, 11, 13, 15); en la segunda
separación se debe sumar (0, 4, 8, 12) y (2, 6, 10, 14) seguido de (1, 5, 9, 13) y
(3, 7, 11, 15); en la tercera separacion se tiene (0, 8), (4, 12), (2, 10), (6, 14),
(1, 9), (5, 13), (3, 11), (7, 15). Si se compara los pares anteriores con la
columna de la derecha en la Fig. 10.4 se comprueba que coinciden. Esto
hace conveniente que se reordene los datos colocando el dato 0 seguido
del dato 8, seguido de 4, seguido del 12 etc.
Cooley y Tukey demostraron en 1965 que si el ı́ndice de los datos se
coloca en forma binaria, el reordenamiento de los datos corresponde a
una inversión de los bits que es lo que señalan las dobles flechas en la
figura 10.4, por ejemplo, [0101] intercambia lugar con [1010]: el quinto dato
es renombrado como el décimo y el décimo como el quinto. En cambio los
númros 0, 6, 9 y 15 permanecen en sus lugares porque, descritos en bits,
son simétricos.

10.4. LA TRANSFORMADA RÁPIDA DE FOURIER (FFT) Facultad de Ciencias Fı́sicas y Matemáticas


Bibliografı́a

[1] M. Hjorth-Jensen, Morten Computational Physics University of Oslo,


Fall 2008

[2] Steve E. Koonin, Computational Physics The Benjamin/Cummings Pu-


blishing Company, Inc. Menlo Park, California, 1986

[3] S. Nakamura Computational Methods in Engineering and Science:


With Applications to Fluid Dynamics and Nuclear Systems, John Wiley
& Sons Australia, Limited, 1977

[4] R. Peyret, T. D. Taylor Computational Methods for Fluid Flow , Springer


Series in Computational Physics, 1985

[5] W.H. Press, S.A. Teukolsky, W.T. Vetterling and B.P. Flannery, Numeri-
cal recipes in C, The art of scientific computing, Cambridge University
Press, 2002.

[6] G.D. Smith, Numerical solution of partial diferential equations: finite dif-
ference method, Oxford Applied Mathematics and Computing Science
Series, Third edition, 2004.

229
Índice alfabético

adimensionalizar, 15 algoritmo de Numerov, 85


algoritmo de Metropolis algoritmos de Runge-Kutta (RK),
en mecánica estadı́stica, 125 60
autovalores, 33, 48 algoritmos simplécticos, 74
autovalres de más alto orden, 78
problemas, 95 integradores multipaso, 63
ejemplo: cuerda, 96 estimador de Adams-Moulton,
autovectores, 33 65
predictor de Adams-Bashforth,
balance detallado, 128 64
método directo de Euler, 58
condiciones de borde 1D, 83
método implı́cito, 59
derivadas a cinco puntos, 19 método predictor-corrector, 67
derivadas a cuatro puntos, 19 métodos para las ecuaciones de
derivadas numérica, 17 Newton
descomposición LU ,descomposición Beeman, 68
PLU , 38 Gear, 68
distribución de probabilidad W (x), 106 Leapfrog, 73
Verlet, 69
ecuación de Poisson, 86 reducción a ecuaciones de pri-
ecuación de Schrödinger mer orden, 57
comportamiento en r ∼ 0, 101 RK2, 61
comportamiento lejano, 101 RK3, 61
empalme, 98 RK4, 61
estados ligados, 98 estabilidad, 62
radial, 100 EDP
unidimiensional, 98 ecuación de Scrödinger depen-
ecuaciones diferenciales ordinaria, 57 diente del tiempo
ecuaciones elı́pticas, 137 método de Nicolson, 177
EDO método de Visscher, 179

230
231 Métodos Numéricos

método implı́cito, 182 método de Richtmayer, 176


ecuaciones elı́pticas método tridiagonal, 167
condiciones de borde, 137 eliminación de Gauss, 33, 38
convergencia, 141 ergodicidad, 128
discretización, 139 errores, 13
fluidos incompresibles estacio-
narios, 143 FFT
ecuaciones hiperbólicas, 187 ancho de banda, 220
algoritmos conservativos, 188 correlación, 218
ecuaciones de segundo orden, delta de Dirac, 217
206 densidad de potencia espectral,
fluido compresible sencillo, 198 220
integración a lo largo de una directa e inversa, 219
caracterı́stica, 196 discreta, 220
método de las caracterı́sticas, frecuencia crı́tica de Nyquist, 220
192 tasa de muestreo, 220
método de Lax-Wendroff, 187 teorema de la convolución, 218
sistema de ecuaciones, 197 teorema de la correlación, 218
ecuaciones parabólicas, 161 teorema de Parseval, 219, 224
adimensionalización, 164 traducción falsa o aliasing, 221
algoritmo para caso rı́gido, 170 trasformada rápide de Fourier, 217
con condiciones de borde de- función de Green
rivarivas, 165 papel de juega, 91
con condiciones de borde pe- su construcción, 92
riódicas, 166, 172 su uso, 90, 94
con condiciones de borde rı́gi-
das, 165 integración
con en 1 + 2 dimensiones, 175 cambio de variable, 24
ecuación de Burgers, 163 discretización no uniforme, 23
ecuación de calor, 162 intervalo infinito, 25
ecuación de calor con conduc- método de Simpson, 20
tividad variable, 171 1/3, 20
ecuación de Schrödinger, 162 3/8, 22
ecuación de Swift-Hohenberg, Monte Carlo, 111
163 algoritmo de Metropolis, 121
integración explı́cita directa, 164 estrategia de von Neuman, 118
método de Du Fort-Frankel, 166 método explı́cito, 115
método de Lees, 177 MC1b, 115

Universidad de Chile Escuela de Ingenierı́a y Ciencias


Transformada rápida de Fourier (FFT) Patricio Cordero S.

MC2, 115
mucho contraste, 26
numérica, 19
parte principal, 29
regularización del integrando, 26
trapezoidal, 19
integración Monte Carlo, 111
algoritmo de Metropolis, 121
en dimensión D, 119
en dominios difı́ciles, 120
MC1, 112
usando el algoritmo de Metropo-
lis, 129
integración numérica, 19

métodos de interpolación, 49
ajuste no paramétrico, 53
ajuste suavizado, 51
mı́nimos cuadrados, 52
de Lagrange, 50
empalme cúbico (spline), 51
leales, 49
método del gradiente conjugado, 42
matriz de permutación, 36

números aleatorios, 105


Numerov, algoritmo, 85

proceso de Markov, 127

rutina de reparación, 88

uso de función de Green, 90

ÍNDICE ALFABÉTICO Facultad de Ciencias Fı́sicas y Matemáticas


Colección
Libros de Matemática
en PDF

Esta colección no es más que una


recopilación, sin ánimo de lucro y
distribuida solo con fines educativos,
de diferentes obras autoeditadas y
apuntes docentes elaborados por
Universidades, Institutos y Escuelas
Técnicas, que generalmente ponen al
alcance de sus estudiantes, sobre
diferentes temas de matemáticas,
física, ingeniería y ciencias afines,
ahora reunidas bajo el sello del grupo
"Libros de Matemática en PDF".

Libros de Matemática en PDF

Todos los derechos pertenecen a sus respectivos autores.


Solo con fines educativos

You might also like