You are on page 1of 165

METODOS

NUMERICOS
Patricio Cordero S.
Departamento de Fsica

Facultad de Ciencias Fsicas y Matematicas


Universidad de Chile
diciembre 2013
version

Indice general

1. Introduccion

1.1. Usos del calculo


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

1.2. Errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.3. Tiempo de calculo


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4. Adimensionalizar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2. Derivadas e integrales numericas

13

2.1. Derivadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.1. Tabla con derivadas a cuatro y cinco puntos . . . . . . . . . . . . . . . . . . . 14
numerica

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

2.2.1. Metodo
trapezoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2.2. Metodos
de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.2.1. Simpsion 1/3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.2.2. Simpson 3/8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
no uniforme sencilla . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.3. Discretizacion
2.2.4. Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
y cambio de variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3. Integracion
2.3.1. Planteamiento y ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.2. Divergencias en el integrando . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

del integrando . . . . . . . . . . . . . . . . 20
2.3.2.1. Metodo
1: regularizacion

2.3.2.2. Metodo
2: tratamiento analtico de la divergencia . . . . . . . . . . . 21
2.4. Integral de parte principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5. Problemas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

recurrencias y ceros
3. Algebra lineal, interpolacion,

25

3.1. Temas de algebra


lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1.1. Autovalores y autovectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3

INDICE GENERAL

de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1.2. Eliminacion

3.1.3. Metodo
del gradiente conjugado . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2. Recurrencias, puntos fijos y ceros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1. Estabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2. Ceros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.3. Encajonamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.2.4. Metodo
de Newton y de la secante . . . . . . . . . . . . . . . . . . . . . . . . 33
de una variable . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.5. Puntos fijos con mas

3.2.6. Metodo
de la secante en varias variables . . . . . . . . . . . . . . . . . . . . 34

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3. Metodos
de interpolacion
3.3.1. Interpolaciones leales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.1.1. Interpolacion
de Lagrange . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.1.2. Interpolacion
de empalme (spline) cubico
3.3.1.3. La aproximacion

. . . . . . . . . . . . 36

3.3.2. Metodos
de ajuste suavizado . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.2.1. Mnimos cuadrados . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.3.2.2. Ajuste no parametrico


. . . . . . . . . . . . . . . . . . . . . . . . . . 38
mediante el aproximante de Pade . . . . . . . . . . . . . . . . . 39
3.3.3. Interpolacion
3.4. Problemas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4. Ecuaciones diferenciales ordinarias

41

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


4.1. Reduccion

4.1.1. Metodo
directo simple (de Euler) . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.1.2. Metodo
implcito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.1.3. Algoritmos Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.1.4. Estabilidad de RK4 en el caso y = y . . . . . . . . . . . . . . . . . . . . . . 45
4.2. Integradores multipaso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2.1. Presentacion
4.2.2. Algoritmo predictor de Adams-Bashforth . . . . . . . . . . . . . . . . . . . . . 46
4.2.3. Estimador de Adams-Moulton . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.2.4. Metodo
predictor-corrector . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.5. Predictor-corrector de Beeman para las ecuaciones de Newton . . . . . . . . 48
4.2.6. Predictor-corrector de Gear . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.3. Metodos
de Verlet y variaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3.1. Propiamente Verlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.3.2. Estabilidad del metodo


de Verlet . . . . . . . . . . . . . . . . . . . . . . . . . 51
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

4.3.3. Leapfrog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.4. Algoritmos simplecticos


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.4.1. Operadores de traslacion
4.4.2. Ecuaciones de movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
del algoritmo O( 3 ) . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.4.3. Construccion
4.4.4. El Jacobiano asociado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.4.5. Nuevamente el algoritmo de Verlet . . . . . . . . . . . . . . . . . . . . . . . . 55

alto orden . . . . . . . . . . . . . . . . . . . 56
4.4.6. Algoritmos simplecticos
de mas
final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.5. Recomendacion
4.6. Problemas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5. Problemas de condiciones de borde y problemas de autovalores

61

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.1. Introduccion
5.1.1. Dos ejemplos de ecuaciones lineales . . . . . . . . . . . . . . . . . . . . . . 61
de Poisson esfericamente

5.1.1.1. La ecuacion
simetrica
. . . . . . . . . . . 61
de autovalores . . . . . . . . . . . . . . . . 62
5.1.1.2. Una conocida ecuacion
5.2. El algoritmo de Numerov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.3. Problemas asociados a las condiciones de borde . . . . . . . . . . . . . . . . . . . . 63
directa de un problema con condiciones de borde . . . . . . . . . 63
5.3.1. Integracion
de Poisson con simetra esferica

5.3.1.1. Primer ejemplo: la ecuacion

. . . 63

5.3.1.2. Consideraciones generales . . . . . . . . . . . . . . . . . . . . . . . 64


5.3.1.3. Segundo ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
de Green . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.3.2. Uso de una funcion
5.3.2.1. El problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
de Green . . . . . . . . . . . . . . . . . . . . . . 66
5.3.2.2. Papel de la funcion
del problema original . . . . . . . . . . . . . . . . 67
5.3.2.3. Hacia la solucion
numerica

de Green . . . . . . . . . . . . 67
5.3.2.4. Construccion
de la funcion
formal de (5.3.9) . . . . . . . . . . . . . . . . . . . . . . 68
5.3.2.5. La solucion
5.3.2.6. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.4. Problemas de autovalores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.4.1. Problema sencillo de autovalores: una cuerda . . . . . . . . . . . . . . . . . . 70
de Schrodinger

estados ligados . . . . . . . . . 71
5.4.2. Ecuacion
en una dimension:
de Schrodinger

5.4.3. Ecuacion
radial . . . . . . . . . . . . . . . . . . . . . . . . . . 73

5.4.3.1. La ecuacion
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.4.3.2. Comportamiento lejano . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.4.3.3. El comportamiento cerca del origen . . . . . . . . . . . . . . . . . . 74
Universidad de Chile

Escuela de Ingeniera y Ciencias

INDICE GENERAL

5.5. Problemas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

6. Integrales Monte Carlo y el algoritmo de Metropolis

77

6.1. Numeros

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

6.2. Densidades de probabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

y el promedio discreto . . . . . . . . . . . . . . . . . . . . . . . . 78
6.2.1. Distribucion
6.2.2. Distribuciones relacionadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
de secuencia W (x) a partir de U (0, 1) . . . . . . . . . . . . . . . . 79
6.2.3. Obtencion
W (x) . . . . . . . . . . . . 80
6.2.3.1. El histograma asociado a una distribicion
6.2.4. El caso de n variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.2.5. Uso de W (x1 , x2 ) para generar gaussianas . . . . . . . . . . . . . . . . . . . . 81
Monte Carlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.3. Integracion
6.3.1. El problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.3.2. Primera forma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

6.3.3. Aplicabilidad de los metodos


Monte Carlo . . . . . . . . . . . . . . . . . . . . 84

6.3.4. Metodo
explcito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.3.5. Estrategia de von Neumann . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Monte Carlo en dimension
D . . . . . . . . . . . . . . . . . . . . . 87
6.3.6. Integracion
6.4. La estrategia Metropolis para calcular promedios . . . . . . . . . . . . . . . . . . . . 88
6.4.1. El algoritmo de Metropolis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.4.2. Por que funciona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.4.3. Metropolis en mecanica


estadstica . . . . . . . . . . . . . . . . . . . . . . . 91
6.4.4. Propiedades necesarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.4.5. Integrales usando el algoritmo de Metropolis . . . . . . . . . . . . . . . . . . 93
6.4.5.1. Caso unidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.4.5.2. Caso general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.5. Problemas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

7. Ecuaciones elpticas

99

y condiciones de borde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
7.1. Ecuacion

7.1.1. Integral de accion


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
7.2. Discretizacion
en el volumen . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
7.2.1. Discretizacion
en los bordes en un caso tipo Neumann . . . . . . . . . . . . 101
7.2.2. Discretizacion
7.2.3. Convergencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
en el volumen . . . . . . . . . . . . . . . . . . . . . . . . . 102
7.2.3.1. Iteracion
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

con condicion
de borde tipo Neumann . . . . . . . . . . . 103
7.2.3.2. Iteracion
7.3. Fluidos incompresibles estacionarios . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.3.1. Las ecuaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
corriente, la vorticidad y la tempe7.3.2. Ecuaciones estacionarias para la funcion
ratura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.3.3. Lneas de corriente

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

discreta de y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.3.4. Version
termica

7.4. Primer ejemplo: conveccion


. . . . . . . . . . . . . . . . . . . . . . . . . . . 106

7.5. Segundo ejemplo: flujo y obstaculo


. . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.5.1. Las ecuaciones discretas en el volumen . . . . . . . . . . . . . . . . . . . . . 109
7.5.2. Las ecuaciones en los bordes
7.6. Problemas

. . . . . . . . . . . . . . . . . . . . . . . . . . 111

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

8. Ecuaciones parabolicas

115

general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
8.1. Ecuacion
8.2. Ecuaciones tpicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
de calor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
8.2.1. Ecuacion
de Schrodinger

8.2.2. Ecuacion
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

8.2.3. Otros ejemplos de ecuaciones parabolicas


. . . . . . . . . . . . . . . . . . . 116
de la ecuacion
de difusion
de calor 1D . . . . . . . . . . . . . . 117
8.3. Adimensionalizacion
explcita directa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8.4. Integracion
8.4.1. Condiciones de borde rgidas . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8.4.2. Condiciones de borde con derivada . . . . . . . . . . . . . . . . . . . . . . . 117

8.4.3. Condiciones de borde periodicas


. . . . . . . . . . . . . . . . . . . . . . . . . 118

8.5. El metodo
de Du Fort-Frankel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

8.6. El metodo
tridiagonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
de calor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8.6.1. La ecuacion
8.6.2. El algoritmo para el caso rgido . . . . . . . . . . . . . . . . . . . . . . . . . . 121
de calor con conductividad variable . . . . . . . . . . . . . . . . . . 122
8.6.3. Ecuacion

8.6.4. El caso con condiciones de borde periodicas


. . . . . . . . . . . . . . . . . . 123

8.7. Un caso parabolico


en 1+2 dimensiones . . . . . . . . . . . . . . . . . . . . . . . . . 125

8.8. Dos metodos


adicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

8.8.1. Metodo
de Richtmayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

8.8.2. Metodo
de Lees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
de Schrodinger

8.9. Ecuacion
dependiente del tiempo . . . . . . . . . . . . . . . . . . . . 127

8.9.1. Usando el metodo


de Crank Nicolson . . . . . . . . . . . . . . . . . . . . . . 127
Universidad de Chile

Escuela de Ingeniera y Ciencias


8.9.2. El metodo
explcito de Visscher . . . . . . . . . . . . . . . . . . . . . . . . . . 128
de la norma . . . . . . . . . . . . . . . . . . . . . . . 128
8.9.2.1. Conservacion
8.9.2.2. Estabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

8.10.Metodo
implcito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
8.11.Problemas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

9. Ecuaciones hiperbolicas

135

9.1. Ecuaciones de primer orden y sus curvas caractersticas . . . . . . . . . . . . . . . 135

9.2. El metodo
de las caractersticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

9.2.1. Ejemplos para ilustrar los conceptos basicos


. . . . . . . . . . . . . . . . . . 137
9.2.1.1. Ejemplo muy sencillo . . . . . . . . . . . . . . . . . . . . . . . . . . 137
elaborado . . . . . . . . . . . . . . . . . . . . . . 138
9.2.1.2. Ejemplo algo mas
numerica

9.2.2. Integracion
a lo largo de una caracterstica . . . . . . . . . . . . . . 139

9.3. Sistema de ecuaciones hiperbolicas


de primer orden . . . . . . . . . . . . . . . . . . 140
9.3.1. Fluido compresible sencillo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
9.3.2. Fluido compresible con entalpa variable . . . . . . . . . . . . . . . . . . . . . 144
9.4. Ecuaciones de segundo orden cuasilineales . . . . . . . . . . . . . . . . . . . . . . . 147

9.5. Ecuaciones hiperbolicas


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
9.5.1. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
explcita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
9.5.2. Integracion
9.6. Condiciones de borde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
9.7. Problemas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

10.Transformada rapida
de Fourier

155

10.1.La transformada continua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155


10.1.1. La delta de Dirac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
entre una funcion
y su transformada . . . . . . . . . . . . . . . . . . 155
10.1.2. Relacion
y correlacion
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
10.1.3. Convolucion
10.1.4. Potencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
10.2.Transformada de Fourier en dominio finito . . . . . . . . . . . . . . . . . . . . . . . . 156
10.3.Transformada de Fourier discreta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

10.4.La transformada rapida


de Fourier (FFT) . . . . . . . . . . . . . . . . . . . . . . . . . 160

10.5.Codigos
para una FFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

Captulo 1

Introduccion
1.1.

Usos del calculo


numerico

En problemas de todas las disciplinas, como ingeniera, economa, ciencias sociales, fsica,

biologa, hoy da se utiliza el calculo


numerico
en el sentido de lo que se presenta en los proximos
captulos.

Una vez que un problema es planteado en la forma matematica


propia a su disciplina este

debe ser reformulado para adecuarlo a lo que es el calculo


numerico.
Un caso tpico de fsica

basica

basica
puede ser la ecuacion
de movimiento unidimensional de una partcula:
dv
= f (x, v)
dt
Se debe comenzar por usar tiempo discretizado para expresar la derivada como cuociente de
cantidades finitas. Podra ser, por ejemplo
xk+1 xk
vk+1 vk

vk =
y tambien
ak =
, donde k = 0, 1, 2 . . .
h
h
conocida. De las expresiones
donde tk = hk, xk = x(tk ), vk = v(tk ) y la fuerza f (x, v) es una funcion
anteriores se obtiene instrucciones apropiadas para incluir en un programa computacional:
m

h
fk
m
inicial x0 y v0 se va, iterativamente, obteniendo los sucesivos valores
donde, desde una condicion
(xk , vk ). Este algoritmo se conoce como el algoritmo de Euler. El algoritmo anterior se puede
dimensiones. Es sencillo, facil
de entender pero, como se vera,
puede presentar
generalizar a mas
problemas de estabilidad.
xk+1 = xk + h vk ,

vk+1 = vk +

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

Hoy en da es inconcebible no utilizar calculo


numerico
en cada area
de la ciencia y la tecno unos pocos ejemplos en fsica,
loga. A continuacion
9


Introduccion

1.2. ERRORES

Comportamiento de atomos,
nucleos,

y el amplio mundo subnuclear de fsica de partculas

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

de vien de aviones, en el comportamineto de estrellas etc etc


to en el diseno

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

Comportamiento de las mas


incluyendo algunas enormes proteinas.
de galaxias, soluciones de las complicadas ecuaciones
Astrofsica y cosmologa, evolucion

de gravitacion.
Los esfuerzos computacionales para atacar un problema abarcan desde hacer integrales complicadas, hacer integrales en muchas (a veces demasiadas) dimensiones, estimar funciones par en sistemas estadsticos, hasta resolver ecuaciones diferenciales ordinarias, ecuaciones
ticion
diferenciales a derivadas parciales, etc.

Salvo que las ecuaciones del modelo que se estudia sean de naturaleza muy sencilla, lo mas
numerica

probable es que se requiera de una resolucion


de ellas. Uno de los retoscuando se

numerica

resuelve numericamente
un conjunto de ecuacioneses saber si la solucion
obtenida
del problema o si los errores numericos

es confiable, es decir, si realmente es una solucion


(o de

otro tipo) que produce la metodologa numerica


usada invalidan total o parcialmente la solucion
obtenida.

En estas notas se aprendera algunas tecnicas


para resolver ecuaciones de diversa naturaleza
sencillos veremos tambien
la forma de mantener los errores bajo control.
y en los casos mas

Habra un permanente trabajo practico.

1.2.

Errores

comunes
Al hacer calculos
numericos
introducimos errores que tienen diverso origen. Los mas
son:

de los datos. Por ejemplo, el valor de puede ser de baja precision,


- Errores en la precision
3,1416 en lugar de 3,1415926535897932385 . . .
k

Por ejemplo, en lugar del valor ex se usa Nk=0 xk! y el N no es lo


- Errores de truncacion.
suficientemente grande. Estos errores aparecen normalmente por la naturaleza iterativa

Por ejemplo, para


de los metodos
y en algun
momento es necesario detener la iteracion.

calcular sin x se puede usar el siguiente codigo C,


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

de x */

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

11

y el resultado analticos es naturalmente mejor mientras mayor sea N, pero la precision

numerica
alcaza su optimo
para N no muy grande.
que se guarda en
- Errores de redondeo. Estos se deben al tama no finito de la informacion
memoria por cada numero

real. Por ejemplo, cuando calculamos


cos(x) =

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

dx
2

el resultados es mejor cuanto menor sea hasta que se produce un problema al restar dos
numeros

demasiado parecidos. Por ejemplo: sin.c


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

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

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

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

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

Tiempo de calculo

Cuando se programa un calculo


cuyo tiempo de calculo
sabemos que va a ser grande es

importante tener alguna idea sobre los elementos que hacen que este calculo
sea lento y conviene
Universidad de Chile

Escuela de Ingeniera y Ciencias


Derivadas e integrales numericas

1.4. ADIMENSIONALIZAR

estudiar si hay alguna forma de optimizar. Por ejemplo, si en forma reiterativa en un programa se

debe calcular una integral y se va a usar la formula


N1

b
a

f (x) dx

f (x0 ) + 2

f (xi ) + f (xN ) h

i=1

xi = a +

ba
i
N

(1.3.1)

debe tenerse presente que este calculo


tarda un tiempo que es O(N).

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

k=1

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

v2k +

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

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

1.4.

Adimensionalizar

parametros

Suele ocurrir que los problemas reales que debemos resolver tienen mas
de los

necesarios en el sentido de que existe un problema numerico


equivalente que se expresa con

menos parametros.
Por ejemplo, en el caso de un oscilador armonico
m x = k x ,

x(0) = A ,

x(0)
= v0 .

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

z(0) = 1 ,

z (0) =

v0
v0 .
A 0

que es un problema con un solo parametros


de control, v0 .
se escoge con cuidado se trabaja con cantidades de orden 1 y por
Si la adimensionalizacion
tanto se disminuye una fuente de errores.

2013
version

Facultad de Ciencias Fsicas y Matematicas

Captulo 2

Derivadas e integrales numericas


2.1.

Derivadas

tpica de plantear una derivada es


La forma elemental mas
f (x)

f (x + h) f (x)
h

(2.1.1)

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

h2
f (x) + . . .
2

(2.1.2)

es mas

muestra que en (2.1.1) se desprecia algo que es O(h). En cambio la siguiente expresion
precisa,
f (x + h) f (x h)
f (x) =
+ O(h2 )
(2.1.3)
2h
se
El error que aqu se indica es un error analtico. Ya se ha comentado que si h es muy pequeno
produce un error de redondeo.

Existe una famila de expresiones para derivadas de cualquier orden. Expresiones simetricas

fk f (x + kh), se tiene, por ejemplo, que


y no simetricas.
Usando la notacion
f1 =
f2 =

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

(2.1.4)

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

(2.1.5)

f1 2 f0 + f1
+ O(h2 )
h2

(2.1.6)

f0 =

y tambien
f0 =

13


Derivadas e integrales numericas

2.1. DERIVADAS

en intervalos regulares. En lugar de intentar un


Hay casos en que no se conoce la funcion

adelantese puede usar expresiones como las


metodo
de interpolacionque
se discuten mas
que siguen,
ver que la primera derivada de una funcion
f (x) se puede expresar en terminos

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

(2.1.7)

y con los valores de f en estos mismos tres puntos la segunda derivada se puede escribir
d2 f
h1 fh2 (h1 + h2 ) f + h2 fh1

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

(2.1.8)

si se compara los errores analticos en estas expresiones con los asociados a las derivadas

simetricas
del mismo orden: (2.1.3) y (2.1.6) se observa que los errores son del mimso orden.

Determine que derivada es proporcional a


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

para la correspondiente derivada.


e indique el orden del error de la esta expresion

sea la primera derivada f mas


un error,
Obtenga el valor de a tal que la siguiente expresion

a f2 16 f1 + 36 f0 48 f1 + 25 f2
denom
para el denominador y para ese error.
De expresion

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 conti algunos ejemplos.
nuacion
A cuatro puntos

A cinco puntos

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

1
( f2 8 f1 + 8 f1 f2 )
12

h2 f

f1 2 f0 + f1

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

h3 f

( f1 + 3 f0 3 f1 + f2 )

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

h4 f iv

no hay

f2 4 f1 + 6 f0 4 f1 + 2 f2

hf

2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

15

Se trata de expresiones tan simetricas


como es posible.

2.2.
2.2.1.

numerica

Integracion
directa

Metodo
trapezoidal

Se desea integrar numericamente


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

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

(2.2.1)

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


xk +h
xk

f (x) dx

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

(2.2.2)

es el area

La ultima

expresion
del trapecio de la figura. Al sumar k sobre N

de los
sitios y tomando en cuenta que N h1 se obtiene, sumando las areas
trapecios, que
b

f (x) dx =
a

fN1 + fN
f0 + f1 f1 + f2
+
+ ...
2
2
2

fk+1

fk
h

h
( f0 + 2 f1 + 2 f2 + .. + 2 fN1 + fN ) + O(h2 )
2
(2.2.3)
3 f

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


N2

2.2.2.

).

Metodos
de Simpson

2.2.2.1. Simpsion 1/3

precisa es la de Simpson que surge de integrar en forma explcita en x


Una formula
algo mas

entre xk1 = xk h y xk+1 = xk + h. La expresion


f (x) = fk +

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

Universidad de Chile

(2.2.4)

Escuela de Ingeniera y Ciencias

NUMERICA

2.2. INTEGRACION
DIRECTA

Derivadas e integrales numericas

/*

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

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

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

N
nu
a
b
h

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

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

double F(double x) //Aqui se pone


{ return(x*x*x*x); //integrando F
}

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

La integracion
(x xk )r con r impar da cero. De la expresion
del termino

anterior sobrevive la integracion


con (x xk )2 , el termino
cubico

no contribuye al error
y el ultimo

da un O(h5 ) y se obtiene
2h fk +

fk1 2 fk + fk+1 1 2h3 h


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

(2.2.5)

se obtiene el algoritmo de Simpson 13 que se aplica con N par,


Componiendo esta expresion
b
a

f (x) dx

h
[ f0 + 4 ( f1 + f3 + .. fN1 ) + 2 ( f2 + f4 + .. + fN2 ) + fN ] + O(h4 )
3

(2.2.6)

precisamente es O(h4 f IV ). Otra forma de escribir lo anterior es


y el error mas
b
a

f (x) dx

h
3

N/21

f0 + 4

k=0

N/21

f2k+1 + 2

f2k + fN

(2.2.7)

k=0

Viendo la logica
de (2.2.4) y como
conduce a (2.2.6) resulta obvio obtener expresiones aun

mas precisas para hacer una integral.


2.2.2.2. Simpson 3/8
(a, b) se divide en N intervalos de tamano
h, donde N
Esta vez el dominio total de integracion
es multiplo

de 3, N = 3m. Se comienza buscando una forma aproximada de la integral desde xi


hasta xi+3 , donde xi+ j = xi + jh.
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

17

Se define un polinomio en y = xi + 23 h, de modo que el punto y = 0 corresponda, como lo


Para este dominio se define el
muestra la figura 2.1, al punto central del dominio de integracion.
polinomio
y 3
y 2
y
+ b3
(2.2.8)
p(y) = b0 + b1 + b2
h
h
h
cuyos coeficientes se determinan exigiendo las siguientes cuatro igualdades,
p

3h
2

= fi ,

h
2

= fi+1 ,

h
2

= fi+2 ,

Para efectos de saber el valor de la integral, basta con conocer los coeficientes de las potencias
pares de y en (2.2.8). En efecto, se obtiene que
3h/2
3h/2

9
p(y) dy = 3b0 + b2 h
4

3h
2

(2.2.10)

= fi+3 .

h
i+1

(2.2.9)

i+2

i+3

De las ecuaciones (2.2.9) se obtiene, en particular, que


b0 =
b2 =

Y
0

1
( fi 9 fi+1 9 fi+2 + fi+3 ) ,
16
(2.2.11) Figura 2.1: Se integra sobre el dominio xi x xi+3 de

3h/2

1
( fi fi+1 fi+2 + fi+3 )
4

3h/2

largo 3h, lo que equivale a integrar usando la variable y


en el dominio 3h/2 y 3h/2.

Lo que lleva a
xi+3

3h/2

3h
( fi + 3 fi+1 + 3 fi+2 + fi+3 )
8
3h/2
xi
(2.2.12)

Si este calculo
se usa en todo el dominio se tiene
p(y) dy =

f (x) dx

b
a

2.2.3.

f (x) dx

3h
8

f0 + 3 f1 + 3 f2 + f3 + f3 + 3 f4 + 3 f5 + f6 + f6 + 3 f7 + 3 f8 + f9 + . . .

3h
( f0 + 3 f1 + 3 f2 + 2 f3 + +3 f4 + 3 f5 + 2 f6 + 3 f7 + 3 f8 + 2 f9 + . . .)
8

m1
m1
3h
f0 + 3 ( f3k+1 + f3k+2 ) + 2 f3k + fN
8
k=0
k=1

+ O(h5 )

(2.2.13)

N=3m

no uniforme sencilla
Discretizacion

Tanto el metodo
trapezoidal como los dos metodos
de Simpson han sido planteados con
uniforme, pero no es necesario proceder de ese modo. En el caso del metodo

discretizacion
(2.2.2) con un h propio, y la integral es
trapezoidal se puede tomar cada contribucion
N1

I=

k=0

Universidad de Chile

hk
( fk + fk+1 )
2
Escuela de Ingeniera y Ciencias

Y CAMBIO DE VARIABLE
2.3. INTEGRACION

Derivadas e integrales numericas

En el caso del metodo


de Simpson 1/3 se integro los intervalos de a pares y fue crucial que
los dos miembros de cada par fueran iguales, pero distintos pares pueden tener hk distintos. La
integral queda
N1
hk
I=
( fk1 + 4 fk + fk+1 )
k=1,3,5... 3
Esta vez la suma va de par en par de intervalos por lo que es necesario sumar solo sobre ndices
impares. El primero es k = 1 y el ultimo

es k = N 1.

2.2.4.

Limitaciones

Estos metodos
no debieran o no pueden ser usados en forma directa si:
es infinito
- el intevalo de integracion
vara mucho en el intervalo
- la funcion
con alto contraste)
(funcion
- hay una divergencia en el intervalo
- ..

2.3.
2.3.1.

y cambio de variable
Integracion
Planteamiento y ejemplos

En general para hacer una integral numerica


es conveniente hacer algun
tipo de cambio de
variable. En particular los problemas mencionados antes se superan haciendo un cambio de
y = g(x), esto es, dy = g (x) dx. Genericamente

variable de integracion
b

I =

f (x) dx
a
g(b)

=
g(a)

f (x)
g (x)

dy

(2.3.1)

x=g1 (y)

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


que g(x) debe ser monotona
para que g no tenga ceros en el intervalo que interesa. Discretizar uniformemente en la nueva
no uniforme en la variable original x. Otra limitante
variable y es equivalente a una discretizacion

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

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

2013
version

f (x)
g (x)

(2.3.2)
x=g1 (y)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

19

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


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

a) g(x) es monotona
en el intervalo (a, b) original,
b) el nuevo intervalo (g(a), g(b)) es finito
c) el nuevo integrando s(y) debe ser regular y de poco contraste.
Como ya se dijo, el cambio de variable equivale a tomar intervalos no regulares en la variable
original x. Los puntos regulares yk en la nueva variable definen puntos xk = g1 (yk ) en el eje
original.

El gran inconveniente de los metodos


con cambio de variable presentados hasta aqu es que

inversa g1 (y). Mas


adelante,
esta limitado a funciones g(x) para las cuales se conoce la funcion

en el captulo correspondiente a los metodos


Monte Carlo se podra superar este inconveniente.

Ejemplo con intervalo infinito: Consideremos

I=
0
2

Si se toma y = ex y por tanto x =

2 +x

ex

dx

ln y. La integral pasa a ser


ex
2x

I=
0

x= ln y

dy

que no es aceptable porque se obtiene un integrando divergente.


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

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

I=
0

2 +2x

ex

x= ln y

dy

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

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

Escuela de Ingeniera y Ciencias

Y CAMBIO DE VARIABLE
2.3. INTEGRACION

Derivadas e integrales numericas

Veamos como
suavizar el integrando con el ejemplo
1
1

f (x) dx

f (x) =

con

1 x2 / 2
e

y 1.

Se trata de buscar un g(x) apropiado. Puesto que g tiene que tener una forma parecida al in g con la forma de un escalon
redondeado.
tegrando f (x) es necesario encontrar una funcion
Escojamos que satisfaga g(1) = 1 y g(1) = 1. Por ejemplo, se puede tomar
g(x) =

arctan
arctan

x
a
1
a

x = g1 (y) = a tan y arctan

1
a

Se deja como ejercicio ver el a optimo


para cada valor de .
para tener integraSi el integrando tiene muchos picos se subdivide el intervalo de integracion
les con un solo pico en cada segmento y tratar cada caso segun
lo que convenga.

Encontrar un cambio de variable apropiado para calcular


40
1

2.3.2.

dx
x2 (1 + x)

Divergencias en el integrando

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

f (x) dx

I=

con f (0) =

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

x0

Para abordar este problema suele ser conveniente hacer el cambio de variable y = g(x) = x , con
> 0 porque dy = x 1 dx y
b
f (x)
I=
dy
x 1 x=y1/
0
y se debe escoger tal que
lm

f (x)

y0 x 1

sea finito

lentamente que 1/x. DefinaPero I es no divergente tan solo si f (x) diverge en el origen mas
mos , 0 < < 1, tal que
A
| f (x 0)| < 1
x
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

21

a la integral que proviene de una vecindad al origen,


Lo que intereza es la contribucion
h

Ih =

f (x)
dy
x 1 %
A
dy
1
x x 1 %

0
h

0
h
0

dy

y( )/ dy

(2.3.3)

que tiene integrando finito en todo el rango si , dando como resultado


escoger un positivo menor o igual a .

A /
.
h

Se debe

Ejemplo 1: Calcular:
1
0

x1/3
dx
sin x

x2/3

Cerca del origen el integrando es f


es decir, = 12/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
1

3
0

y3
dy
sin y3

Ejemplo 2: Para calcular


1

P(x) ln(x) dx
0

suave, basta con tomar y = x1/100 para tener un integrando F(y) suave.
donde P(x) es una funcion

Calcular

1
0

sin(x)

dx
1 x2

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

dx
(1 x)1/3 x2/3

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


h
0

dx

(1 x)1/3 x2/3

h
0

dx
= 3h1/3
x2/3

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

Escuela de Ingeniera y Ciencias


Derivadas e integrales numericas

2.4.

2.4. INTEGRAL DE PARTE PRINCIPAL

Integral de parte principal

Suele ser necesario calcular la integral


b

I=
a

f (x)
dx
x x0

con

a x0 b

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
b
a

f (x)
dx = P
x x0

b
a

f (x)
dx + i f (x0 )
x x0

donde la parte principal es


b

x0 h

f (x)
dx = lm
h=0
x x0

f (x)
dx +
x x0

f (x)
dx
x0 +h x x0

Para calcular numericamente


la parte principal se razona a partir de reescribir I en la forma
b
a

f (x)
dx =
x x0

b
a

f (x) f (x0 )
dx +
x x0

b
a

f (x0 )
dx
x x0

(2.4.1)

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


mientras que
la segunda integral es
b

I2 =

f (x0 )
dx =
x x0
=
=

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

f (x0 ) ln

(2.4.2)

Se ha aislado el termino
i f (x0 ). La labor de obtener numericamente
la parte principal consiste

en evaluar numericamente
la integral I1 utilizando algun
metodo
estandar,
para luego sumarle
0
f (x0 ) ln xbx
.
0 a

2.5.
2.1

Problemas
trapezoidal y Simp1. Tal vez sea bueno comenzar por escribir programas de integracion
son e intregrar sin cambio de variable
1

xn dx

con n = 3, 4, 5 . . .

viendo cuanto
debe valer N para tener un error de menos del 1 %.
2. Trate de obtener un error menor al 1 %.
2013
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Numericos

23

a integrar y la funcion
que resulta despues
de cada
3. Puede serle util
graficar la funcion
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 algun
truco que
permita llevarla a una integral analtica.
gamma, (x), se define como la siguiente integral
2.2 La funcion

(x) =
0

t x1 et dt

(2.5.1)

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

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

(1/2) =

(2.5.2)
(2.5.3)

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

de puntos
el metodo

(trapezoidal o Simpson), el resultado obtenido


en la discretizacion,
de integracion
y el error cometido respecto al valor analtico.

2.3 Calcule numericamente


las integrales

I (1) =
0
1

I (2) =
0

ex ln x dx

1+x
1
ln dx
1 x3 x

El problema consiste en hacer numericamente


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

(N) de veces
que sea posible. Como criterio de convergencia debe usar alguna cantidad como
err =

I IN
< 10q
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 numero

N de puntos

en la discretizacion, el metodo de integracion (trapezoidal o Simpson, nada superior), el

resultado obtenido y el error numerico


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

Escuela de Ingeniera y Ciencias


Interpolacion

2.5. PROBLEMAS

fsica. Para muchos efectos la fuerza entre atomos

2.4 Motivacion
puede ser tratada exitosamente con el potencial central, llamado de Lennard-Jones,
a
r

V = 4V0

12

a
r

(2.5.4)

cuyo valor mnimo es V0 y se anula cuando r coindice con el radio de Bohr. Una partcula
atrapada en este potencial (energa menor que cero), tiene un movimiento en el intervalo

(rmin , rmax ) donde ambos radios son mayores que a. Cuanticamente


solo hay un conjunto
p2

discreto de energas En posibles. Clasicamente


E = 2m +V (r) o equivalentemente la magnitud del momentum depende de r en la forma p(r) = 2m (E V (r)). Una forma aproximada

de plantear el problema de encontrar los valores de los niveles cuanticos


En consiste en
de Bohr-Sommerfeld
exigir la condicion
p(r)
dr = 2
h

n+

1
2

El problema
con n entero nonegativo. La integral es sobre un ciclo completo de oscilacion.
se adimensionaliza haciendo las sustituciones
r = a ,

E = V0 E ,

V0 =

2 h 2
2 a2 m

de hidrogeno
es 21,7, en el de O2 es 150.
El valor de en el caso de la molecula

integral de arriba se convierte en la exigencia que se anule la funcion

La condicion
Fn (En ) =

max
min

En 4

1
1
6
12

n+

1
2

(2.5.5)

Es decir, el problema consiste en encontrar los ceros de Fn dados = 150 y n = 0, 1, 2 con


1 < En < 0 sabiendo que

min =

2 2 n
1 n

1/6

, max =

2 + 2 n
1 n

1/6

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

En la busqueda

de los ceros debe usar el metodo


de la secante (indicando, entre otras

cosas, la tolerancia usada y cuantas


iteraciones fueron necesarias).

2013
version

Facultad de Ciencias Fsicas y Matematicas

Captulo 3

Algebra lineal, interpolacion,


recurrencias y ceros
3.1.

Temas de algebra
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 caracterstico, det(A I). Conocidos los autovalores k , se puede determinar los
de n 1 variables x(k) (A k I)x(k) donde
autovectores encontrado el cero de la funcion
(k)
(k)
(k)
x(k) x(k) = 1. Se aprecia que tanto los
x(k) = (x1 , x2 , . . . xn ) se pide que se cumpla la condicion
problemas de determinar los autovalores como encontrar los autovectores se reducen a encontrar
ceros, asunto que se estudia en 3.2.

3.1.2.

de Gauss
Eliminacion

Se parte con un sistema inicial de ecuaciones


a11 x1 + a12 x2 + ...
a21 x1 + a22 x2 + ...
...
an1 x1 + an2 x2 + ...

a1n xn = b1
a2n xn = b2
...
ann xn = bn

(3.1.1)

Este problema puede ser planteado como el de una matriz A multiplicando a un vector desconocido x tal que se obtiene un vector b:
Ax = 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
aunque el orden de ellos pueda
alteran al conjunto de valores {x j } que constituyen la solucion,
cambiar. Operaciones posibles son
intercambiar dos filas de A
25


3.1. TEMAS DE ALGEBRA
LINEAL

Interpolacion

multiplicar una fila de A por algun


numero

no nulo
sumarle a una fila, otra fila multiplicada por algun
numero

descritas.
Para resolver (3.1.1) se recurre a las operaciones recien
por a11 y luego cada una de las k-ecuaciones
Para comenzar se divide la primera ecuacion
que sigue (k = 2..n) se reemplaza ak j por ak j ak1 a1 j /a11 . El resultado es

1
0

..
0

a12 /a11
a22 a21 a12 /a11
..
an2 an1 a12 /a11

a13 /a11
a23 a21 a13 /a11
an3 an1 a13 /a11

...

a1n /a11

a2n a21 a1n /a11

ann an1 a1n /a11

x1
x2
..
..
xn

b1 /a11
b2 b1 a21 /a11
..
..
bn b1 an1 /a11

(3.1.3)

se procede de la misma manera con la submatriz de (n 1) (n 1) y as suA continuacion

cesivamente llegandose
finalmente a un sistema de la forma

1 a12 a13 ... a1n


a2n
0 1 a23
0 ..
..
.. ..
..
.. ..
.. 0 1

x1
x2
..
..
xn

b1
b2
..
..
bn

puede ser visto como el sistema


Que tambien
x1 + a12 x2 + a13 x3 + ..+ a1,n1 xn1 +
x2 +
a23 x3 + ..+ a2,n1 xn1 +
x3 + ..+
a3,n1 xn1 +
..
..
xn1 +

a1n xn
a2n xn
a3n xn
..
..
an1,n xn
xn

= b1
= b2
= b3
..
..
= bn1
= bn

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 = S1 B y el problema se ha reducido a B x = S b que es
de resolver. Una forma sencilla e ingenua de hacerlo se da en el programa de la fig. 3.1. Mas

facil
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 simple, puede ser muy inexacto e incluso inestable. Si se
considera los casos

x
x
20
24
0 3 2
1 3 2
5 0 1 y = 27
5 0 1 y = 27
(3.1.4)
1 1 0
1 1 0
z
z
6
6
el programa en fig. 3.1 da en forma precisa el resultado (x = 4, y = 2, z = 7) en el primer ejemplo,
adelante veremos un metodo

pero no funciona en el segundo caso. Mas


que resuelve ambos.
2013
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Numericos

27

de este sistema da trivialmente el resultado analtico


Si la matriz A es no singular la resolucion

del problema. Si se hace numericamente


hay que hacer algunas consideraciones.

El metodo
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 incontrolables. Lo mismo puede decirse si
o, en general, el primer coeficiente de la primera ecuacion,

a22 a22 a21 a12 /a11 es muy pequeno


Tambien
hay que resolver el caso en que ese primer
de lo que va quedando, es muy pequeno.
de lo que va quedando es nulo.
coeficiente de la primera ecuacion
de esto es el metodo

Una importante refinacion


de Gauss con pivoteo que, sin embargo, no
se vera aqu. Lo esencial es que se debe permutar filas o columnas de modo de logar que los uii
grandes posible.
por los que se va dividiendo sean lo mas
Esto se logra con una matriz de per P. Una matriz de permutacion
de
mutacion
n n tiene ceros excepto que tiene un y // rutina basica que usa el
solo un elemento 1 en cada fila y en cada // metodo de Gauss
void Despejando()
columna, por ejemplo
{ for(k=0; k<n-1; k++)

{ for(i=k+1; i<n; i++)


0 0 1

{ p = a[i][k]/a[k][k];
(3.1.5)
P=
1 0 0
for(j=k; j<n+1; j++)
0 1 0
a[i][j] = a[i][j] - p*a[k][j];
de n
Existen n! matrices de permutacion
}
n.
}
x[n-1] = a[n-1][n]/a[n-1][n-1];
Se trabaja con matrices cuadradas,
for(i=n-2; i>=0; i--)

reales simetricas
o hermticas. La nota{ s = 0;
es
cion
for(j=i+1; j<n; j++)

a11 a12 a13 a14


{ s += (a[i][j] * x[j]);
a21 a22 a23 a24
x[i] = (a[i][n] - s)/a[i][i];

A=
a31 a32 a33 a34
}
a41 a42 a43 a44
}
}
Ella puede multiplicar un vector colum ingenua del metodo

Figura 3.1: Version


de Gauss
na en la forma A x. El asunto es tener un

metodo
para resolver
Ax = b
(3.1.6)
el cual se puede plantear como el sistema de ecuaciones lineales
a11 x1 + a12 x2 + ..
a1N xN
a21 x1 + a22 x2 + ..
a2N xN
..
..
..
..
..
..
..
..
aN1 x1 + aN2 x2 + ..
aNN xN

= b1
= b2
= ..
= ..
= bN

(3.1.7)

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
Universidad de Chile

Escuela de Ingeniera y Ciencias


3.1. TEMAS DE ALGEBRA
LINEAL

Interpolacion

SistemaTriangular.c
// Se trata de resolver M x = b reduciendo el problema a uno triangular
#include <stdio.h>
#include <math.h>
#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++)
Ap[jm][j] = A[jm][j]/A11; //se divide la linea jm por A[0][0]
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: Conversion de un sistema lineal de ecuaciones en uno triangular.

2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

29

triangular de ecuaciones: la primera tiene todas las variables, la segunda tiene desde x2 en adelante y la ultima

tiene tan solo a xN . Se llamara bi j a los coeficientes de este sistema triangular.


con la cual
Una vez que se tiene tal sistema se despeja trivialmente xN de la ultima

ecuacion,
ahora se puede despejar xN1 de la penultima

etc.
descrito no puede ser usado en forma directa porque
En general el procedimiento recien
o incluso por cero. Es necesario
puede ocurrir que implique dividir por un numero

muy pequeno
minimice el
usar un procedimiento que no tan solo no acarree tales riesgos sino que ademas
error.
El procedimiento consiste en intercambiar filas y columnas de tal modo que se minimice los

errores. El codigo
en la fig. 3.3 ilustra esta idea.
no trivial:
Ejemplo con permutacion

0
2
A=
0
3

3.1.3.

1
3
0
1

1
1
0
0

3
0
1
4
= PLU =
0
1
0
0

1
0
0
0

0
0
0
1

1
0
0
0

1 23
0
0

0
1
11
2

0
0
1
0

2
0
0
0

0 0
1
0

3
1
0
0

1
1
4
0

4
3

45
2
1

(3.1.8)

Metodo
del gradiente conjugado

Se desea resolver el sistema lineal de ecuaciones


Ax = b

(3.1.9)

donde A es una matriz real, simetrica


(AT = A), positiva definida, esto es, satisface: x Ax > 0 ,
del problema se denota x .
para todo x real no nulo. La unica

solucion
dos vectores u y v son conjugados si
Por definicion
u Av = 0

(3.1.10)

(r, s) r As

(3.1.11)

Si se define el producto escalar


(3.1.10) expresa que u y v son ortogonales.
la relacion

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


(e j , ek ) = constate jk

(3.1.12)

Ellos constituyen una base en ortonormalen el sentido de (3.1.11)en Rn . Con esta base se

plantea la expansion
x = k ek
(3.1.13)
k

(3.1.9) es
La ecuacion
b = Ax = k Aek
k

e j b = e j Ax = k e j Aek = j e j Ae j = j (e j e j )

(3.1.14)

Por lo tanto

j =
Universidad de Chile

ej b
e j Ae j

(3.1.15)
Escuela de Ingeniera y Ciencias


3.1. TEMAS DE ALGEBRA
LINEAL

Interpolacion

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 de cada columna
{ pe1 = 0;
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)
{ pj = a[indc[i]][j]/a[indc[j]][j];
a[indc[i]][j] = pj; //guarda cuocientes de reord bajo la diagonal
for(k = j+1; k < N; ++k) //Por consistencia 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: Codigo en C para aplicar el metodo de eliminacion de Gauss.

2013
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Numericos

31

El metodo
de gradiente conjugado consiste en buscar el vector x tal que
1
f (x ) = x Ax x b
2

(3.1.16)

sea mnimo, con x Rn . Un poderoso metodo


para encontrar los ceros de funciones f (x ) que
complicadas se describe en 3.2.6.
pueden tener formas mucho mas

El metodo
actual consiste en generar una secuencia de vectores xa con a = 0, 1, ... para los
del problema.
que f (xa ) es cada vez menor. Es obvio que f es mnima en el punto x , solucion
Notemos que
x f = Ax b

(3.1.17)

Escogiendo nulo el primer termino


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 metodo.
Definiendo
ra = b Axa = f (xa )

(3.1.18)

ec Ark
ec
ck ec Aec

(3.1.19)

se puede deducir que


ek+1 = rk

El siguiente x optimo
es
xk+1 = xk + k+1 ek+1

(3.1.20)

Un esquema de codigo
que hace todo lo anterior comienza inicializando a partir de un vector
adivinado x0 :
r0 = b Ax0
p0 = r0
r0 r0
(3.1.21)
0 =
p0 Ap0
x1

= x0 + 0 p0

desde k = 0 hasta que converja


para luego hacer una iteracion
rk+1

k
pk+1

k+1
xk+2

= rk k Apk
rk+1 rk+1
=
rk rk
= rk+1 + k pk
rk+1 rk+1
=
pk+1 Apk+1

(3.1.22)

= xk+1 + k+1 pk+1

No esta garantizado que siempre converja.


Universidad de Chile

Escuela de Ingeniera y Ciencias


Interpolacion

3.2.

3.2. RECURRENCIAS, PUNTOS FIJOS Y CEROS

Recurrencias, puntos fijos y ceros

Muchos metodos
numericos
hacen uso de metodos
iterativos. Es interesante entonces saber

decidir cuando
estos metodos
son estables y bajo que condiciones convergen. Una sucesiones
complicado. Un caso clasi
puede ser convergente, divergente o tener algun
comportamiento mas
co es el mapa logstico
xn+1 = A xn (1 xn ) ,
con
0<A4
(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)

|g (x )|

de donde se concluye que si


< 1 la iteracion
converge hacia el punto fijo, lo que se conoce como
se
estabilidad lineal del punto fijo x de g(x). Tambien
dice que x es un atractor, ya que los puntos cerca (3.2.2), hacia x .
nos son atraidos, via la iteracion
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

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);}
}
Figura 3.4: Los puntos x1 y x2 se separan hasta
detectar que en ellos f (x) tiene distinto signo.
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);

Figura 3.5: Codigo


para acercar los puntos manteniendo que f (x1 ) f (x2 ) < 0.

es el mismo en
La idea es seleccionar dos puntos x1 y x2 , (x1 < x2 ). Si el signo de la funcion
de estos puntos hasta que f1 f2 < 0.
ambos puntos variar la posicion
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

33

Si se ha escogido dos semillas cercanas, entonces se procede a alejar las dos semillas, si son

consideraremos el primer caso.


semillas muy distantes se busca ir acercandolas.
Solo
Si se tiene que f1 f2 > 0, se escoge > 1 y se procede en la forma que se bosqueja en fig. 3.4.
tiene distinto
La rutina en fig. 3.4 termina cuando se tiene puntos en los cuales la funcion
se procede a acercar los dos puntos bajo la condicion
que
signo, esto es f1 f2 < 0. A continuacion

la funcion en todo momento tenga signo distinto. Esto se denomina encajonar. Existen diversas
eficienteconsiste en
estrategias para encajonar. Un forma muy sencillaaunque no es la mas

usar un codigo
como el que se indica en la fig. 3.5.

3.2.4.

Metodo
de Newton y de la secante

Una forma de buscaren forma que suele ser precisa y rapidalos


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

f (x)
f (x)

(3.2.4)

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


comprobar que g (x0 ) = 0, que implica que x0 es punto fijo

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


de Newton para obtener ceros.
Suele ocurrir que se necesite conocer la ubi precisa de los ceros de una funcion
decacion
masiado complicada para poder tener una forma void cero(double xs)
{ double cn;
analtica para f (x). Esto impide poder hacer uso
xp = xs + 1e-2;

de (3.2.4). Existe un metodo


inspirado en el anfs = f(xs);
de programar y normalmente
terior que es facil
fp = f(xp);

de convergencia muy rapida.


En lugar de (3.2.4)
do
{xa = (xs*fp - xp*fs)/(fp-fs);
se usa
fn
fs = fp;
xn+1 = xn fn fn1
xn xn1

que se simplifica a
xn+1 =

xn1 fn xn fn1
fn fn1

(3.2.5)

xs = xp;
fp = f(xa);//notar que f es llaxp = xa;
//mada una sola vez
cn = fabs(xp-xs);
printf("%14.11f %14.11f\n",xp,fp);
}while(cn>tolerancia muy chica);

y que se conoce como el metodo


de la secante main()/*****************/
{ printf("semilla=");
y estrictamente corresponde a xn+1 = g(xn , xn1 ).
scanf("%lf",&xs);//espera dato
Un buen programa no debiera producir
cero(xs);
//por teclado
}
un mensaje de error. En el caso de arrijamas

ba, fig. 3.6 no se ha precavido el caso en que


el denominador fn fn1 pueda anularse. Tam- Figura 3.6: Version
sencilla para usar metodo

de la

poco se ha previsto la posibilidad de que jamas


que se ha puesto es
secante. Notar que la instruccion
se logre convergencia de la secuencia. Convie- printf("semilla"); y no printf("semilla\n");
ne poner un contador que no permita que se sobrepase algun numero

de iteraciones.
Universidad de Chile

Escuela de Ingeniera y Ciencias


Interpolacion

3.2. RECURRENCIAS, PUNTOS FIJOS Y CEROS

estable
Los autores del siguiente algoritmo, publicado en 2007, afirman que es mucho mas

que el metodo
de la secante1 :
xn+1 = xn1
=

xn1 fn1
fn1
fn1 + xn1 xfnn
xn1

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

(3.2.6)
(3.2.7)

Determine todos los ceros reales de Pa = x5 3x4 2x2 + 11x 1 y de Pb = 16x5 168x4 + 657x3 1161x2 +
891x 243 usando los algoritmos descritos.

3.2.5.

de una variable
Puntos fijos con mas

de recurrencia
Lo anterior se puede generalizar al caso de N variables planteando la relacion
x = g(x )

(3.2.8)

Si x0 es punto fijo de g entonces


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

(3.2.9)

explcita es
donde el ultimo

termino
en forma mas

gi
xj

x0

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 = eak +ibk
son tales que todos los ak son positivos.

3.2.6.

Metodo
de la secante en varias variables

Se desea encontrar los ceros de

1 C.

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

(3.2.11)

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

2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

35

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

simultaneamente.

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

(3.2.12)

Fi
x j de F. En efecto, el lado izquierdo se
g(r0 ) + . El correspondiente lado derecho es r0
1

donde J es el Jacobiano

escribe en torno a un cero

el producto de las
de F: g(r0 + )
+ mas
de este ultimo
J0 , donde el
expansiones de J y de F. Pero la expansion

es F(r0 ) = 0 mas
ndice cero indica que el Jacobiano es evaluado en r0 . Siendo J0 una cantidad de primer orden,
no es necesario expandir el factor J1 (r ) sino que basta con tomar sencillamente J1
. Con todo
0
lo anterior se ve que a primer orden, el lado derecho de (3.2.12) se anula: el Jacobiano J de la
g(r ) evaluado en los ceros de F (no confundirlo con J que es el Jaconbiano de F) tiene
funcion
autovalores nulos. Esto garantiza que los ceros de F se comportan como puntos fijos estables de
la recurrencia que define (3.2.12).
En el caso de dos funciones F1 y F2 en las variables x e y se tiene
J=

F1
x
F2
x

F1
y
F2
y

det(J) =

&

J1 =

F2
y
Fx2

Fy1
F1
x

El metodo
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
xj xj 1

-esima.

se ha
donde el ndice se refiere a la iteracion
Para no hacer muy pesada la notacion,
usado como argumento de Fi solamente la variable x j que se esta cambiando.
Ejercicio:

Estudie numericamente
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.

Metodos
de interpolacion

que
A partir de un conjunto de N pares, o datos, {xk , yk }Nk=1 y se desea encontrar una funcion
continua f (x). Hay diversos metodos

se
describa estos como una funcion
que a continuacion
separan en dos grupos. En el primer grupo siempre se cumple que f (xk ) = yk , mientras que en el
segundo f (xk ) yk .

3.3.1.

Interpolaciones leales

f (x) que satisface


Estos son metodos
que definen una funcion
f (xk ) = yk
Universidad de Chile

para todo k
Escuela de Ingeniera y Ciencias

3.3. METODOS
DE INTERPOLACION

Interpolacion

lineal
3.3.1.1. Interpolacion

En este metodo
se define una recta entre puntos consecutivos
f (xk x xk+1 ) = yk +

yk+1 yk
(x xk )
xk+1 xk

(3.3.1)

Se puede generalizar este metodo


usando tres puntos (xk1 , xk , xk+1 ) y definir una curva cuadratica
se puede usar mas
puntos, pero el metodo

que pase por estos tres puntos. Tambien


se deteriora
porque resultan expresiones que contienen oscilaciones.
de Lagrange
3.3.1.2. Interpolacion

Este metodo
consiste en construir un polinomio P(x) asociado a un conjunto de N pares de
valores {(x1 , y1 ), ...(xN , yN )}. Se define los N polinomios de orden N 1
(N)

p j (x)

x xk
,
k=1,,k= j x j xk

j = 1,...N

(3.3.2)

es
que satisfacen (N) p j (x j ) = 1 con lo cual la interpolacion
N

P(x) =

(N) p j (x)

(3.3.3)

yj

j=1

que pasa sobre los N puntos de partida (xk , yk ), k = 1, ..N. Este metodo
es particularmente util

cuando se trata de pocos puntos.


En el caso N = 4 se debe definir los cuatro polinomios cubicos

(4)

p1 =

(x x2 )(x x3 )(x x4 )
,
(x1 x2 )(x1 x3 )(x1 x4 )

(4)

p3 =

(x x1 )(x x2 )(x x4 )
,
(x3 x1 )(x3 x2 )(x3 x4 )

(4)

p2 =

(x x1 )(x x3 )(x x4 )
,
(x2 x1 )(x2 x3 )(x2 x4 )

(4)

p4 =

(x x1 )(x x2 )(x x3 )
.
(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

polinomial para sin x


e yk = sin xk , el metodo
anterior para P, usando (3.3.3), da la expresion
sin x 1,207506817 x 0,355642612 x2 0,0103932197 x3
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.
de empalme (spline) cubico
3.3.1.3. La aproximacion

Dados los N datos (xi , yi ), i = 1 . . . , N, se define N 1 funciones polinomiales de orden 3 3


fk (x) = yk + ck1 (x xk ) + ck2 (x xk )2 + ck3 (x xk )3 ,
2013
version

xk x xk+1 ,

k = 0, . . . N 1

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

37

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

d fk1
dx

d 2 fk1
dx2

xk

=
xk

N 1 ecuaciones

d fk
dx

N 2 ecuaciones

xk

d 2 fk
dx2

(3.3.4)

N 2 ecuaciones

xk

lo que da un total de 3N 5 ecuaciones. Al agregar condiciones

se tiene las 3N 3 ecuaciones necesarias.

d 2 f0
dx2 x
0

=0

d 2 fN1
dx2 x
N

=0

Este metodo
se denomina spline cubico

porque se escoge polinomios cubicos.

La palabra

calculada en
spline debe entenderse como empalme: el metodo
busca empalmar la funcion
y sus dos primeras derivadas.
cada intervalo (xk , xk+1 ) exigiendo continuidad de la funcion

Los coeficientes se resuelven como un sistema lineal de 3N ecuaciones y debe usarse algunos

de los metodos
ya descritos.

3.3.2.

Metodos
de ajuste suavizado

suave que satisfaga


Son metodos
que buscan una funcion
f (xk ) yk
3.3.2.1. Mnimos cuadrados
Usando polinomios simples. El objetivo es, dada una lista de valores yk asociados a puntos
f (x, { }) tal que
dados xk con k = 1, . . . , N, ajustar una funcion
S=

k=1

k=1

rk2 (yk f (xk , { }))2

(3.3.5)

que se debe ajustar.


tenga un valor mnimo, donde { } representa un conjunto de m parametros
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
s
k

s = 1, . . . , m

(3.3.6)

La forma estandar
de abordar este problema consiste en dar una dependencia lineal en los a
las f , del tipo
(3.3.7)
f (xk , ) = s s (xk )
s

Universidad de Chile

Escuela de Ingeniera y Ciencias

3.3. METODOS
DE INTERPOLACION

Interpolacion

Si se define

f (xi , )
= s (xi )
s
dados por
Aca no se demostrara que los estan
Xis =

= XT X

(3.3.8)

XT 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

Notese
que se ha escogido 1 = 1, 2 = x, 3 = x2 y 4 = x3 . Evaluado para los cuatro valores de

en los .
xk , de modo que cada rk = yk f (xk , { }) sea lineal en los y por esto S es cuadratico
Las ecuaciones S/ s = 0 son lineales en los y triviales de resolver. En el presente ejemplo se
obtiene

1 = 1,416666667 109 ,

2 = 1,207506832 ,

3 = 0,3556426262 ,

4 = 0,01039321669

seno queda aproximada por


con lo cual la funcion
sin x 1,416666667 109 + 1,207506832 x 0,3556426262 x2 0,01039321669x3
obtenida antes.
que coincide con la solucion

3.3.2.2. Ajuste no parametrico

Si se tiene datos tipo experimentales {xi , yi }Ni=1 y se desea un ajuste sin parametros
se plantea
que represente algun
definir una funcion
tipo de promedio de los puntos vecinos. Para ello se
K(x) que debe cumplir
define una funcion
1. K es finita
2.

K es finita

3. preferentemente que tenga suporte finito

4. rapida
de evaluar
5. continua y de derivada continua
para definir
f (x) =

i yi K(x xi )
i K(x xi )

(3.3.10)

de Gauss no es una buena eleccion


porque tiene soporte infinito.
Notese
que la distribucion
escalon
porque no es diferenciable.
Tampoco resulta una funcion
es
Una posible eleccion
K(x) =

(a2 x2 )2
0

si |x| a

Con este metodo


se puede evaluar en cualquier punto x dentro del rango cubierto por los
datos, pero no es sensato intentar extrapolar.
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

3.3.3.

39

mediante el aproximante de Pade


Interpolacion

apropiada,
Algunas funciones no pueden ser expresadas en forma polinomial con precision
en serie truncada,
como es el caso de una expansion
S

f (x)

cn xn ,

donde

cn =

n=0

f (n) (0)
n!

(3.3.11)

como una funcion


racional, esto es, el
Lo que puede resultar muy efectivo es aproximar la funcion
cuociente de dos polinomios,
f (x) RM,N (x) =

i
M
i=0 ni x
1 + Nj=1 d j x j

(3.3.12)

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 ecuaciones

en serie de RM,N (x)


para igual numero

de incognitas.
En otras palabras, se exige que la expancion
de f (x) hasta la misma potencia.
hasta potencia M + N coincida con la expansion
Por ejemplo
f=

1 x2
sin x
1 + x2

tiene un desarrollo en serie


f x

13 3 281 5 2369 7 852913 9 93820541 11


x +
x
x +
x
x + ...
6
120
1008
362880
39916800

de Pade
que diverge rapidamente,
mientras que la aproximacion
f

x 1,009135886x3

1 + 1,157530781x2 + 0,1663166920x4

en un rango mas
amplio. Puede comparepresenta a la funcion
con
rarse ademas
f

x
1+

13 2
847 4
35899 6
6 x + 360 x + 15120 x

Figura 3.7: De estas tres curvas,


la que esta bajo todas corresponde
a la que es el cuociente de un poli
nomio cubico

sobre uno cuartico,


la
exacta y la
del medio es la funcion
que esta sobre todas es de primer
orden en el numerador y de orden 6
en el denominador. La serie misma

diverge a muy rapido.

se podra intertar, por ejemplo, un polinomio cuartico

Tambien
dividido por uno cubico.

En general para obtener los coeficiente de Pade se debe resolver un sistema lineal de ecua

ciones, metodos
quecomo se ha visto-si no son bien tratados, podran dar poca precision.

LU posiblemente seguido por


Se sabe que por lo menos se debe usar el metodo
de factorizacion

algun
metodo
iterativo que mejore la precision.
Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

3.4.

3.4. PROBLEMAS

Problemas

3.1 Haga un programa utilizando el metodo


de gradiente conjugado que resuelva el sistema con

seis incognitas
xk : A x = b donde

A=

4
1
2
3
2
2

1
3
2
1
0
1

2
2
1
3
1
3

3
1
3
5
2
1

2
0
1
2
1
2

2
1
3
1
2
5

b=

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

26
21
38
40
26
35

3.2 (a) Se trata de probar el metodo


de ajuste no parametrico
que se define en 3.3.2.2 a partir
Ka (x) con soporte en a x a que tenga forma de campana anulandose

de una funcion
en los puntos extremos. 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.
compare los seis ajustes anteriores con el interpolacion
de Lagrange FL . Cuan

(b) Ademas

suave es esta interpolacion?


Si fuese interesante incluya un detalle (un zoom) que muestre
zona de la interpolacion
y los puntos dados.
una pequena
(c) Para cada uno de estas F y de FL obtenga la suma S = N1 k (yk F(xk ))2 . Un buen ajuste
como sea posible. Comente.
debe ser suave y tener un S tan pequeno
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 rutinas diferentes para buscar ceros: metodo


de Newton, de

la secante, algun
metodo
de encajonamiento. Aleatoriammente el programa debe 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 que cero de P obtuvo y

cuantas
iteraciones fueron necesarias en cada caso. Es muy importante que cada una de las
rutinas que buscan ceros tengan un lmite al numero

de iteraciones que hace (por ejemplo,


de 50 iteraciones). Su informe debe tener una tabla con columnas que den la
no hacer mas
semilla, el algoritmo, la raz obtenida y el numero

de iteraciones; puede decir ninguna ya


que un algoritmo puede fallar con algunas semillas. En C el generador de semillas puede
ser: semilla = -3.0 + 6.0*drand48();

(b) Usando el algoritmo visto en clases encuentre los ceros simultaneos


de F1 (x, y) = x4 +
4
3
3
y 10 y F2 (x, y) = x y x y 0,5 y 2,0. Esto es, debe encontrar pares p j = (x j , y j ) en los

cuales ambas funciones son nulas. Indique cuantas


iteraciones fueron necesarias en cada
caso.

2013
version

Facultad de Ciencias Fsicas y Matematicas

Captulo 4

Ecuaciones diferenciales ordinarias


4.1.

a ecuaciones de primer orden


Reduccion

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

con condiciones inicial

(4.1.1)

puede ser replanteado en la forma


dy
= f ( , y)
d

con condiciones iniciales

(4.1.2)

donde
y=
es decir

g
y2

dg
= y2 ,
d

f=

y2
F

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

(4.1.3)

(4.1.4)

Se puede adivinar de lo anterior que siempre se puede reducir un problema de ecuaciones diferenciales ordinarias de orden mayor a uno a un sistema de ecuaciones de primer orden.
Por ejemplo x = m1 F puede plantearse definiendo
y=

x
v

f=

v
1
mF

(4.1.5)

con lo que el problema consiste en resolver el sistema


dv
1
= F
dt
m

dx
= v,
dt

se vera una serie de metodos

A continuacion
para abordar (4.1.2).
41

(4.1.6)

A ECUACIONES DE PRIMER ORDEN


4.1. REDUCCION

Ecuaciones Difrenreciales Ordinarias

4.1.1.

Metodo
directo simple (de Euler)

Este metodo
consiste en plantear (4.1.2) en la forma
yn+1 =

yn+1 yn
O
h

h
y
2

= fn

y de aqu definir la recurrencia


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

(4.1.7)

podra consistir en aproximar y (yn+1


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

(4.1.8)

pero ambas recurrencias sufren del mismo problema de estabilidad.


exacta del problema discreto. Se define n tal que
Estabilidad de (4.1.8): Sea y la solucion
yn = yn + n con lo cual (4.1.8) pasa a ser
yn+1 + n+1 = yn1 + n1 + 2h f (n , yn + n )
= yn1 + n1 + 2h
de donde

n+1 = n1 + 2h

f (n , yn ) +

f (n , yn )
n
y

f (n , yn )
n
y

(4.1.9)

(4.1.10)

que da la forma como se propaga el error. Si la funcion


f no es muy sensible
que es la ecuacion
a y se puede razonar suponiendo que es constante y en tal caso se trabaja con n+1 = n1 + 2 n .
se puede resolver suponiendo que
Esta ultima

ecuacion

n = 0 n
porque (4.1.10) se recuce a 2 2 1 = 0 que da las raices =

n = A +n + B n

1 + 2 y entonces
(4.1.11)

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

Si < 0 se obtiene = | | 1 + 2 y < 1 y n crece con n cambiando de signo. La


numerica

y con amplitud creciente.


solucion
que se obtiene va oscilando en torno a la solucion

Es decir, el metodo
es incondicionalmente inestable y no sirve.

4.1.2.

Metodo
implcito

(4.1.2) se plantea
La ecuacion
dy
d
2013
version

n+ 21

= f n+ 1 , yn+ 1
2

(4.1.12)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

43

El lado izquierdo se reescribe como


yn+ 1 + 1 yn+ 1 1
2

h
2

+ O(h2 ) =

yn+1 yn
h

(4.1.13)

y el lado derecho se reemplaza por el promedio de los valores en n y en n + 1, 12 [ fn + fn+1 ] con lo


cual resulta
h
yn+1 = yn + ( fn + fn+1 ) + O(h3 )
(4.1.14)
2

se debe buscar
La incognita,
yn+1 aparece en ambos lados, por tanto, en cada paso de iteracion

el cero de la funcion
h
G(z) = z yn [ f (n , yn ) + f (n + h, z)]
2

Estabilidad del metodo


implcito:
se plantea

En forma analoga
a como se procedio en el caso anterior

h
yn+1 + n+1 = yn + n + ( f (n , yn + n ) + f (n+1 , yn+1 + n+1 )
2
Expandiendo y trabajando un par de pasos se obtiene que
h
n+1 = n + (y fn n + y fn+1 n+1 )
2

(4.1.15)

(4.1.16)

alto orden. Entonces


El ultimo

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


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

(4.1.17)

anterior. Si es negativo el error


Lo crucial es el signo del parentesis
redondo en la expresion
decrece.
es creciente, el error crece
Como se ve, lo que importa es el signo de dy/d . Si la funcion

decrece el error
(aunque puede que porcentualmente crezca menos que la funcion) y si la funcion

decrece. El metodo
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


dy
= f ( , y)
d
y(0) = y0
Y se usa dos expansiones de Taylor,
h2
yn + O(h3 )
2
h
yn+ 1 = yn + yn + O(h2 )
2
2

yn+1 = yn + h yn +

Universidad de Chile

(4.1.18)
(4.1.19)
Escuela de Ingeniera y Ciencias

A ECUACIONES DE PRIMER ORDEN


4.1. REDUCCION

Ecuaciones Difrenreciales Ordinarias

De la ultima,

multiplicada por h, se obtiene


h2
yn = yn+ 1 yn h + O(h3 )
2
2

(4.1.20)

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

(4.1.21)

en (4.1.18) se cancelan las primeras derivadas y se obtiene


Al reemplazar esta expresion
h
h
yn+1 = yn + h f (n + , yn + fn )
2
2

(4.1.22)

Este resultado final conocido como RK2, tradicionalmente se reescribe en la forma


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

RK2

(4.1.23)

Este metodo
es explcito, el error es orden h3 y puede hacerse estable. La desventaja es que la
f debe ser llamada dos veces en cada iteracion.
Otra ventaja es que, puesto que avanza
funcion
anterior, se puede ir ajustando el paso h a medida que
paso a paso y no requiere de informacion

se avanza en la integracion.
alto orden.
Siguiendo un camino semejante se obtiene algoritmos de mas
RK3:
k1 = h f (n , yn )
1
h
k2 = h f (n + , yn + k1 )
2
2
k3 = h f (n + h, yn k1 + 2k2 )
1
yn+1 = yn +
k1 + 4k2 + k3 + O(h4 )
6

(4.1.24)

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

(4.1.25)

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


2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

45

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

Sobre el paso variable. Para que el metodo


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

4.1.4.

Estabilidad de RK4 en el caso y = y

particular que se quiera tratar, pero la tendencia


Un analisis
completo de estabilidad depende de la ecuacion
puede sondearse estudiando lo que ocurre en el caso de la sencilla ecuacion

general de cada esquema de integracion


la estabilidad de RK4. Calcularemos los ka y finalmente
y = y. En lo que sigue se estudiara para esta ecuacion
para yn+1 dada en (4.1.25). En las expresiones de los ka se reemplaza f por multiplicando al
usaremos la expresion

segundo argumento de f que, genericamente


es y, obtieniendose
k1

k2

k3

=
=

k4

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

yn

yn

(4.1.26)

para yn+1 y escribiendo yn+1 = yn+1 + n+1 y similarmente yn = yn + n


Al reemplazar estos valores en la expresion
exacta de la ecuacion
discreta, se obtiene que
(donde los y son la solucion
(h )2 (h )3 (h )4
n+1
+
+
= 1 + h +
n
2
6
24

(4.1.27)

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 esta garantizada con 0 < h < 2,7853, que da un amplio margen para tener una
absolutamente estable aun cuando, si h no es pequeno,
la solucion
va a ser posiblemente poco confiable.
ecuacion

de estabilidad integrando en la direccion


opuesta,
Si > 0 se puede superar la limitacion
final y, por cierto no se llega a la
esto es, usando h < 0. Se comienza desde una condicion
inicial que se da como dato. Por lo que debe volver a integrarse con otra condicion

condicion

final escogiendola
usando una rutina de Newton apropiada.

4.2.
4.2.1.

Integradores multipaso

Presentacion

generica

Nuevamente considerese
la ecuacion
y = f ( , y)
Universidad de Chile

(4.2.1)
Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

4.2. INTEGRADORES MULTIPASO

Al integrarla entre n y n+1 se obtiene


yn+1 yn =

n+1
n

f ( , y( )) d

(4.2.2)

G ( )

El integrando sera denotado G ( ) y debe tenerse presente que es un valor de y = f .


inicial: y0 = y(0 ). Puesto que f ( , y)
En este tipo de algoritmo debe tenerse una condicion
conocida, entonces de (4.2.1) se tiene tambien
y (0). El valor y1 = y(0 + h) se
es una funcion
de bajo orden, por medio de y1 y0 + h y (0). Si
puede obtener, al menos en una aproximacion
puntos iniciales (por ejemplo y0 , y1 , y2 ), estos algoritmos deben obtener esos
se necesitara mas
primeros valores con alguna estrategia diferente como puede ser RK4 con paso suficientemente
fino.
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

se basan en la prediccion
del valor de F en
Los metodos
AB1 que se discuten a continuacion
valores anteriores: Gn , Gn1 . . .
el intervalo que se requiere en (4.2.2) usando como informacion
sea valida

que G ( ) = a + b y que exige que tal expresion


en
Si se toma como aproximacion
= n1 y en = n se obtiene
+ n
n1
Gn1 +
Gn + O(h2 )
(4.2.3)
h
h
anterior al intervalo siguiente, en el
se puede hacer la
Si se extiende la validez de la expresion
integral
n+1
3
1
G d = h
Gn Gn1 + O(h2 )
(4.2.4)
2
2
n
G ( ) =

Es decir, se usa el conocimiento de G en (n1 , n ) para extrapolar al intervalo (n , n+1 ) y hacer la


descrita. Esta extrapolacion
conduce al integrador AB3,
integral recien
h
(3 Gn Gn1 ) + O(h3 )
AB3
(4.2.5)
2
como una forma de predecir el comportamiento de
Claramente aca se ha usado la extrapolacion

la funcion.
yn+1 = yn +

versiones mas
precisas. En la que sigue se aproxima G = a 2 + b + c y los
A continuacion,
coeficientes (a, b, c) se determinan exigiendo que den los valores Gn2 , Gn1 y Gn . Una vez que

se tiene tales coeficientes se tiene una forma cuadratica


para F que se integra en el intervalo
(n , n+1 ). Finalmente se obtiene:
yn+1 = yn +
1 John

2013
version

h
(23Gn 16Gn1 + 5Gn2 ) + O(h4 )
12

AB4

(4.2.6)

Couch Adams (1819-1892)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

47

Figura 4.1: En el ejemplo de arriba se usa AB3 y AM3 para integrar la ecuacion de un pendulo simple
En forma semejante pero ahora tomando en cuenta Gn3 , Gn2 , Gn1 y Gn se obtiene:
yn+1 = yn +

h
(55Gn 59Gn1 + 37Gn2 9Gn3 ) + O(h5 )
24

AB5

(4.2.7)

y rapidos

Estos son metodos


explcitos de alto orden (error pequeno)
porque 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
G ( ) =

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

que permite obtener que la integral de la derecha sea


n+1
n

G ( ) d =

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

por lo cual
h
yn+1 = yn + (Gn + Gn+1 ) + O(h3 )
2

AM3

(4.2.8)

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

que pasa por los


AM4: Esta vez f ( ) en el intervalo (n, n + 1) se aproxima con una parabola
valores Gn1 , Gn y Gn+1 y se obtiene
I=

h
(5Gn+1 + 8Gn Gn1 ) + O(h4 )
12

y entonces
yn+1 = yn +
Universidad de Chile

h
(5Gn+1 + 8Gn Gn1 ) + O(h4 )
12

AM4

(4.2.9)

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

4.2. INTEGRADORES MULTIPASO

AM5: En forma analoga


que en el caso anterior pero usando un polinomio cubico

con la infor de (n 2, n 1, n, n + 1) y se obtiene


macion
yn+1 = yn +

h
(9Gn+1 + 19Gn 5Gn1 + Gn2 ) + O(h5 )
24

AM5

(4.2.10)

Puesto que estos metodos


son implcitos se debe determinar un cero con metodos
como el de la
secante y eso conlleva un riesgo. Pero en 4.2.4 se muestra una variante muy exitosa.

4.2.4.

Metodo
predictor-corrector

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

p: Primero se predice yn+1 = yn1 + 2 h Gn .


obtenido de yn+1 se evalua Gn+1
e: Con el valor recien
c: El valor de yn+1 se corrije calculando yn+1 = yn + 2h (Gn + Gn+1 )

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

de puntos anteriores;
P: Usando AB se obtiene yn+1 a partir de la informacion
(E)

E: el ultimo

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


(E)

(C)

C: el ultimo

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

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


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

que hace uso de la funcion


que se esta resolviendo.
ecuacion
como se muestra
En lugar los algoritmos AM y BM se podra otros algoritmos de integracion
en los que sigue.

4.2.5.

Predictor-corrector de Beeman para las ecuaciones de Newton

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
rn+1 = rn + vn +
vn+1 = vn +
2013
version

2
1
fn fn1 2
3
6

1
3 fn fn1
2

(4.2.11)
(4.2.12)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

49

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:
vn+1 = vn +

4.2.6.

5
2
1
fn+1 + fn
fn1
12
3
12

(4.2.13)

Predictor-corrector de Gear

sencilla de esta estrategia predictor-corrector para la ecuacion


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

rn+1 = rn + h vn +
hvn+1 =
h2
2

hvn + 2

h2
h3
an + 3 bn
2
6
h2

an+1 =

h3
bn
6

an + 3

h3
bn+1 =
6

h3
6

(4.2.14)

bn

h6
bn
6

Con los actuales valores en rn+1 y vn+1 se puede calcular un valor corregido acn+1 , lo que define
un error
h2 c
n+1 =
a an+1
2 n+1
de movimiento es en el calculo

El unico

lugar donde interviene el lado derecho de la ecuacion


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
an+1 = an+1 + c2 n+1
2
2

(4.2.15)

h3
h3
bn+1 = bn+1 + c3 n+1
6
6

C.W. Gear (en trabajos de 1966 y 1971) determino los valores optimos
para los coeficientes c j
que se resuelve es de primer orden
en diversos casos. Dependen, por ejemplo, de si la ecuacion
depende del orden
(como las ecuaciones de Hamilton) o de segundo orden (Newton) y tambien
Universidad de Chile

Escuela de Ingeniera y Ciencias


4.3. METODOS
DE VERLET Y VARIACIONES

Ecuaciones Difrenreciales Ordinarias

que se haga (en (4.2.14) se expandio hasta b = r ). En el caso que aqu se ha


de la expansion
presentado los coeficientes de Gear son

1/6
5/6

c=
(4.2.16)
1
1/3

que los metodos

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

4.3.

Metodos
de Verlet y variaciones

Se trata de resolver ecuaciones de Newton


r = f (r,t)

donde

f es la fuerza por unidad de masa

(4.3.1)

sin pasar a ecuaciones de primer orden. Estos metodos


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
rn1
la velocidad r = a0 (r,t) cv. Se usa v = rn+12h
.

L. Verlet2 presento su algoritmo por primera vez en su trabajo Computer experiments on


classical fluids. I. Thermodynamical properties of Lennard-Jones molecules, Phys. Rev. 159, 98103 (1967).

4.3.1.

Propiamente Verlet

(4.3.1) se discretiza,
La ecuacion
rn+1 2rn + rn1
+ O(h2 ) = fn
h2
con lo cual,
rn+1 = 2rn rn1 + h2 fn + O(h4 )

(4.3.2)

se evalua f una sola vez y el error es orden h4 . La velocidad no aparece.


En cada iteracion
Las iteraciones son (rn1 , 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 con (4.3.2) o bien usando r(h) = r(0) +
3
2
h v(0) + h2 f (0) + h6 f (0).

es la misma, es decir, el algoritmo


Notese
que igualmente se puede despejar rn1 y la ecuacion
es reversible en el tiempo.
La velocidad se puede evaluar en la forma
vn =

rn+1 rn1
+ O(h2 )
2h

(4.3.3)

que es un error muy grande frente a O(h4 ).


2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

51

Figura 4.2: En este ejemplo se usa el algoritmo de Verlet para integrar la ecuacion de un pendulo simple
suele tener error de redondeo
Si bien (4.3.2) aparece con un error de truncamiento pequeno,
grande porque a una diferencia de dos numeros

grandes (orden 1), 2rn rn1 , se le suma una

cantidad de segundo orden, h2 an . Para evitar esta fuente de error existe el metodo
leapfrog que
se describe en 4.3.3.

4.3.2.

Estabilidad del metodo


de Verlet

exacta de (4.3.2) con h fijo y definamos


Sea x la solucion
xn = xn + n
de esta definicion
en
donde los representan desviaciones que se han introducido. La sustitucion
de Verlet da
la ecuacion
(4.3.4)
n+1 2 + h2 an n + n1 = 0
donde an se escribio como a(xn + n ) a(xn ) + n an .

Caso de fuerza armonica:

se analiza el caso de una fuerza armonica,

A continuacion
a(x) = 2 x

a (x) = 2

entonces

n+1 2 (1 R) n + n1 = 0

(4.3.5)

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

2 2(1 R) + 1 = 0

Im

(4.3.6)

cuyas raices son

Re
= 1 R

R2 2 R

por lo que puede ser complejo.

(4.3.7)

Si R = 0 entonces = 1.

Si R = 1 entonces = i.

Si R = 2 entonces = 1.
Si R entonces = 1 R R

Figura 4.3: El plano complejo .

1 R2 concluyendose
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
2 Fsico

frances nacido en 1931

Universidad de Chile

Escuela de Ingeniera y Ciencias


4.3. METODOS
DE VERLET Y VARIACIONES

Ecuaciones Difrenreciales Ordinarias

que recorre primero la semicircunferiencia Im < 0 unitaria del plano complejo y luego avanza
desde = 1 hasta = .

Si R 2 se tiene | | = 1 que garantiza estabilidad, mientras que R > 2 implica | | > 1 que
garantiza inestabilidad.
Puesto que R =

h2 2
2 ,

R 2 corresponde a
la condicion
2

es
entonces la condicion
h

y si se reemplaza =

2
T

h
Otros casos: Si se trata de otras fuerzas que provienen de un potencial U (x),

la cota maxima
para h esta dada por el
perodo mnimo, es decir, por la frecuencia

maxima,
que es proporcional a U (xmin ).
Si bien de esta manera se obtiene estabilidad, eso no quiere decir que se tenga
aceptaconfiabilidad, es decir, precision
ble. Normalmente se debe usar un h bastante menor que el que garantiza estabilidad.

4.3.3.

Leapfrog

Puesto que
vn+ 1 vn 1
2

h
se obtiene que

+ O(h2 ) = Fn

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

Ademas
rn+ 1 + 1 rn+ 1 1
2

h
que conduce a

+ O(h2 ) = vn+ 1

(4.3.8)

LeapFrog.c
.

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

rn+1 = rn1 + hvn+ 1 + O(h3 )


2

En resumen las ecuaciones que siguen deben


usarse
orden
indicado

Figura
4.4:enElelcaso
de un
pendulo
con roce viscoso y forzamiento externo resuelto
con
el algoritmo leapfrog.
3
vn+ 1 = vn 1 + h Fn + O(h )
2
2
(4.3.9)
3
rn+1 = rn + h vn+ 1 + O(h )
2

Las posiciones se determinan con n entero y las velocidades con ndice semientero.
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

4.4.
4.4.1.

53

Algoritmos simplecticos

Operadores de traslacion

Se define la notacion
a dd

1+a

d
a2 d 2
an d n
+
+
.
.
.
+
+ ...
d 2! d 2
n! d n

de donde se obtiene que


a dd

e
a dd

del operador e
La accion

(4.4.1)

f ( ) =

an d n
f ( ) = f ( + a)

n
n=0 n! d

(4.4.2)

f ( ) es producir la funcion
trasladada f ( + a).
sobre una funcion

En forma similar se puede definir el operador exp b z ,


f (z + b) =
=

1
b b f (z) + . . .
2!
1

2
f (z) + b j bk
f (z) + . . .
f (z) + b j
zj
2! j ,k
z j zk
j
f (z) + (b ) f (z) +

= exp b z f (z)

4.4.2.

(4.4.3)
(4.4.4)
(4.4.5)

Ecuaciones de movimiento

En mecanica
las ecuaciones de movimiento de un sistema pueden escribirse en la forma
d
dt

r
v

v
f

(4.4.6)

donde a = 1, 2, . . . , N y f es la fuerza total por unidad de masa. Si trata, por ejemplo de un sistema
de dos partculas en 3D se debe entender que 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 ).
usando el operador Liouvileano,
Estas mismas ecuaciones pueden escribirse tambien
L v r + f v

(4.4.7)

en el vector
donde los ingredientes con que se construye L estan

r
v

sobre el cual va a actuar.

(4.4.6) toma la forma


La ecuacion
d
dt

r
v

=L

r
v

(4.4.8)

formal del movimiento entonces es


La solucion
r( )
v( )
Universidad de Chile

= e L

r
v

(4.4.9)
t=0

Escuela de Ingeniera y Ciencias


4.4. ALGORITMOS SIMPLECTICOS

Ecuaciones Difrenreciales Ordinarias

no puede hacerse en forma sencilla. Sin embargo, si las


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

A = v r ,

donde

e A

B = f v

(4.4.10)

sobre los vectores posicion,


es una simple traslacion
de la posicion,

El operador
actua solo

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

e A

r+v
v

r
v

e B

r
v+ f

(4.4.11)

Notese
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 esta en la primera componente. As entonces, si se

define la notacion
rn r(t = n)
y
vn v(t = n)
(4.4.12)
resulta
e A

rn
vm

rn+1
vm

rn + vm
vm

rn
vm

e B

rn

vm+1

rn
vm + fn

(4.4.13)

Integrar el movimiento es no trivial porque


e (A+B) = e A e B
aproximada es utilizando la aproximacion

Una forma conocida de encontrar una solucion

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

4.4.3.

(4.4.14)

del algoritmo O( 3)
Construccion

se muestra en detalle como actua


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

rn
vn

vn+ 1

= e2 B

rn
vn +

f (rn )

rn
vn + 2 fn

El siguiente operador actua sobre este resultado


rn+1
vn+ 1

= e A

rn
vn+ 1

rn + vn+ 1
2
vn+ 1

rn + vn + 2 fn
vn + 2 fn

rn + vn + 2 fn
vn + 2 fn

Y finalmente
rn+1
vn+1

=e

rn+1
vn+ 1
2

rn + vn + 2 fn
vn + 2

fn + fn+1

(4.4.15)

final se ve que es crucial que fn dependa tan solo de las posiciones, porque la
En esta expresion
permite calcular rn+1 , con el cual se obtiene fn+1 y as se tiene los
parte superior de la ecuacion
ingrediente para calcular explcitamente vn+1 .
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

4.4.4.

55

El Jacobiano asociado

Por simplicidad se calcula el Jacobiano asociado al algoritmo unidimencional


xn+1 = rn + vn +

2
fn ,
2

vn+1 = vn +

( fn + fn+1 )
2

(4.4.16)

Se comprueba que

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

= 1+

2 fn
2 xn

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

que conduce a que


J=

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

=1
xn vn
vn xn

Esta es una caracAutores han demostrado que J = 1 a todo orden y en cualquier dimension.

terstica central de los algoritmos simplecticos.

4.4.5.

Nuevamente el algoritmo de Verlet

El algoritmo simplectico
(4.4.15) escrito por componentes es
rn+1 = rn + vn +
vn+1 = vn +

2
fn
2

fn + fn+1

Si a la primera de ellas se le resta una replica


con n n 1 se obtiene
rn+1 rn = rn rn1 + (vn vn1 ) +

2
fn fn1
2

pero, de acuerdo a la segunda de las ecuaciones, se puede reemplazar vn vn1 por


por lo que se obtiene

fn1 + fn

rn+1 2rn + rn1 = 2 fn + O( 4 )

que es el algoritmo de Verlet obtenido como consecuencia del algoritmo simplectico


(4.4.15).
Universidad de Chile

Escuela de Ingeniera y Ciencias

FINAL
4.5. RECOMENDACION

Ecuaciones Difrenreciales Ordinarias

4.4.6.

alto orden
Algoritmos simplecticos
de mas

alto orden. Una familia


Un teorema establece como
construir algoritmos simplecticos
de mas
de ellos toman la forma
e(A+B) +O(

n+1

= ea j A eb j B

aqu se define n

(4.4.17)

j=1

de posiEsta forma general es muy importante porque es trivial demostrar que una traslacion
sin trasladar las velocidades o vice versa es una transformacion
con Jacobiano unitario:
cion

det (r(r,v,v )) = 1. Esta propiedad es necesaria y suficiente para que se conserve el volumen del

espacio de fase, que es una propiedad basica


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

aj = 1,

bj = 1

Para ver como


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

= etAK . . . etA2 etA1

(4.4.18)

de (4.4.17) toma una forma como (4.4.18). Si se resume (4.4.18) como U 1 (t) = V (t),
La expresion
temporal quiere decir que V (t) = U (t), lo que hace necesario que A1 = AK ,
simetra a la inversion
A2 = AK1 etc.
El algoritmo (4.4.14) que se ha analizado corresponde a (N = 2, n = 2, a1 = 0, a2 = 1, b1 =
b2 = 12 ). 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 = 12 ) y = (2 21/3 )1 .

sobre esto puede verse en el artculo de Omeyan, Mryglod y Folk en Phys.


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

final
Recomendacion

4.5.

Si f se puede evaluar rapidamente


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

Si f es muy lento de evaluar conviene usar un metodo


predictor corrector.
2013
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

4.6.

Metodos
Numericos

57

Problemas

de un oscilador armonico

4.1 Considere la ecuacion


forzado
x + 2 x = A sin (kx t)

(4.6.1)

de una partcula cargada moviendose

Ella proviene de la ecuacion


en un campo magnetico

uniforme a lo largo del eje Z al que se superpone una electrostatica


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

(4.6.2)

un termino

Representa a un oscilador armonico


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

(4.6.3)

4.4 Se trata de calcular, usando RK4, el comportamiento de un pendulo


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

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

es
para el angulo
(2 )2 A
cos(2 t)
+ + 02 sin =
L
donde 02 = Lg , g = 9,81 y L = 1m.
1. Tome A = 0,07m, = 0,1seg1 , (0) = 10o y (0) = 0 y estudie la amplitud angular

de la frecuencia en el rango: 0,9 1,1 con =


asintotica
(t ) como funcion

0,001. (Amplitud angular es el valor maximo


que toma (t)).
de tanto
2. Tome A = 0,3m, = 0,4seg1 , (0) = 0 y = 3seg1 . Obtenga la evolucion
o
o
cuando (0) esta alrededor de 10 como cuando esta alrededor de 170 .
de movimiento
4.5 Modifique el algoritmo de Verlet original para el caso en que la ecuacion

bidimensional pueda tener una fuerza de roce viscoso lineal, r = a(r) c v. Con ese nuevo

algoritmo integre numericamente


la orbita
en el caso
a = k1 r k2 r2 r

(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 orbita
durante tiempo suficiente para que corte al eje X ocho veces.

Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

4.6. PROBLEMAS

4.6 Estudie el movimiento de un pendulo


plano, que en lugar de hilo tiene un resorte de cons
tante elastica
k y largo natural R. La masa del punto material es m = 1. Use coordenadas
cartesianas para integrar usando el algoritmo de Verlet. Las ecuaciones son
(r R) x
r
(r R) y
g
y = k
r
x = k

Use: k = 5, R = 4, g = 1, tome condiciones iniciales: (x = 0, y = R g/k, vx = 0,1, vy = 0) e


del punto material con RK4 y con Verlet usando
integre hasta t = 20. Calcule la evolucion
el mismo dt = . Escoja este incremento de modo que ambos algoritmos den soluciones
dibuje
parecidas pero distinguibles (al menos en la parte final). Para hacer esta comparacion
chico ambos algoritmos dan
x(t), y(t) y y(x). Compruebe que usando un dt varias veces mas
Cual de las dos soluciones originales estaba mas
cerca
esencialmente la misma solucion.
mas
precisa?
de la solucion

4.7 Integre la ecuacion


= r
r(t)
r3
directamente en coordenadas cartesianas (x(t), y(t)) usando como condiciones iniciales:
r (0) = 2

v (0) = 0,1 j

alla de completar una vuelta y dibujando la orbita

En todos los casos integre hasta poco mas


en el plano (x, y) usando N 5 000 aun cuando el resultado sea insatisfactorio.
Convierta las ecuaciones a un sistema de primer orden e integre usando RK4.

de una cadena unidimensional de N


4.8 Para obtener el algoritmo para integrar la evolucion
osciladores amortiguados usando Verlet se comienza con las ecuaciones de movimiento
del sistema conservativo. El lagrangeano del sistema (naturalmente sin amortiguar) es
N

L=

N
m q2a
k

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

(4.6.5)

de
Aqu los qa son las desviaciones del punto de equilibrio de cada oscilador. La ecuacion

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

(4.6.6)

Al discretizar usando el algoritmo de Verlet se obtiene


2qna + qn1
qn+1
qn1
qn+1
a
a
a
a
2
n
n
n

=
q
+
q

2q

a+1
a1
a
2
2
entre las partculas de la 0 a la A
El problema consiste en tratar dos medios: la interaccion
esta caracterizada por un 1 y de la A + 1 hasta la ultima

por un 2 (pero se usara el mismo


2013
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Numericos

59

). La partcula A es la frontera entre ambos medios y es la que satisface una ecuacion


diferente.
Las partculas de la 1 a la A 1 interactuan igual que en el caso anterior. Lo mismo con las
partculas de la A + 1 en adelante.
qa<A = 12 (qa+1 + qa1 2qa ) qa
qa>A = 22 (qa+1 + qa1 2qa ) qa

(4.6.7)

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

Haga seis graficos


qa (t) versus a para un t fijo (cada uno de los cuales representa instan
taneas del sistema) separadas por t = 120seg. Es decir, el sistema en t = 120, t = 240 ..
claro lo que representa cada figura, es mejor que dibuje
hasta t = 720. Para que quede mas

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

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


i

Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

2013
version

4.6. PROBLEMAS

Facultad de Ciencias Fsicas y Matematicas

Captulo 5

Problemas de condiciones de borde y


problemas de autovalores
5.1.

Introduccion

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


d2y
R(x) y = S(x)
dx2

(5.1.1)

real. Ademas,
en lugar de imponerse
donde S es un termino
inhomogeneo,
R es una funcion
condiciones inicialescomo podra ser (y(0), y (0))se impondra condiciones de borde del tipo
de la ecuacion
homogenea

y(a) = ya y y(b) = yb . Cuando R es negativo la soluci


(esto es,
on
mientras
que
cuando
R
es
positivo
la
con S = 0) son oscilantes con numero

local de onda R,

esta dominada por exponenciales reales tipo ex R .


solucion
que incluye un termino

Si se tiene una ecuacion


con primera derivada como
f + A(x) f + B(x) f = C(x)
se hace el reemplazo f (x) = y(x) exp[ 21

5.1.1.

de la forma (5.1.1).
A(u) du] y se obtiene una ecuacion

Dos ejemplos de ecuaciones lineales

de Poisson esfericamente

5.1.1.1. La ecuacion
simetrica

de carga (r ) se debe
Si se busca el potencial electrostatico
V generado por una distribucion
de Poisson1 2V = /0 que, si hay simetra esferica,

plantear la ecuacion
puede simplificarse
a

1 d 2 dV
(5.1.2)
r
=
r2 dr
dr
0
1 Simon

Denis Poisson, frances, (1781-1840)

61

Ecuaciones Difrenreciales Ordinarias

5.2. EL ALGORITMO DE NUMEROV

V (r) = (r)/(0 r) se llega a


y si se hace la sustitucion
d2
= r
dr2

(5.1.3)

que es de la forma (5.1.1) con R = 0 y S = r .


de autovalores
5.1.1.2. Una conocida ecuacion
de Schrodinger

Similarmente, el problema radial asociado a la ecuacion


es
d 2 R
+ k2 (r) R = 0 ,
dr2

k2 (r) =

( + 1)h2
2m
E

V (r)
2m r2
h 2

tiene solucion
tan
tiene la forma (5.1.1) con R(r) = k2 (r) y S = 0. Si V (r) = Ar esta ecuacion
solo para un conjunto discreto de posibles valores para el autovalor E negativos. En cambio tiene
para cualquier E positivo.
solucion

Ambos ejemplos podran ser resueltos con metodos


ya vistos excepto que hay situaciones

que hacen recomendable el algoritmo que se ve a continuacion.

5.2.

El algoritmo de Numerov

En el metodo
que se describe ahora las condiciones de borde tpicamente deben imponerse
de onda o tipo Schrodinger,

en puntos diferentes y, en el caso de una ecuacion


hay un problema
de autovalores que resolver.
Expandiendo y(x h) hasta O(h6 ) se obtiene
yn+1 2yn + yn1 = yn +

h2 IV 2
y
h + O(h6 )
12 n

(5.2.1)

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


yIV
n

d2
[ R y + S ]n
dx2

(Ry)n+1 2(Ry)n + (Ry)n1 Sn+1 2Sn + Sn1


+
+ O(h2 )
h2
h2

(5.2.2)

para yIV
para la segunda derivada que da la ecuacion
original,
Esta expresion
n y la expresion

basica

(5.1.1) se sustituyen en (5.2.1) y se reordena, obteniendose


la expresion
para el algoritmo
de Numerov2 :
1
2 Boris

2013
version

h2
Rn+1
12

yn+1 2 1 +

5h2
Rn
12

yn + 1

h2
h2
Rn1 yn1 =
(Sn+1 + 10Sn + Sn1) + O(h6 )
12
12

(5.2.3)

Vasilyevich Numerov (1891-1941)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

63

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


de recuA partir de esta expresion
la ecuacion
con un error O(h6 ). En cada paso
rrencia que resuelve hacia adelante o hacia atras
las funciones R y S son llamadas una sola vez.
de iteracion
2

d y
de partida dx
S es funcion
de x y tambien
de y(x) el
Si en la ecuacion
la funcion
2 Ry = S

(5.1.1) no es lineal.
metodo
anterior sigue siendo valido.
En tal caso la ecuacion

5.3.
5.3.1.

Problemas asociados a las condiciones de borde


directa de un problema con condiciones de borde
Integracion

de Poisson con simetra esferica

5.3.1.1. Primer ejemplo: la ecuacion

Se vera como
resolver el caso especial de (5.1.3) en que la densidad de carga tiene una forma

exponencial, = 81 er . Una densidad de carga esfericamente


simetrica
implica una carga total
2
satisface
Q = 4 0 r dr. En el caso actual arroja Q = 1. La funcion
d2
r
= er
2
dr
8

(5.3.1)

suave, el potencial V = (r)/(0 r) es finito en el origen, lo que implica


Puesto que es una funcion

de V en infinito tiene que


que rV y, por tanto que (0) = 0. Por otro lado la forma asintotica
Q
ser V (r ) = 40 r que, en el caso actual, implica que

() =

1
4

(5.3.2)

Para resolver este problema con el algoritmo de Numerov se plantea

n+1 = 2n n1 +

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

(5.3.3)

donde S = 8r er . Para proseguir se escoge un rmax suficientemente grande para considerar que
en ese valor tiene un valor asintotico

ya la solucion
muy cercano a 41 .
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
obtendra cero en r = 0.

for(k=2;
{ r
=
Sder =
F[k] =
Sizq =
Scen =
}

k<=N; k++)
k*h;
S(r);
2*F[k-1]-F[k-2]+c0*(Sder+10*Scen + Sizq);
Scen;
Sder;

inicial usando (5.3.3).


Figura 5.1: El ciclo de itereacion
.
El rango 0 r rmax es di h. La rutina que usa (5.3.3) comienza con valores conocidos
vidido en N intervalos de tamano
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.
Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

5.3. PROBLEMAS ASOCIADOS A LAS CONDICIONES DE BORDE

de borde se hace inevitable incorporar


Al integrar tomando en cuenta una sola condicion
general de la ecuacion.
En el caso particular que se esta viendo
caractersticas de la solucion

homogenea

general h = a + b r lo que implica que la solucion


la ecuacion
tiene como solucion
completade la forma gen = p + h crece linealmente con r. El algoritmo
general de la ecuacion

particular p que asintoticamente


crece linealmente con r,
(5.3.3) arroja, entonces, una solucion
1

lo que no es trivial de compatibilizar con la condicion () = 4 .


buscada consiste en tomar un cierto valor rmax
Una forma algo brutal de obtener la solucion
como si ya fuese infinito y definir

(r) = p (r) +

m p (rmax )
r
rmax

(5.3.4)

donde m es el valor que se quiere imponer para en r = rmax , ya que as es automatico


que
(0) = 0 y que (rmax ) = m . En resumen, se integra imponiendo tan solo p (0) = 0 y una vez que
numerica,

se tiene esta solucion


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
tiene sentido tan solo porque la solucion
general de
(5.3.4). La forma lineal de reparar la solucion
homogenea

la ecuacion
en este ejemplo es lineal.
5.3.1.2. Consideraciones generales
en general, para integrar cualquier ecuacion
de la forma (5.1.1), con S = 0, dadas las
Mas

condiciones y(a) = ya e y(b) = yb , se puede comenzar desde x = a hacia la derecha, obteniendose


y que satisface la ecuacion
y la condicion
de borde en x = a. Pero esta solucion
no
una funcion
de borde en x = b.
satisface la condicion
se satisfaga la condicion
de borde a la derercha se usa una solucion

Para obtener que tambien


homogenea,

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

funcion
y(x) = y(x)
+

yb y(b)

yh (x)
yh (b)

(5.3.5)

comprobar que en efecto esta funcion


y(x) satisface la ecuacion
diferencial y ademas

Es facil

satisface ambas condiciones de borde. En efecto, puesto que fue construida como combinacion
particular y de la ecuacion
inhomogenea

de la ecuacion

lineal de una solucion


y una solucion

de la ecuacion
lineal original.
homogenea,
esta garantizado que y(x) es solucion
En los casos en que b = se debe escoger un xmax . En tales casos es delicado escoger
anterior. Es recomendable estudiar
el valor que debe colocarse en lugar de yb en la expresion

descrito por una funcion


yasint e imponer
el comportamiento asintotico
analtico de la solucion,
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 asintotica


debe ser de la forma 41 + ex y, para tener consistencia
1

que es conveniente usar m = 41 + 41 exmax .


con x , es necesario que = 4 , viendose

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 y pueda tomar valores muy grandes y en general debiera

ser y(a) + O(h). De otro modo, los dos terminos


en (5.3.5) seran muy grandes de signo opuesto
y(x) resultara poco confiable.
y la solucion
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

65

conveniente integrar de derecha a izquierda.


- En algunos problemas suele ser mas
homogenea

- Si las soluciones de la ecuacion


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

tambien
puede definirse una funcion
F(z) =
En lugar de usar un metodo
de reparacion,
Es (rmax ) yb donde z = 1 y aplicar una rutina para buscar ceros para alcanzar la solucion.
to no es eficiente y puede ser muy inestable.

5.3.1.3. Segundo ejemplo

Un caso semejante al del primer ejemplo consiste en resolver numericamente


la ecuacion
r
y a2 y = er
2

(5.3.6)

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 lo tomaremos igual a y(), es decir, y(rmax ) = 0. En tal
caso, al aplicar (5.3.5) se obtiene
y1 (r) = y(r)

ear ear
y(r
max )
earmax earmax

que se anula en r = rmax .


que se construye satisface automaticamente

Se puede hacer mejor. Ya que la solucion


la
en r = 0, el asunto es integrar en un intervalo finito y lograr que se satisfaga la forma
condicion
buscada se debe anular en infinito, es muy
correcta para r muy grande. Puesto que la funcion
para r grande y su segunda derivada debe ser bastante pequena,
lo que hace sospechar
pequena
original cuando se pone y y) que para r muy grande y r er . En efecto,
(mirando la ecuacion
de la ecuacion
homogenea

ya se vio que la solucion


que se anula en infinito decae como ear
rapido

que es mas
(a > 1) que el comportamiento que aca se esta indicando. Si se reemplaza
y se conserva solo los terminos

y = B r er en la ecuacion
dominantes, se obtiene una ecuacion
r
r
mas
satisfactoria que y1 es
para B que conduce a y y (r) = 2(a2 1) e y una solucion
y2 (r) = y(r)

ear ear
earmax

earmax

y(r
max )

rmax
earmax
2(a2 1)

(5.3.7)

es cero en el origen y en el distante punto rmax toma el valor asintotico

Esta funcion
estimado. Se
ve que la unica

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 solucion


analtica de (5.3.6) es
y=

Universidad de Chile

2ear + (ra2 r 2) er
2 (a2 1)2

(5.3.8)

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

5.3.2.

5.3. PROBLEMAS ASOCIADOS A LAS CONDICIONES DE BORDE

de Green
Uso de una funcion

5.3.2.1. El problema
menos conocida del algoritmo de Numerov y que puede ser muy util
Existe una aplicacion

suficiente. Esto ocurre si las soluciones


en casos en que los otros metodos
no dan precision
homogenea

de la ecuacion
tienen comportamientos muy diferentes. Considerese
nuevamente la
general
ecuacion
d2
R(x) y = S(x)
dx2

con condiciones de borde

y(a) = ya ,

y(b) = yb

(5.3.9)

debiera ser aplicable aun si el intervalo (a, b) es infinito.


El metodo
que se vera a continuacion
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 analticamente la forma

buscada y, por ejemplo, en lugar de la condicion


y() = 0imposible de
asintotica
de la solucion

sencilla y (x), llamada


imponer en un metodo numericoque y(x) se comporte como una funcion

definida
la forma asintotica
de y(x). Por ejemplo, como ya se dijo, la forma asintotica
de la funcion
r exp(r)
en (5.3.8) es 2(a2 1) .
de Green
5.3.2.2. Papel de la funcion
de Green3 se plantea primero resolver
Para resolver este problema con el concepto de funcion
otro problema:
d2

R(x) f (x) = S(x)


f (a) = 0 , f (b) = 0
(5.3.10)
dx2
se relaciona con S(x) en la forma que se especifica mas
S(x)
adelante.
donde la funcion
de Green G(x, x )
Este ultimo

problema se plantea como el problema de encontrar una funcion


que satisfaga
d2
R(x) G(x, x ) = (x x )
dx2

tal que

G(a, x ) = 0 ,

G(b, x ) = 0

(5.3.11)

Las dos propiedades basicas


de (x x ), esto es,
b

(x) = 0

x = 0,

(x) dx = 1 para todo a y b positivos

(5.3.12)

(5.3.11) que
permiten obtener de la ecuacion
x=x +
x=x
3 George

2013
version

d2
R(x) G(x, x ) dx = 1
dx2

(5.3.13)

Green, ingles, (1793-1841)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

67

Se hace notar que

F(x) (x x0 ) dx = F(x0 )

F(x) bien definida en x = x0


para toda funcion

Una vez que se tenga G(x, x ) se puede ver que f (x) se puede escribir en la forma
f (x) =

) dx
G(x, x ) S(x

(5.3.14)

f (x) satisface (5.3.10).


ya que trivialmente esta funcion
del problema original
5.3.2.3. Hacia la solucion
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)
2

d
del operador dx
sobre f (x) mas
la
debido a lo siguiente. La accion
2 R(x) sobre y(x) es la accion
y de la segunda se obtiene ( x + ) R(x),
resulta S(x)
sobre x + . De la primera accion,
accion
d2
de dx2 R(x) sobre y(x) da S(x) que es lo que se buscaba.
de tal modo que la accion

En principio el problema esta 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
ba

b ya a yb
ba

y(x) obtenida por medio de la funcion


de Green
quedando as totalmente definida la solucion
G(x, x ).
numerica

de Green
5.3.2.4. Construccion
de la funcion
El asunto crucial, entonces, es obtener G(x, x ) y esto se aborda comenzando por construir
dos soluciones especiales de
g R(x) g = 0
(5.3.16)

Se integra numericamente
(5.3.16) usando el algoritmo de Numerov desde a hacia la derecha a

g (x). Similarmente se obtiene


partir del valor g(a) = 0 lo que numericamente
define la funcion
g+ (x) integrando (5.3.16) hacia la izquierda desde b a partir de g+ (b) = 0.
una funcion
Definiendo el Wronskiano4
W (x) = g+ (x) g (x) g (x) g+ (x)
4 J
ozef

la prima indica derivadas

Maria Hoene-Wronski, polaco, (1776-1853)

Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

5.3. PROBLEMAS ASOCIADOS A LAS CONDICIONES DE BORDE

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 = 0 garantiza que se tiene soluciones g linealmente independientes.
Se define

G(x, x ) =

g (x)g+ (x )

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 lmite 0 de la integral
( )

x +
x

d2
R G(x, x ) dx
dx2

no es trivial. Para ver esto se supondra que R(x)G(x, x ) es suave en el rango x x x + por
del termino

lo que la contribucion
con R en la integral anterior se anula en el lmite 0, mientras
2

que el otro termino


es la integral de una derivada: ddxG2 por lo cual la integral anterior vale
( ) =

dG
dx

x=x +

dG
dx

=W = 1

(5.3.18)

x=x

G descrita es la funcion

por lo cual (5.3.11) y (5.3.13) se cumplen y se comprueba que la funcion


de Green del problema.
formal de (5.3.9)
5.3.2.5. La solucion
de la ecuacion
original (5.3.9) es
La solucion
) dx + yb ya x + b ya a yb
G(x, x ) S(x
ba
ba
y

y
b
y

a
y
b
a
a
b

S(x)
= S(x) +
x+
R(x)
ba
ba
y(x) =

donde

(5.3.19)
(5.3.20)

Fundiendo ambas expresiones en una se tiene que


y(x) =

G(x, x ) S(x ) +

yb ya b ya a yb
x+
ba
ba

R(x )

dx +

b ya a yb
yb ya
x+
ba
ba

(5.3.21)

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 ecuacion


( + 1)
d2

2
dr
r2
2013
version

(r) = 4 r (r)

con

>0

(5.3.22)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

69

homogenea

con condiciones de borde (0) = 0, () = 0. La correspondiente ecuacion


tiene dos
soluciones
r
+1
+
,

(5.3.23)
h (r) =
h (r) = a r
a (2 + 1)
cuyo Wronskiano vale la unidad para cualquier valor no nulo de a. Ellas cumplen

h (0) = 0 ,

+
h () = 0

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

muy diferentes, lo que hace muy difcil utilizar cualquiera de los metodos
descritos hasta ahora

intrnseca que hace difcil deshacerse de la


ya que en metodos
numericos
hay una imprecision
del comportamiento fuertemente creciente de alguna de las dos soluciones
aparicion
h cuando
De las diversas formas de evitar este problema una consiste en
r es muy grande o muy pequeno.
de Green.
usar una funcion
En el caso actual
G(r, r ) =

r+1 (r )

2 + 1

r < r
(5.3.24)

+1

r (r )
2 + 1

r > r

G(, r ) = 0. Teniendo esta funcion


de Green se puede usar
Que satisface G(0, r ) = 0 y tambien

la forma generica
(5.3.21).
es
Especializando al caso = 1 la ecuacion
2
d2
2
2
dr
r

(r) = 4 r (r)

(5.3.25)

homogenea

con condiciones de borde (0) = 0, () = 0. La correspondiente ecuacion


tiene
soluciones
1
r2
+

h () =
h (r) = ,
3
3r
de Green es,
las que tienen Wronskiano unitario. La funcion
G(r < r ) =

r 2
,
3r

G(r > r ) =

r2
3r

(5.3.26)

se construye en la forma
La solucion
r

(r) =
0

G(r > r ) S(r ) dr +

G(r < r ) S(r ) dr

(5.3.27)

analtica
En este caso particular se obtiene una solucion
(r) =

8
2
4 2 + r +
r
r

er

haciendo numericamente

pero el asunto es obtener esta funcion


la integral (5.3.27).
Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

5.4.

5.4. PROBLEMAS DE AUTOVALORES

Problemas de autovalores

Estos son problemas de ecuaciones lineales homogeneas


de segundo orden con condiciones

de borde en puntos diferentes. El problema generico


que se analizara plantea determinar tal
que
d2y
axb
(5.4.1)
2 + q(x) y = y
dx
con y(a) = 0 e y(b) = 0. No se excluye que a = ni que b = . Puede ocurrir que esta
no tenga solucion
para cualquier valor de . Los valores permitidos de se denomina
ecuacion
los autovalores del operador
d2
2 + q(x)
dx
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.

5.4.1.

Problema sencillo de autovalores: una cuerda

El problema de una cuerda homogenea


con extremos fijos en
x = 0 y x = L se puede escribir en la forma
2
2 g(x,t)
2 g(x,t)
=
c
,
t2
x2

g(0,t) = g(L,t) = 0

y(x)
.

(5.4.2)

X
Se buscara soluciones para las cuales la altura de la cuerda para
(x,t) sea factorizable en la forma g(x,t) = T (t) y(x), donde y(x) es
de x, la ecuacion
es separable Figura 5.2: En el problema de
la amplitud de la cuerda en funcion
la cuerda se busca soluciones con
en dos ecuaciones
amplitud nula en ambos extremos.
2
2
2
d T
d y
= 2 T ,
2= 2 y
(5.4.3)
2
dt
dx
c
tiene como sodonde, por el momento, 2 es una constante desconocida. La primera ecuacion
general una combinacion
lineal arbitraria entre sin t y cos t. Escogiendo que T (0) = 0 se
lucion
obtiene que T (t) = A sin t.
de valores propios. Ella tiene como solucion
general y = c1 sin( x/c)+
La segunda, es la ecuacion
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
sin

L
=0
c

n c
L

(5.4.4)

donde n es un entero. De lo anterior se ve que las condiciones sobre el problema han permitido

de c/L. No cualquier valor para permite obtener una solucion


determinar que es un multiplo
2
al problema. Los son, en este caso, los autovalores del problema.

Lo que interesa es reproducir el resultado analtico anterior integrando la ecuacion


d2y
= 2 y
dx2
2013
version

con

y(0) = y(L) = 0

(5.4.5)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

71

usando el algoritmo de Numerov


El algoritmo de Numerov en el caso actual se reduce a con un valor por el momento arbitrario
para ,
(h /c)2
5(h /c)2
(h /c)2
1+
yn+1 2 1
yn + 1 +
yn1 = 0
(5.4.6)
12
12
12
anterior se puede reescribir en la forma
donde se ha colocado un valor arbitrario a . La ecuacion
yn+1 = yn1 +

24 10 (h /c)2
yn
12 + (h /c)2

(5.4.7)

Usando esta ultima

forma se integra desde el extremo izquierdo hacia la derecha usando

h = L/N obteniendose
en el extremo derecho un valor yN que en general no es nulo, sino que

depende del valor que se ha dado a , por lo que se define la funcion


F( ) = yN
Usando estrategias ya vistas en 3.2, se busca los ceros de F( ). Los valores particulares de j
as encontrados definen los autovalores del problema planteado en (5.4.5). Es un buen ejercicio

descrito arroja los valores descritos en (5.4.4).


ver si el metodo
recien
* *

Puede demostrarse que el problema de una cuerda inhomogenea


puede ser llevado a la forma5

d2y
+ r(x) y(x) = 2 y(x)
con
y(0) = y(L) = 0
dx2
continua mientras que 2 es el autovalor buscado. Esta ecuacion
se
donde r(x) es una funcion
que sigue.
analizara en un contexto muy diferente en la subseccion

5.4.2.

de Schrodinger

estados ligados
Ecuacion
en una dimension:

Un problema tpico de autovalores es el que plantea la


de Schrodinger

ecuacion
+V (x) = E ,

| |2 dx = 1

(5.4.8)

Se debe determinar los autovalores E asociados a V (x).


V (x) tiende
Normalmente se va a suponer que la funcion
a cero para |x| grande.
La integral en (5.4.8) es sobre el dominio sobre el cual la
esta definida. La ecuacion
sera escrita en la forma
funcion

+ k (x) = 0

donde

k = 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
5 Ver

xder

xizq

potencial V y el vaFigura 5.3: La funcion


lor tentativo para la energa E definen valores xizq y xder que sirven de base para escoger xmin y xmax .

Courant-Hilbert, IP Inc., 1953, Methods of Mathematical Physics, Vol. 1, Cap. V, 3.3.

Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

5.4. PROBLEMAS DE AUTOVALORES

de interes
decae exponencialmente. Esta es la caracterstica por
decir k2 (x) < 0 y la solucion
E con E < 0 esta ligada al pozo V (x). Sin
la que se llaman estados ligados: una solucion
tambien
admite una solucion

embargo hay que tener presente que fuera de (xizq , xder ) la ecuacion
exponencialmente creciente.
Los lmites (xizq , xder ) de esta zona son los llamados puntos de retorno en los cuales se satis general crece exponencialmente
face V (x) = E. El algoritmo debe abordar el hecho que la solucion
fuera de las fronteras definidas por los puntos de retorno: (xizq , xder ). Un problema de este tipo no
puede ser simplemente integrado de izquierda a derecha o vice versa porque inevitablemente los
exponencialmente creciente ah donde no debe
errores de redondeo haran aparecer la solucion
sera confiable.
estar y ninguna rutina de reparacion
Para evitar esto se integra desde algun
punto xmin en
alla de
general muy a la izquierda de xizq hasta poco mas
se
algun
punto intermedio de empalme xe . A esta funcion
se obtiene Der integrando desde un
la llama Izq . Ademas
a la
punto xmax lejos a la derecha de xder hasta poco mas
izquierda del mismo punto de empalme.

e1

e+1

Figura 5.4: Para empalmar se integra


Para hacer estas integraciones se escoge N y h = hacia la derecha hasta n = e + 1 y hacia la
1
N (xmax xmin ), xn = xmin + n h de tal modo que xe = xmin + e h. izquierda hasta n = e 1 donde n = e es el
Supondremos que se integra Der desde la extrema derecha punto de empalme.
hasta n = e 1 y Izq desde la extrema izquierda hasta e + 1.

sencillo es suponer que Izq (xmin ) = 0 y que Der (xmax ) =


Para integrar desde los extremos lo mas
apropiado determinar los comportamien0, pero esto puede ser insatisfactorio. En general es mas

tos asintoticos
de a ambos lados y hacer uso de ellos.
Se debe exigir que tanto como sean continuas en el punto de empalme xe .

de continuidad en el punto de ampalme se consigue renormalizando una de las


La condicion
funciones. Por ejemplo:
[e]
(5.4.9)
Izq [n] = Der Izq [n]
Izq [e]
n=0,1,..,e+1
a ambas funciones.
Esto garantiza que en el punto de empalme n = e haya un valor [e] comun
de que la derivada tambien
sea continua en el punto de empalme se obtiene
La condicion

buscando los valores de E para los cuales la funcion


F(E) =

Der [e + 1] Der [e 1] Izq [e + 1] Izq[e 1]

h [e]
h [e]

(5.4.10)

se anule. Para ello se busca el valor de E apropiado usando algunas de las estrategias vistas en
3.2. Los valores de de E as encontrados son los autovalores E del problema que se ha planteado
en (5.4.8).
anterior de F(E) corresponde a una definicion
particular de la derivada en xe . Si
La definicion

mas
precisa para la derivada es necesario integrar Izq por mas
se escoge utilizar una expresion
puntos a la derecha de n = e y lo propio para Der hacia la izquierda.
2013
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Numericos

73

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
entre el ndice discreto n y x es x = xmin + n h. Se escoge
h = (xmax xmin )/N. La asociacion
el punto del discreto que se usara para el empalme, n = e, el que debiera estar
tambien
entre los puntos de retorno o coincidir con uno de ellos.
3. Se integra Izq desde n = 0 hasta n = e + 1; se integra Der desde n = N hasta e 1.
de Izq utilizando (5.4.9); as se logra que
4. Se define Izq por medio de una normalizacion
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 disenada


para encontrar ceros de una funcion)
que terminara por encontrar un valor de E tal que F(E) sea nulo, es decir, un valor de E para
el cual la derivada en xe sea continua.

5.4.3.

de Schrodinger

Ecuacion
radial

5.4.3.1. La ecuacion
potencial central V = V (r) la ecuacion
de Schrodinger

En problemas con funcion


2 +

V (r) = E que debe satisfacer (r ) se simplifica si se escribe con coordenadas esfericas


en

la forma (r ) = 1r (r)Ym ( , ) donde los Ym ( , ) son funciones conocidas llamadas esfericos

armonicos.
para la parte radial (r) es reducida en forma estandar

donde
La ecuacion
a una ecuacion
de energa potencial V (r) va acompanada

la funcion
de un termino
conocido como 0 la barrera
para es
centrfuga, de modo que la ecuacion
d2
+ k2 (r) = 0
dr2

0r<
(5.4.11)

( + 1)
k2 (r) = E
V (r)
r2
donde es un entero no negativo. El problema central es encontrar los autovalores E.
V (r) tiende a cero cuando r tiende a infinito.
En lo que sigue se supondra que la funcion

Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

5.4. PROBLEMAS DE AUTOVALORES

5.4.3.2. Comportamiento lejano


(r) para r muy grande debe tender a
La funcion
cero de modo que pueda ser normalizada:

Potencial de Morse y tres funciones radiales


60

|(r)|2 dr = 1

50
40

para r muy grande es / E


Si E < 0 la ecuacion
que implica que

30
20
10
0

(r ) exp

-10

|E|r

-20
-30

Si E > 0 hay problemas que no se veran.

-40
0

5.4.3.3. El comportamiento cerca del origen

Figura 5.5: El potencial de Morse, V = V0 (1


exp[a(r r0 )])2 en linea de cruces y tres de las la
funciones 0 , 1 y 2 sin normalizar correspon bajos (sin ceros, uno
dientes a los estados mas
y dos ceros). Se aprecia que estas funciones se
anulan en r = 0. Las lneas horizontales representan los correspondientes autovalores E < 0.

Primer caso: Si V (r) cerca del origen es menos di en la vecindad de r 0


vergente que r2 la ecuacion
es
d 2 ( + 1)

=0
dr2
r2
que tiene dos soluciones independientes, una proporsional a r+1 y la otra proporsional a r . La
es inaceptable, de modo que
segunda solucion
(r 0) r+1

numerica

que se anula en el origen como una potencia de r. La integracion


se puede hacer
+1
se debe integrar hacia la
entonces comenzando con n=0 = 0 y n=1 h
y ademas
izquierda desde algun
rmax y hacer un empalme para determinar los autovalores E.
singular que r2 se debe hacer un analisis

Si en el origen V (r) es mas


diferente.
Segundo caso, un ejemplo: El potencial de Lennard Jones 6-12 comunmente

usado en simulaciones moleculares es


12
6
2
(5.4.12)
VLJ = V0
r
r

Cerca de r = 0 se puede despreciar de k2 (r) todos sus terminos


excepto aquel con r12 . La
no divergente en el origen satisface
solucion
= V0
y es

12

r12

V0 6
(r 0) = exp
5r5

numerica

que se anula muy rapidamente


al acercarse a r = 0. En la integracion
se debe evitar el
distancia del origen tomando 0,5 rmin 0,8 .
punto r = 0 y es usual comenzar a una pequena

Entre este punto y el origen se debe usar la forma analtica dada en la ultima

expresion.
2013
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Numericos

75

en general, si el potencial en el origen diverge como V0


Segundo caso, general: Mas
cerca del origen es
n > 2, de modo que la ecuacion
V0

b n
r

con

puede verse que el comportamiento de en el origen debe ser

2 V0 n2 1
exp
n2
r
(r) tambien
se anula exponencialmente en el origen.
En este caso general la funcion
debe comenzar nuevamente desde un rmin que sea una fraccion
de . Mas

La integracion
cerca de r = 0 se debe usar la forma analtica.

La forma de integrar: Integrando hacia la izquierda, usando el algoritmo de Numerov, se comienza desde algun
rmax de tal modo que
(N) exp[ |E| rmax ]

(N 1) exp[

|E| (rmax h)]

hasta un punto menor al punto de empalme e.


Desde r = 0 se comienza con la forma analtica de modo que para r = h, esto es, n = 1 se toma
+1
si la barrera centrfuga domina en r 0

h
(1)

exp 2 V0 2 1 si el potencial domina en r 0, V (h 0) V0 ( /h)n


n2
h
Una vez que se ha hecho las dos integraciones se ejecuta el procedimiento de empalme.

5.5.

Problemas

de una cuerda inhomegenea,

5.1 Encuentre los primeros cuatro autovalores de la ecuacion


f + (1 +

x2
)f =0
2

con condiciones de borde f (0) = f (1) = 0. Los autovalores se ordenan segun


el numero

de
Grafique (sin normalizar) estas cuatro autofunciones.
nodos de la autofuncion.

5.2 Obtenga numericamente


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.
Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

5.5. PROBLEMAS

de
5.3 Encuentre todas las autofunciones y los autovalores En < 0 que resultan de la ecuacion

Schrodinger
d2
2 +V (x) (x) = En (x)
dx
donde < x < y

2 /20

V (x) = 10 ex

de onda (x) (pueindicando con n de que nivel se trata. Haga un grafico


por cada funcion

dibuje el
de dibujarse mas de una en un solo grafico si no resulta enredado). Tambien
dibuje con lneas horizontales todos los En encontrados agregando (a
potencial y sobre el
mano) el valor de n que corresponda. Discuta y comente.
de Schrodinger

5.4 Obtenga los tres primeros autovalores del problema de la ecuacion


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,
V = V0

donde es la distancia media entre atomos


vecinos a temperatura muy baja. Resuelva la
(5.4.11) obteniendo los niveles propios de energa y las correspondientes funcioecuacion
nes radiales para los casos = 0 y = 1. Use = 1, V0 = 23,0.

2013
version

Facultad de Ciencias Fsicas y Matematicas

Captulo 6

Integrales Monte Carlo y el algoritmo


de Metropolis
persistente en este captulo es
La pregunta mas

como
generar una secuencia de numeros

que
W conocida.
tengan una distribucion

6.1.

Numeros

aleatorios r U(0, 1)

primitivos
Desde los primeros tiempos en que se abordo problemas numericos
con los mas
computadares se vio la importancia de los numeros

aleatorios. Hay problemas que, en el contex

to de metodos
numericos,
requieren de algun
algoritmo para generar una secuencia de numeros

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

aleatorios que nos da el compilador que


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

aleatorios r uniformemente dis numeros


tribuidos en el intervalo (0, 1). Para no tener que usar la expresion

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

(6.1.1)

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


r = (b a) r + a
que usaremos es drand48().
la que satisface r U (a, b). En C la funcion
77

(6.1.2)

Ecuaciones Difrenreciales Ordinarias

6.2.
6.2.1.

6.2. DENSIDADES DE PROBABILIDAD

Densidades de probabilidad
y el promedio discreto
Distribucion

uniformemente
Las secuencias {x j } de numeros

aleatorios reales usuales son las que estan


saber generar secuencias que estan

distribuidas en el intervalo (0, 1), pero es de mucho interes


escogida W (x) en (a, b).
distribuidas de acuerdo a una distribucion
no negativa en ese
Se define una densidad de probabilidad W (x) en (a, b) con una funcion
intervalo que este normalizada,
b

W (x) dx = 1

(6.2.1)

f (x) con x (a, b),


Con ella se define el promedio de cualquier funcion
b

W (x) f (x) dx

(6.2.2)

La variancia 2f de f es

2f = f 2

2
W

(6.2.3)

estandar

de f , es una medida de cuanto


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

Para calcular numericamente


(6.2.2) se debe utilizar una secuencia de numeros

{xi }i=1..N en

el intervalo (a, b) que tengan distribucion W (x) y utilizar la forma aproximada

1
N

f (x j )

j=1

con

xj W

(6.2.4)

Pero, como
generar la secuencia x j W ?

6.2.2.

Distribuciones relacionadas

Supongamos que se tiene una variable aleatoria x en el inter W (x) y ademas


sea y = g(x)
valo (a, b) generada con distribucion
una monotona:

donde g es funcion
y = g(x) ,

dy = g (x) dx

Y
g(b)
.
y
g(x)

(6.2.5)

W
Esto es, se asocia a cada x j de una secuencia con distribucion

un valor y j = g(x j ) en el intervalo (g(a), g(b)). Que distribucion


se debe asociar a los y j ?

g(a)

Puesto que la probabilidad asociada a un intervalo x en


torno al punto x es P = W (x) x, la misma probabilidad tiene asociado el correspondiente intervalo y en torno a y = g(x), siempre

Figura 6.1: Dada una funcion

x
a

monotona
y = g(x) queda definida
entre los intervalos x y
una relacion
los intervalos y

2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

79

que y = dg
dx x. Es decir, la probabilidad asociada a este intervalo y es W (y) y = W (y) g (x) x =
W (x) x. De la ultima

igualdad se desprende que los y j se distribuyen segun

W (y) =

W (x)
g (x)

(6.2.6)
x=g1 (y)

W (x) en el intervalo (a, b),


Si la variable x = g1 (y) tiene distribucion
W (y) = [W (x)/g (x)]x=g1 (y) en el interla variable y tiene distribucion
valo [g(a), g(b)].

correcta. En efecto, la relacion

Es automatico
que W tiene la normalizacion

b
aW

dx = 1 implica

g(b)

W (y) dy = 1
g(a)

6.2.3.

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


Obtencion

anterior se considera (6.2.6) en el caso W (y) = 1 con


Si en los resultados de la subseccion
uniforme U (0, 1)
0 y 1, esto es, los valores de y son generados por una distribucion
y U (0, 1)
distribuidos de acuerdo a
entonces los x j = g1 (y j ) estan
W (x) = g (x)

(6.2.7)

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

relacion
g(x) definida por
implica que si se conoce W (x), la funcion
x

g(x) =
a

W (x ) dx

y
g(b) = 1

(6.2.8)
g(x)

permite definir el cambio de variable y = g(x) tal que y [0, 1].

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


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

g(a) = 0

formal del asunto, pero


Lo anterior es una descripcion
b

normalmente no muestra la forma de hacerlo en la practica


monotona

Figura 6.2: Una funcion


g(x)
ya que se requiere
a

poder calcular g(x) =

ademas

a W (x ) dx

con a x b tal que g(a) = 0 y g(b) = 1 de W (x) dada por (6.2.7).


fine una distribucion

analticamente y

inse debe poder determinar analticamente la funcion


versa g1 para poder tener los x j = g1 (y j ).

Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

6.2. DENSIDADES DE PROBABILIDAD

Un ejemplo en que todo puede hacerse analticamente es el siguiente. Se escoge la distribucion de velocidades
2 c c2 /T
W (c) =
e
con
0c<
(6.2.9)
T
se obtiene
c
2
W (c ) dc = 1 ec /T
y = g(c) =
0

o equivalentemente
c = g1 (y) =

T ln(1 y)

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


c=

T ln y

es decir, dada una secuencia de numeros

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


(6.2.9).
distribucion

T ln y j tiene la

W (x)
6.2.3.1. El histograma asociado a una distribicion
de probabilidad W (x) en el intervalo a x b. Se
Se tiene una secuencia x j con distribucion

divide este intervalo en M pequenos


intervalos iguales de largo = ba
M . Si la secuencia es de

largo N suficientemente grande, el intervalo k-esimo debiera contener Hk puntos de la secuencia


con
(b a) N
wk ,
k = 1,...M
Hk
M

donde wk es el valor de W (x) en el punto medio del k-esimo


intervalo.
Si la igualdad anterior se divide por N y se suma sobre k, el lado izquierdo arroja necesaria
mente 1, muentras que el lado derecho arroja el valor de la integral W (x) dx en la aproximacion
trapezoidal con error O(M 2 ).

6.2.4.

El caso de n variables

descrito puede ser generaEl razonamiento recien


lizado a n variables. Se tiene un n-uplo de variables
aleatorias, X = {x1 , . . . , xn } en un dominio DX con distri W (X ). Ademas
se tiene una funcion
invertible,
bucion
en el
Y = G(X ), donde las nuevas variables Y estan,
G induce una
dominio DY = G(DX ). La transformacion
W (Y ) para las variables Y y ambas distridistribucion
buciones se relacionan por
W (Y ) =

W (X )
J(Y ; X )

W(Y )

W(X )
.

D(Y)

D(X)

Figura 6.3: Se tiene un n-uplo X de varia


bles aleatorias en un dominio DX con distribucion
se tiene una funcion
invertible,
W (X). Ademas
en
Y = G(X), donde las nuevas variables Y estan,
G inel dominio DY = G(DX ). La transformacion
W (Y ) para las variables Y .
duce una distribucion

X=G1 (Y )

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


W (Y ) dY = W (Y ) J(Y ; X ) dX = W (X ) dX
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

81

es, al igual que en la subseccion


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

X = G (Y ) los cuales tienen una distribucion


W (X ) = J(Y ; X )

(6.2.10)

Un ejemplo de esto se da a continuacion.

6.2.5.

Uso de W (x1 , x2 ) para generar gaussianas

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

2
1
2
e(xa) /2 ,
2

esta trivialmente relacionada con la distribucion


centrada en el origen y con vaLa distribucion
riancia unidad:
2
1
(6.2.11)
W (x) = ex /2
2
x
g(x) =
que tampoco se puede resolver en forma directa porque la funcion
W (x ) dx no puede
g1 .
ser escrita con funciones elementales, ni menos se puede obtener la funcion

generar pares (x1 , x2 ) con la distribucion

Sin embargo, como veremos, es facil


W (x1 , x2 ) =

2 (x21 +x22 )/2


e
,

0 xi <

con

i = 1, 2

(6.2.12)

que esta correctamente normalizada,

W (x1 , x2 ) dx1 dx2 = 1

En efecto, si se hace el cambio de variable


y1 =

x2
2
arctan

x1
(x21 +x22 )/2

y2 = e

y1
2

x1 =

2 ln y2 cos

x2 =

y1
2 ln y2 sin
2

(6.2.13)

es precisamente
se obtiene que el Jacobiano de la transformacion
J(Y ; X ) = W (x1 , x2 ) =

2 (x21 +x22 )/2


e

(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
(6.2.12).
una secuencia de puntos en el plano (x1 , x2 ) con la distribucion
Universidad de Chile

Escuela de Ingeniera y Ciencias

MONTE CARLO
6.3. INTEGRACION

Ecuaciones Difrenreciales Ordinarias

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define
PI
M_PI
#define
N
200
#define
Max
1e+8 /*100 millones*/
int j,Suma;
int H[2*N];
double X1,Y1,Y2;
FILE *arch;
void generador()
{ Y1 = drand48();
.
Y2 = drand48();
X1 = 0.2*sqrt(-2*log(Y2))*cos(0.5*PI*Y1);}
void Inicia()
{ for(j=0; j<(2*N); j++) H[j] = 0;
Suma = 0;}
void Histograma()
{ int s;
for(j=0; j<Max; j++)
{ generador();
s = (int) (N*X1);
if(s<(2*N))
{ H[s]++;
Suma++; }}}

void Guarda()
{ arch = fopen("gaussiana.dat","wt");
for(j=0; j<2*N; j++)
{ printf("%4d %8d\n",j,H[j]);
fprintf(arch,"%g \t %g\n",
(1.0*j/N),(1.0*H[j]/H[0]));}
fclose(arch);
}

main()
{ Inicia();
Histograma();
Guarda();
printf("# de puntos admitidos = %d.\n",Suma);
printf("De modo que se acepto el %14.10f por
ciento de los puntos\n",100.0*Suma/Max);
}

Figura 6.4: Codigo que permite generar una distribuion Gaussiana. Se recomienda graficar los datos guardados [x, N W (x)] y
tambien [x, log(N W (x)] donde N se escogio para
que la distribucion valga 1 en el origen.
Una distribucion Gaussiana normalizada en el intervalo 0 x < es W = (2b/ ) exp[b2 x2 ] de modo que W (0) = 2b/ .

6.3.
6.3.1.

Monte Carlo
Integracion
El problema

Se discutira la forma de calcular

f (x) dx

I=
a

utilizando secuencias de numeros

aleatorios.

6.3.2.

Primera forma

W
Sea {x j } j=1..N una muestra aleatoria de valores de la variable aleatoria x con distribucion
1
a promediar, entonces
y f es la funcion
en (a, b). Si en (6.2.2) se toma W (x) = cte = ba
f =
que, por (6.2.4) es
buida en (a, b),

1
N

f (x) dx
a

f j . Multiplicando por (b a) se obtiene que si x esta uniformemente distrib

1
ba

ba
f (x) dx
N

fj

j=1

ba

1
N

j=1

f j2

1
N

fj

(6.3.1)

j=1

f
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

83

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

estandar

La incertidumbre con que se evalua la integral depende tanto de la desviacion


N de la muestra. Notese

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


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

regla trapeziodal que es O(N 2 ). Sin embargo, como se vera en 6.3.3, en el calculo
de integrales

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

f (x) dx =
a

ba
N

f (x j ) + O( N ) ,

j=1

Este metodo
da, por lo general, resultados pobres, sal N muy grande o
vo que se use muestras de tamano
bien f vare poco en el intervalo. Un punto a favor es
que se usa un solo drand48 y no hay ningun
if.

x j U (a, b)

MC1

(6.3.2)

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

Si f = f0 es constante la integral es exactamente


f0
(b a) f0 , y el lado derecho vale (ba)
N = (b a) f0
N
para todo N. La forma (6.3.2) de calcular una integral
ingenua forma de integrar usando numeros
es la mas

Monte Carlo.
aleatorios dentro de aquellas que pertenecen a la categora integracion

Por ejemplo el calculo


de

0 sin(x) dx:

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

de N para as ver el tipo de


y tal vez puede hacer un grafico
de los que toma intgr como funcion
8
convergencia. Posiblemente conviene tomar n = 10 y guardar el valor de la integral una vez cada
105 sumandos.
es constante el resultado que arroja MC1, (6.3.2), es
Como se acaba de comentar, si la funcion

exacto (en particular no depende de N) y si f vara muy poco este metodo


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

descrito es que es aplicable tan solo si el dominio


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

El algoritmo MC1 es generalizable a muchas dimensiones con la siguiente dificultad: si el


se define como relaciones entre las variables (por ejemplo x2 + y2 < 1 &
dominio de integracion

x y > 0) se debe encontrar una forma economica


de generar puntos uniformemente distribuidos
Universidad de Chile

Escuela de Ingeniera y Ciencias

MONTE CARLO
6.3. INTEGRACION

Ecuaciones Difrenreciales Ordinarias

Normalmente la unica
razonable consiste en generar
sobre ese dominio y nada mas.

solucion
grande pero sencillo (por ejemplo 1 x
puntos uniformemente distribuidos en un dominio mas

1 & 1 y 1) y hacer uso tan solo de los puntos que caen dentro del dominio de interes.
adelante sera util

Mas
tener presente que la propia formula
MC1 sugiere que una forma de
calcular f W es
f

ba
N

W (x j ) f (x j )

con

j=1

x j U (a, b)

(6.3.3)

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).
este
Ya se ha comentado que si el integrando vara fuertemente en el dominio de integracion
algoritmo puede dar resultados muy pobres. Una forma sencillaque suele dar buenos resultados

integrable f (x) que sea


sin abandonar lo basico
de MC1consiste en encontrar una funcion
se cumple que f (x)
parecida a f (x). Es decir, si se conoce el valor I = ab f (x) dx y ademas
suficientemente plana en el dominio (de modo que MC1 en ella es
f (x) f (x) es una funcion
satisfactoria) la integral se puede calcular usando
b

b
a

f (x) dx I +

f (x) dx

MC1b

(6.3.4)

con MC1

6.3.3.

Aplicabilidad de los metodos


Monte Carlo

Si se quiere calcular una integral con metodos


tradicionales (trapezoidal, Simpson etc) en
D tomando un total de N puntos, los intervalos en cada dimension
deben ser subdividimenson
h N 1/D . La integral en cada dimension
arroja un error de
didos en N 1/D intervalos de tamano

order O(h ) ( = 2 con el metodo


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

6.3.4.

Metodo
explcito

de la funcion
en este intervalo es muy grande o
Se desea calcular ab F(x) dx pero la variacion

el intervalo es infinito o ambas cosas a la vez. En tal caso se debe seguir el siguiente metodo
que
w(x) tal que f (x) = F(x)/w(x),
se basa en escoger una distribucion
b

I=
a
2013
version

F(x) dx =

w(x) f (x) dx

(6.3.5)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

85

donde w(x) debe satisfacer


b

w(x) 0

en (a, b)

w(x) dx = 1

(6.3.6)

Haciendo el cambio de variable


x

y = g(x) =
a

w(x ) dx

g(a) = 0 ,

g(b) = 1

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

dx =

dy
w(x)

que permite escribir


1

I=
0

f g1 (y) dy =

pero f (y j ) = f (g1 (y j )) =
I

1
N

F(x j )
w(x j ) x =g1 (y )
j
j
N

j=1

F(x j )
w(x j )

1
0

f (y) dy

1
f (y j )
N
j

y j U (0, 1)

(6.3.7)

por lo cual
con

x j =g1 (y j )

y j U (0, 1)

MC2

(6.3.8)

En lugar de usar x U (0, 1) como en MC1, se usa una secuencia sesgada x j = g1 (y j ) para
f = F/w.
sumar valores de la funcion

estandar

Este metodo
es exitoso si la desviacion
de los valores f (y j ) = [ f (x j )]x j =g1 (y j ) es
Lo ideal sera escoger w proporcional a F, de tal modo que f sea tan solo una constante.
pequena.
Esto en general no es posible si se desea satisfacer las condiciones de hacer analticamente la
inversa g1 .
integral g(x) = x w dx y de conocer la funcion
En resumen el algoritmo MC2 explcito esta descrito en la figura 6.5. El error en el caso MC2

continua siendo O( f /N 1/2 ). La diferencia esta en que con MC2 se puede lograr una desviacion

estandar
mucho menor.
debe ser entendido aplicable al caso multidimensional.
Todo lo que se ha dicho en esta seccion

Ejemplo. Se plantea calcular numericamente


la integral I =
vale 1 y se escoge w(x) =

1 x/a
.
ae

2 x2
e dx
0

que se sabe que

Con este w se obtiene que


x

y = g(x) =
0

1 x /a
e
dx = 1 ex/a
a

que se puede invertir a


relacion
x = a ln(1 y)
Es decir, si la secuencia y j proviene de U(0, 1) entonces x j = a ln(1 y) se distribuye de
lo que permite
acuerdo a w(x) = 1a ex/a . Pero los y j y los 1 y j tienen la misma distribucion
escribir
2a
2
2a
2
f (x) = ex +x/a ,
f (y) = y(1+a ln y)

Universidad de Chile

Escuela de Ingeniera y Ciencias

MONTE CARLO
6.3. INTEGRACION

Ecuaciones Difrenreciales Ordinarias

I =

MC2 explicto

F(x) dx
a
1

=
0

F(x)
w(x)

dy
x=g1 (y)

F(x j )
1

N j w(x j )

y j U (0, 1)

con
x j =g1 (y j )

(6.3.9)

donde g = 0x w(x ) dx y w se escoje para que la funcion f sea de poco contraste


en el intervalo [0, 1]
f (y) =

F(x)
w(x)

w(x) dx = 1

w(a x b) 0 ,

x=g1 (y)

Figura 6.5: El algoritmo MC2.


y la integral I en la forma aproximada
I

2a

j=1

2 +x/a

ex

x j =a ln(y j )

2a

ea ln (y j )ln(y j ) ,

j=1

y j U(0, 1)

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

6.3.5.

Estrategia de von Neumann

F(x) no negativa en el intervalo (a, b) y sea F0 un valor mayor o


Consideremos una funcion
igual al mayor valor de F(x) en el intervalo. En la figura 6.6 se ha dibujado la curva F(x) en una

caja de altura F0 y base (b a). El area


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

I=
a

2013
version

F(x) dx

n1
(b a) F0
n

(6.3.10)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

87

Para hacer integrales de funciones que cambian de signo se debe integrar separadamente cada tramo donde no haya cambio

de signo. Este metodo


resulta muy pobre si F(x) es de alto contraste. En general primero se debe hacer un cambio de variable.

F(x)

Patricio Cordero

Una rutina que ejecuta el calculo


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

no
Figura 6.6: Dada una funcion
negativa en x (a, b) la estrategia
de von Neumann permite calcular la
integral ab F(x) dx usando numeros

aleatorios.

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 secuancia que resulta tiene asociada una
F(x)
W (x) = (ba)
distribucion
F0 .

Pruebe el metodo
calculando

0 sin x dx.

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

if. Comparese
con MC1.

6.3.6.

Monte Carlo en dimension


D
Integracion

Monte Carlo en dimension


D toma las formas ya vistas. La formula

La integracion
basica
es la
trivial de (6.3.1),
generalizacion
f (r ) dV = V f

U(V ) V

f2 f
N

(6.3.11)

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


A =

1
N

A(ri)

i=1

ri U (V )

(6.3.12)

y U (V ) designa un generador de puntos aleatorios y uniformemente distribuidos en el volumen V


La integral se puede calcular usando una extencion
directa de MC1, (6.3.2),
de integracion.
f (r ) dV =

V
N

f (ri ) ,

i=1

ri U (V )

(6.3.13)

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

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

6.4. LA ESTRATEGIA METROPOLIS PARA CALCULAR PROMEDIOS

los fi
Vs que contiene a V y se genera puntos uniformemente distribuidos en Vs y se suma solo
que corresponden a puntos en el interior de V . En tal caso la integral se calcula como
f (r ) dV =

Vs
N

f (ri ) ,

i=1

ri U (Vs )

(6.3.14)

y N son todos los puntos generados dentro de Vs . Si f fuese una constante f (x) = f0 entonces el
resultado anterior sera I = nN1 Vs f0 donde n1 son los puntos que caen dentro de V , pero n1 /N V /Vs
y entonces se obtiene I V f0 que es lo que debe ser.

Suele tener que hacerse cambios de variable (por ejemplo si el dominio es infinito o la funcion
tiene variancia grande). El cambio que se haga tiene que ser explcito.

6.4.

La estrategia Metropolis para calcular promedios

6.4.1.

El algoritmo de Metropolis

El algoritmo de Metropolis1 fue concebido originalmente en el contexto de Mecanica


Estadstica para calcular promedios asociados a sistemas estadsticos en equilibrio. Esta estrategia sin
embargo es de gran generalidad y primero sera presentada sin hacer uso de los detalles que

Mecanica
Estadstica requiere. Luego se vera como
se aplica, en particular, en esa area.
Reducido a su esencia, el algoritmo representa una estrategia para generar una secuencia
de probabilidad W en un un espacio de puntos X sobre los
X W (X ) para cualquier distribucion
de probabilidad W (X ). En un sentido muy poderoso, Meque se pueda asociar una distribucion

tropolis resuelve el problema planteado en (6.2.4) con un codigo


eficiente y breve. Un promedio,

como senala
(6.2.4), se logra con el simple promedio aritmetico
de los valores generados.
Primero se va a definir el algoritmo de Metropolis y luego se va a argumentar que tiene las
propiedades deseadas.
El algoritmo. Se escoge una semilla X0 y se entra en el ciclo que sigue donde, a partir del
ultimo

punto Xn , se define un nuevo punto X p el cual puede ser aceptado o rechazado. El esquema
es el siguiente:
adelante, para generar, a partir
a) Se usa alguna regla, cuyas propiedasdes se discuten mas

de Xn , un X p (el subndice p es por prueba). Esta regla debe ser simetrica,


en el sentido
que sea igualmente problable generar X p si se proviene de Xn que vice versa.
b) Se acepta o rechaza X p se acuerdo a
if

W (X p )
>r
W (Xn )

then Xn+1 = X p

else

Xn+1 = Xn

(6.4.1)

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


1 Nicholas

2013
version

C. Metropolis, griego (1915-1999); su vida cientfica fue en EEUU

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

89

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


probable que Xn . Si, por el contrario, X p
Es decir, X p es aceptado incondicionalmente si es mas

es menos probable que Xn solo a veces X p es aceptado. Se subraya que con este metodo
la
secuencia {Xn } tiene puntos repetidos por cada vez que un X p no es aceptado. Esto debe ser
as por razones estadsticas.
es la probabilidad P(x) de que un numero
Dado un numero

x en el intervalo (0, 1), cual

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

de los X p este en
Lo optimo
al generar una secuencia Metropolis es que la tasa de aceptacion
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 algun

entre ellos. Una forma de resolver esto consiste en no


sentido) lo que implica una correlacion
uno de cada de ellos. El valor
utilizar todos los X j generados, sino que se toma en cuenta solo
de depende del problema que se este resolviendo.
En muchos casos interesantes en fsica la probabilidad W es proporcional a la exponencial
eE/kT : menos la energa (E) dividida por kT (k es la constante de Boltzmann y T la temperatura
en grados Kelvin). Si la temparatura se mide en unidades de energa se puede sustituir kT por T
y W eE/T .

En tales casos la condicion

identica
a

W (X p )
W (Xn )

es
> r es identica
a e(En E p )/T > r y a su vez esta condicion
En E p > T ln r

(6.4.2)

rapida

que, computacionalmente, puede ser mas


y manejable.

6.4.2.

Por que funciona


(i)

Supongamos que se han generado N secuencias de largo n a partir de N 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 sera aceptado o
hay un cambio en Dn que se debe a traspaso neto de puntos
rechazado. Al iterar una vez mas
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

ganancia

perdida

Dn(Y ) P(X Y )

P(Y X ) Dn (X )

P(X Y ) Dn (Y )

Universidad de Chile

(6.4.3)

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

6.4. LA ESTRATEGIA METROPOLIS PARA CALCULAR PROMEDIOS

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


se
esto es, D se anula.
alcanza un estado de equilibrio en el sentido que D(X ) ya no evoluciona mas,
general que anula el lado derecho es muy difcil de encontrar. No demostraremos que
La solucion
requiere que el corchete sea nulo para todos los pares (X ,Y ).
la solucion
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 esta muy cerca de Deq y ocurre que

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

(6.4.5)

el factor en el corchete en (6.4.3) es negativo y hay traspaso neto hacia Y , lo que acerca a D(X )
al equilibrio. Las dos ultimas

propiedades muestran que el mecanismo anterior conduce a un


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

(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
de la estrategia de Metroposi la semilla es X . Por definicion

lis pXY es simetrica:


pXY = pY X . Entonces (6.4.4) se puede
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
WX

AXY
AY X

WX < WY
1
WX /WY

WY < WX
WY /WX
1

Probabilidad de
aceptar estado Y

Si WX < WY , se ve que
> 1 es mayor que cualquier r
WY WX
y Xn+1 = Y . Esto se traduce en el 1 del primer casillero
de la tabla.
Figura 6.7: En la tanla de arriba se
WY
si WX es
Si WX > WY , es decir WX < 1, la probabilidad de aceptar da los valores de A segun
menos
o
mayor
de
W
.
Y
WY
a Y es W
, que es el valor superior derecho de la tabla.
X

abajo en la tabla para el caso en que Y es


En forma similar se obtiene los valores que estan
la semilla y X es el que se acepta o rechaza. Se comprueba inmediatamente que el valor del
cuociente AY X /AXY es siempre el mismo y es WX /WY , es decir,
Deq (X ) WX
=
Deq (Y ) WY
2013
version

(6.4.8)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

91

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 analisis
anterior se hizo uso de la ya cidada propiedad elemental: dado un x en el
intervalo (0, 1), la probabilidad de que un r U (0, 1) este entre 0 y x es exactamente P = x.

6.4.3.

Metropolis en mecanica
estadstica

Es muy tpico considerar un sistema de N partculas cuyo hamiltoniano es de la forma H =

+ a<b Vab y querer calcular, por ejemplo, un promedio estadstico canonico


de una cantidad
que solo depende de las posiciones de las partculas, A(ra ) como
p2
a 2ma

A =

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

(6.4.9)

donde V = a<b Vab quiere decir la energa potencial total del sistema y la suma (integral) es sobre
los estados configuracionales del sistema. Normalmente lo anterior es una integral d N r sobre

todas las posiciones posibles de las partculas del sistema. En la practica


la cantidad de estados
es un continuo que no puede ser integrado o es un discreto gigantezco, de modo que lo que
se hace es un muestreo del espacio de estados, tal como se hace en la integral Monte Carlo.

W
El metodo
de Metropolis genera estados (configuracionales) directamente con la distribucion
requerida, por ejemplo,
e V
(6.4.10)
W=
e V

Cuando, por ejemplo, se calcula en mecanica


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

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

que cada partcula interactua

Xn X p se cambia las coordenadas de una so- tan solo con aquellas que estan
Si en la iteracion

la partculala partcula k-esimark r k entonces en la diferencia en su propia celda o en las cel

(6.4.11) la mayora de los terminos


se cancela identicamente
y queda das vecinas.
tan solo aquellos que involucran a la partcula k,
V = V (ra r k ) V (ra rk )

(6.4.12)

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

hacer calculos
sobre sistemas muy grandes.
Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

6.4. LA ESTRATEGIA METROPOLIS PARA CALCULAR PROMEDIOS

viene de una aproximacion


que solo puede hacerse si el potencial Vab decae
La solucion

alla de
suficientemente rapido.
Si decae rapido
se opta por aproximar a cero el potencial mas
V (rab R0 ) = 0. Se dice que R0 es el radio de
una distancia R0 , es decir, se hace la aproximacion
influencia de cada partcula. Una vez que se ha escogido el valor de R0 el sistema se divide en
mayor o igual a R0 . De esta manera se logra que cada partcula solo
celdas cubicas

de tamano
en su propia celda o en alguna de las celdas vecinas. Por cada
interactue con otras que estan
celda c el programa mantiene una lista Lc con el nombre de las partculas que hay en c y cada
vez que una partcula cambia de celda el programa actualiza borrando a esa partcula de la lista

que deja y anotandola


en la nueva. La suma (6.4.12) se hace tan solo sobre las partculas de las
N del sistema y se dice que es
celdas que corresponda. Esta suma ya no dependen del tamano
O(1) precisamente porque no depende de N.
del estado de prueba X p no es un asunto enteramente trivial. Si es muy cercano
La generacion
puede ser muy alta y puede haber una gran correlacion
entre
a Xn la probabilidad de aceptacion
los estados sucesivos. Por otro lado, si X p es muy lejano a Xn la probabilidad de rechazo puede
maxima.

ser muy alta lo que hace muy probable que Xn+1 = Xn lo que implica correlacion
de los X p sea ajustado
En la literatura en el tema suele decirse que el algoritmo de generacion
de alrededor de 50 %. Y ademas

en una corrida en blanco para lograr una tasa de aceptacion


para promediar no se tome todos los estados de la secuencia {Xn } sino uno de cada K estados,
entre estados consecutivos. Mi experiencia es que hay
para desminuir los efectos de correlacion
casos en que lo anterior es claramente inconveniente.
sobre los temas de este captulo se recomienda
Para saber mas

- Monte Carlo Methods in Statistical Physics, M.E.J. Newman & G.T. Barkena, Clarendon Press,

Oxford, 1999.

- A guide to Monte Carlo Simulations in Statistical Physics, D.P. Landau, K. Binder, Cambridge
University Press, 2000.

6.4.4.

Propiedades necesarias

Un algoritmo como el de Metropolis genera una secuencia de puntos X distribuidos segun

W (X ). El algoritmo debe cumplir con una serie de propiedades para ser satisfactorio a los proposi
tos de Mecanica
Estadstica.
Estas propiedades no necesariamente se refieren a toda la historia de la secuencia generada, sino a las propiedades que la secuencia alcanza una vez que ha relajado al equilibrio. Es
porque si el punto de partida es muy improbable, la primera parte de la
necesaria esta aclaracion
W (X ). Pero tarde
secuencia puede ocurrir en una zona muy poco representativa de la distribucion
o temprano la secuencia va a alcanzar las zonas importantes de W y es a partir de ah que se
dice que se tiene propiedades de equilibrio.
Proceso de Markov. Para los fines de este captulo, un proceso de Markov genera aleatoriamente
una secuencia de puntos X en algun
espacio cumpliendo ciertas propiedades. La probabilidad
P(X ,Y ) de generar el punto Y si se proviene del punto X solo depende de estos dos puntos. En
particular no depende de la historia anterior de la secuencia y debe satisfacer Y P(X ,Y ) = 1,
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

93

es decir, dado un X siempre se produce un Y . La probabilidad P(X , X ) puede ser no nula (en el
algoritmo de Metropolis claramente es no nula).
Ergodicidad. Se desea que, sin importar el punto X0 de partida, la secuencia debe en algun

aun, la
momento alcanzar un punto arbitrariamente cercano a X con probabilidad no nula. Mas
frecuencia con que la secuencia visita una vecindad de X debe ser proporcional a W (X ).
de haber
Balance detallado. Si se considera la parte de la secuencia que se tiene despues
llegado al equilibrio, la probabilidad de alcanzar un punto 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 ).
restrictivo:
El balance detallado exige algo mas
W (X ) P(X ,Y ) = W (Y ) P(Y, X )

Esta ultima

exigenciaaunque no se justificaragarantiza
que la secuencia efectivamente alcanza un equilibrio y no es atrapada en algun
tipo de ciclo lmite. En el caso de Metropolis esta
propiedad quedo establecida en (6.4.7).

6.4.5.

Integrales usando el algoritmo de Metropolis

6.4.5.1. Caso unidimensional


Para calcular la integral
b

I=

f (x) dx ,

con

f (x) 0 ,

x (a, b)

en el intervalo (a, b) se divide el intervalo en M trozos iguales de largo h = ba


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


Q

H[ j]
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 dira que Q = HP / fP , donde
P quiere decir muy probable. Puesto que la integral se puede aproximar por
h
Nh
I h f j H[ j] =
Q
Q
j
donde N = j H[ j] es el largo de la secuencia que se ha generado. De lo anterior se obtiene que
N h fP
(6.4.13)
HP
final muestra que no se necesita construir un histograma. Todo lo que interesa es
Esta expresion
zona del dominio de integracion,
donde
el largo N de la secuencia, el volumen h de una pequena
tiene un valor significativo fP y, por ultimo,
la funcion

el numero

entero HP de elementos xk de la
en este dominio.
secuencia que estan
I

Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

6.5. PROBLEMAS

6.4.5.2. Caso general


Se desea hacer la integral
f (X ) dX
V

no negativa en el dominio V de integracion.


Se escoge algun
de una funcion
punto X0 del dominio

en el cual f (X ) tenga un valor relativamente grande (ojala un maximo)


y se escoge un pequeno
es una constante f0 . Se puede
volumen en torno a X0 donde se pueda suponer que la funcion
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
volumen es
pequeno
f0
n1
p=
=
n
f
(X
)
dX
V
de donde se despeja que
V

f (X ) dX

n
f0
n1

(6.4.14)

Para que este algoritmo sea efectivo, primero debe correrse un ciclo que ajuste el criterio de
de X p que termine arrojando una tasa de aceptacion
del orden del 50 %. Solo entonces
generacion
se comienza a calcular la integral.

6.5.

Problemas

6.1 Determine un mnimo de la energa potencial E asociada a un sistema bidimensional de 20


partculas puntuales que interactuan de a pares con el potencial
Vab = 4

1
1
4
8
rab
rab

donde rab es la distancia entre a y b. Las partculas se pueden mover tan solo en el plano
0 ya 10. Suponga que una de las partculas
XY con coordenadas 0 xa 10 y tambien
esta fija en x = 5, y = 5 y que otra solo puede moverse en el eje X con y = 5. Un sistema de
adelante se
este tipo esta en su mnimo de energa tan solo si esta a temperatura cero. Mas

vera como
determinar estados representativos asociados a una cierta temperatura. Como
inicial coloque a las partculas desordenadamente dentro de la caja de 10
configuracion
del sistema se hace en forma aleatoria intentando modificar una sola
10. La evolucion
coordenada a la vez en la forma znueva = zactual + (0,5 drand48()) y el nuevo valor se
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

95

acepta tan solo si la energa disminuye. Conviene aumentar el valor de (por ejemplo en
un 50 %) cuando znueva es aceptado y disminuirlo levemente cuando znueva es rechazado,

a Explique muy claramente el procedimiento seguido. b Haga un grafico


por que?
de la energa como funcion
del numero
(o una tabla) con la evolucion

de ciclos, donde se
define como ciclo el conjunto de las 37 iteraciones que intentan modificar cada una de las
37 coordenadas del sistema libres de variar. c Una vez que haya obtenido un mnimo de
de las partculas. Interprete el valor de E en base: a este dibujo y a la
E dibuje la posicion
para Vab .
expresion
6.2 Calcule la integral

0 sin x dx,

f = sin x, usando MC2, factorizandolo en la forma f = w h con


w=

3
1 2 x
2

y compare la velocidad de convergencia con el resultado de integrar en forma directa usando


MC1.
6.3 Compruebe que
con y j U (0, 1).

I=

sin x
1 x3

dx puede calcularse usando y = 1x en la forma I

1
N

j y j sin(1/y j )

6.4 Obtenga el valor de la integral 9-dimensional


x41 + 2x42 + 3x43 + .. + 9x49 dx1 ..dx9

dentro de una hiperesfera de radio 2 sin hacer cambio de variables. Estime el valor numerico
del error de su resultado. El resultado muy aproximadamente es 6,3 103 .
6.5 Escriba y ejecute un programa inteligente que genere una secuencia aleatoria {xk } de 20
millones de valores que se distribuyan segun

W (x) =

2x
(1 + x2 )2

con

0x

Haga un histograma H[k] que registre la frecuencia de ocurrencia de los valores 0 x 20


en celdas de largo 0.1, es decir, el histograma tiene 200 componentes. Que porciento

de la secuencia esta en este intervalo? En un mismo grafico


superponga los valores de

W (x j ) y del histograma normalizado, es decir los valores N H[ j], como


debe hacerse la
realmente? como

el
comparacion
se escoge N ? Explique en detalle. Obtenga ademas
promedio Monte Carlo de ex 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 funcion

1
2
2
W (x) = 2 e(x1) + 3 e(x+1)
5

para generar con el algoritmo de Metropolis una secuencia {xn } partiendo de x0 escogido a
gusto entre -2 y 2 y definiendo x p = xn + donde U (1, 1) y 6,0 (s, dice 6.0). La
literatura dice que un buen es aquel que implica que aproximadamente la mitad de los x p
drand48() de C inicializada una sola vez con srand48(M),
son aceptados. Use la funcion
Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecuaciones Difrenreciales Ordinarias

6.5. PROBLEMAS

y M es un entero cualquiera. Haga un histograma hk (k = 0.,799) de los valores de la secuencia que quepan dentro de 4 x 4, y dibuje 100 h j /n1 comparando con W (x) para 50 mil
y 5 millones de iteraciones, donde n1 el el numero

de puntos de la secuencia xn que cayeron


dentro de (4, 4). Por cada punto x que esta en tal intervalo se puede hacer:
j = (int) (100.0*(4.0 + x));
h[j]++;
n1++;
de mas
arriba sera j
Si el histograma fuese h[0 j < N] puede comprobar que la instruccion
= (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.7 Considere un sistema unidimensional de 11 varas de largo 1 dentro de una caja de largo
entre ellas es de energa potencial V0 = 1 si se penetran y
14. Suponga que la interaccion
nula si no se tocan. Por medio del algoritmo de Metropolis obtenga la densidad n(x) media

del sistema. Para ello divida la caja en 200 intervalos y determine numericamente
la proba del centro de cada vara en cada uno de los 200 intervalos. Es claro que
bilidad de ocupacion
determine la probabilidad g(x) de que la partcula 6 (la central) tenga
n(x) dx = 1. Tambien
g(x) se llama funcion
de correlacion

distancia relativa x con alguna otra partcula. La funcion

de pares. Haga variar esta distancia x relativa en el intervalo (0, 5) y haga una normalizacion

arbitrara a g(x). Para unas tres temperaturas diferentes obtenga tanto la densidad 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 partculas interactuando con un potencial
Vab = 4

1
1
6
12
rab
rab

inicializadas en orden cristalografico


triangular (hexagonal de cara centrada) en tres filas de
lineal
10 partculas. Utilizando el algoritmo de Metropolis estudie el coeficiente de expansion
de la temperatura.
del sistema (cambio de la longitud media del sistema) como funcion
Comience con una temperatura muy baja (T = 0,001). Con cada nueva temperatura se co final que se obtuvo con la temperatura anterior. Al cambiar de
mienza de la configuracion
temperatura el sistema debe ser relajado (unas 30 mil iteraciones) antes de comenzar a
medir.

6.9 Considere el modelo de Ising ferromagnetico


en dos dimensiones definido sobre un reticulado cuadrado, descrito por el hamiltoniano
H = J

Si j Skl B Si j

(i, j) (k,l)

(i, j)

donde las variables dinamicas


Si j solo pueden tomar los valores 1, J es la constante de

acoplamiento positiva y B es el campo magnetico


multiplicado por el momento magnetico
de
cada spin. Los ndices (i, j) recorren la red cuadrada y los ndices (k, l) recorren los cuatro
vecinos del nodo (i, j), esto es,
(k, l) = {(i 1, j); (i + 1, j); (i, j 1); (i, j + 1)}
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

97

Se debe usar una red cuadrada de N N spines con condiciones de borde periodicas.
Cada

producto Si j Skl tiene asociado en forma natural un trazo elemental de la red y el termino
J (i, j) (k,l) Si j Skl debe entenderse como una suma sobre todos los trazos elementales de
la red, sumando una sola vez cada trazo.

Para usar las condiciones de borde periodicas


sin complicaciones, la lista de spines vecinos
se llama de la siguiente forma
(k, l) = {(i1 mod N, j); (i+1 mod N, j)(i, j1 mod N); (i, j+1 mod N)}
resto, que en C corresponde al operador %.
donde mod es la funcion
instantanea

Se define la magnetizacion
como
M=

Si j
(i, j)

Se desea medir la curva M(T ) para B = 0 y la curva M(B) para T = T0 < Tc . Si se usa
el sistema de unidades en que J = 1, mida la primera curva desde T = 0 a T = 3,0, y la
segunda curva desde B = 2 a B = 2, para T = 1,0. Debe hacer ambas curvas en los dos

sentidos, esto es, una vez aumentando y la otra disminuyendo el parametro


de control. Use
N = 50. Ademas,
de una pequena
interpretacion
de los resultados que
una red de tamano
obtenga e identifique la temperatura crtica.

Para construir cada curva, se propone usar el siguiente metodo.


Se genera primero una
al azar (cada spin toma al azar un valor 1 o -1). Luego, se relaja el sistema para
condicion

de relajar
una temperatura y campo magnetico
iguales al punto inicial de la curva. Despues
con esos parametros.

se promedia la magnetizacion
Se varan los parametros
y se usa
inicial el estado final que resulto de la simulacion
anterior. Despues
de una
como condicion
(porque como los parametros

breve relajacion
son similares, el estado de equilibrio debe ser
y as sucesivamente.
similar) se promedia la magnetizacion,

6.10 Considere el siguiente modelo para la molecula


H2 . La molecula
esta compuesta por dos

que
nucleos

de hidrogeno
(protones) a distancia L. En torno a cada nucleo

hay un electron

para la funcion
de onda de un electron

supondremos que esta en un orbital


s. La expresion
en ese orbital en torno a un nucleo

ubicado en R es
(r; R) =

a30

e|rR|/a0

(6.5.1)

donde a0 es el radio de Bohr.

entre elecEl operador de energa electrostatica


de la molecula,
que incluye la interaccion
trones y nucleos,

esta dado por


U (r1 , r2 ; R1 , R2 ) =

e2
e2
e2
e2
e2
e2

+
|r1 r2 | |r1 R1 | |r1 R2 | |r2 R1 | |r2 R2 | |R1 R2 |

(6.5.2)

donde r1 y r2 son las posiciones de los electrones, R1 y R2 las posiciones de los nucleos

ye

es la carga electronica.
Universidad de Chile

Escuela de Ingeniera y Ciencias

Ecs. diferemciales elpticas

6.5. PROBLEMAS

por spin de los electrones, el valor medio de la


Luego, sin considerar antisimetrizacion

energa electrostatica
es
U =

d 3 r1 d 3 r2 (r1 ; R1 )2 (r2 ; R2 )2 U (r1 , r2 ; R1 , R2 )

(6.5.3)

Use un sistema de unidades donde a0 = 1 y e = 1 y coloque a los nucleos

en R1 = L/2 y
R2 = L/2 . Se pide graficar U para separaciones 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 distribuyen 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 relativas.

2013
version

Facultad de Ciencias Fsicas y Matematicas

Captulo 7

Ecuaciones elpticas

sencillos para integrar


En este captulo y los que siguen se vera tan solo los metodos
mas

ecuaciones (normalmente lineales) a derivadas parciales. Existe una amplia variedad de metodos
refinados que no seran
mencionados.
mas

7.1.

y condiciones de borde
Ecuacion

de Poisson dentro de un dominio


Considerese
el sencillo caso bidimensional de una ecuacion
en el plano XY , con borde dado por una curva cerrada
2 = G(x, y)

(7.1.1)

Como condiciones de borde se puede imponer condiciones rgidas, o de Dirichlet


[] = [g1 (x, y)](x,y)

(7.1.2)

sobre las derivadas, por ejemplo,


o bien algun
tipo de condicion

= [g2 (x, y)](x,y)

(7.1.3)

y se llama condicion

es la derivada normal al borde del dominio de integracion


donde / n = n

de borde tipo Neumann. Cuando en todo el borde se tiene este tipo de condicion la solucion del
que se tenga se le puede agregar una constante arbiproblema no es unica

porque a la solucion
del mismo problema. Pero una ecuacion
como 2 = G(, x, y)
traria y sigue siendo una solucion
unica
puede tener condiciones de borde tipo Neumann en todos lados y tiene solucion

excepto
de autovalores (G = k(x, y) ).
que sea una ecuacion
en general se puede tener condiciones de borde mixtas,
Mas

n
La derivada

+ (x, y ) (x, y ) = [g(x, y)](x,y)

se debe entender como n donde n es la normal al borde.


99

(7.1.4)

Y CONDICIONES DE BORDE
7.1. ECUACION

Ecs. diferemciales elpticas

En todo lo que sigue se puede rehacer los calculos


considerando ecuaciones elpticas mas
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 metodos


de aquellos requeridos para integrar (7.1.1).

7.1.1.

Integral de accion

S[]
Definiendo la integral de accion
S[] =

dx dy

1
()2 + G
2

(7.1.6)

bajo la cual S permanece estacionariaesto es S = 0 y que sea comse busca la condicion


patible con las condiciones de borde rgidas,

S =

dx dy [ ( ) + G]

(7.1.7)

pero
( ) dx dy =

( ) dx dy

2 dx dy

(7.1.8)

La primera de las dos integrales de la derecha es equivalente a una integral sobre el borde de

la zona de integracion,

n ds

donde n es el vector normal al borde y ds es el elemento de arco. Puesto que no vara sobre

el borde (( ) = 0) la primera integral es nula concluyendose


que

S =

dx dy 2 + G

(7.1.9)

. Esto implica (7.1.1).


que debe ser nula para cualquier variacion
proviene del mnimo de la integral de accion,
el problema se reduce a
Puesto que la ecuacion
encontrar el mnimo de S compatible con las condiciones de borde.
como (7.1.5) basta con considerar la integral de accion

Para una ecuacion


S[] =

dx dy

1
p ()2 + F()
2

que implica la ecuacion


(p )

F
=0

F() puede, por ejemplo, ser 21 q 2 G.


2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

7.2.
7.2.1.

101

Discretizacion
en el volumen
Discretizacion

(7.1.1) puede ser discretizada en la forma


La ecuacion
i+1,k 2i,k + i1,k i,k+1 2i,k + i,k1
+
= Gik
h2
h2

(7.2.1)

se despeja i,k definiendose

de recurrencia para ir actualizando


De esta ecuacion
una relacion
los valores de los i,k
1
i+1,k + i1,k + i,k+1 + i,k1 h2 Gik
(7.2.2)
4
de recurrencia converge practicamente

Esta relacion
a partir de cualquier conjunto inicial de valores para i,k .
i,k

en general se define, en lugar de (7.2.2)


Algo mas

(7.2.3)
i+1,k + i1,k + i,k+1 + i,k1 h2 Gik
i,k (1 ) i,k +
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

metodo,
en general, no es convergente.
Si las condiciones de borde son tipo Dirichlet se puede usar
consideraciones cuidando no alterar
directamente (7.2.3) sin mas
los valores colocados al comienzo en los bordes.

(i,N)

(i1,N1) (i,N1)

(i+1,N1)

en los bordes en un caso tipo


7.2.2. Discretizacion
Neumann
(7.1.3) discretizada es
La condicion

Figura 7.1: Detalle de la discreti-

iN iN1 = h gi

en el borde superior del dozacion

(7.2.4) minio de integracion.

Al considerar (7.2.2) con k = N 1, a la derecha aparece un iN


que se reemplaza, usando la ultima

expresion, y se obtiene
4i,N1 = i+1,N1 + i1,N1 + {i,N1 + h gi } + i,N2 h2 Gi,N1

(7.2.5)

iN = iN1 + h gi

(7.2.7)

usada en lugar de i,N . De esta nueva expresion


se deduce
Entre llaves aparece la expresion

inmediatamente la relacion de recurrencia especfica para los puntos vecinos al borde,

i+1,N1 + i1,N1 + i,N2 h2 Gi,N1 + h gi


(7.2.6)
i,N1 (1 ) i,N1 +
3
Obtenidos los valores anteriores se actualiza los puntos del borde mismo con

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).
Universidad de Chile

Escuela de Ingeniera y Ciencias


7.2. DISCRETIZACION

Ecs. diferemciales elpticas

7.2.3.

Convergencia

en el volumen
7.2.3.1. Iteracion
lejos de los bordes.
Para estudiar la convergencia de (7.2.3) se utilizara la regla de iteracion
discreta de la integral de accion
es
La version
S=
i,k

1
2

ik i1 k
h

1
2

ik ik1
h

+ ik Gik h2

(7.2.8)

dS/dik = 0 para cada ik separadamente, basta con tomar


y, puesto que interesara la condicion

en cuenta de todas las contribuciones a S solo aquellas con terminos


que tienen un ik con ndices
fijos:
1
1
1
(ik i1 k )2 + + (i+1 k ik )2 + (ik ik1 )2
S =
2
2
2
1

sin ik
+ (ik+1 ik )2 + h2 ik Gik + terminos
2
= 22ik ik i1 k ik i+1 k ik ik1 ik ik+1

+h2 ik Gik + terminos


sin ik

= ik 2ik i1 k i+1 k ik1 ik+1 + h2 Gik + terminos


sin ik
B

= ik B + terminos
sin ik

(7.2.9)

para S se va a reemplazar ik por la expresion


dada en (7.2.3), definiendo
En esta expresion
as un nuevo valor S . Pero primero (7.2.3) sera reescrita para las necesidades actuales,

4 ik + i+1,k + i1,k + i,k+1 + i,k1 h2 Gik


i,k ik +
4
A= /4

ik + A

(7.2.10)

Notese
que A y B se relacionan por
2ik + B =

4
A

(7.2.11)

para S, tanto en el factor explcito ik como en


Al hacer el reemplazo (7.2.10) en la expresion
B se obtiene
S = (ik + A) (2A + B)
de S como
que permite calcular la variacion
= S S

= 2A2 + A (2ik + B)
4A
= 2A2 + A

2 2
= 2
A

( 2) 2
=

2013
version

(7.2.12)

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Numericos

103

Si < 0 el ultimo

factor es positivo, lo que no se quiere. Para que S disminuya se necesita < 0


lo que requiere que sea positivo y menor que dos,
0 2

(7.2.13)

De este sencillo analisis


parece desprenderse que el valor optimo
es = 1, sin embargo puede
cerca de 2 son los que dan una convergencia mucho mas

comprobarse que valores de mas

rapida.
Debido a errores numericos,
si se acerca mucho a 2, el algoritmo se desestabiliza y
diverge.
con condicion
de borde tipo Neumann
7.2.3.2. Iteracion

cuando se itera cerca


Se presenta en forma muy esquematica
la forma de obtener la condicion
de borde de tipo analizado en 7.2.2.
de un borde cuando se tiene las condicion
a la derecha en (7.2.6) sea i,N1 + . De esta
o Se define imponiendo que la expresion
2
se despeja h Gi,N1 .
ecuacion

o Se define Si,N1 como la suma de todos los terminos


de S que contienen i,N1 . Una vez
se elimina i,N usando (7.2.7), lo que da una nueva expresion

que se tiene esta expresion


para Si,N1 .
(7.2.6), lo que da una expresion

o En Si,N1 se sustituye i,N1 usando la regla de iteracion

que designamos Si,N1 .

que se obtuvo en
Si,N1 . En ella se sustituye h2 Gi,N1 por la expresion
o Se define = Si,N1
el primer paso.

El resultado de este procedimiento es

3 ( 2) 2

que nuevamente garantiza convergencia cuando se satisface (7.2.13).


de borde es tipo Neumann en todos los
Si el problema que se resuelve es (7.1.1) y la condicion
no es unica,
tambien
lo es + cte. Basta
bordes, entonces la solucion

porque si es solucion,

con fijar arbitrariamente el valor de en un punto del dominio para que el metodo
garantice
unicidad.

7.3.
7.3.1.

Fluidos incompresibles estacionarios


Las ecuaciones

Lo anterior se aplicara a un caso bidimensional que se deduce a partir de las ecuaciones

hidrodinamicas

+ ( v) = 0
t
Universidad de Chile

(7.3.1)
Escuela de Ingeniera y Ciencias

Ecs. diferemciales elpticas

7.3. FLUIDOS INCOMPRESIBLES ESTACIONARIOS

v
+ (v )v
t
T
+ (v ) T
t

= p + 2v + g

(7.3.2)

= 2 T

(7.3.3)

donde

= /0

densidad

presion
viscosidad

conductividad termica
corriente
funcion

viscosidad cinematica

v
T
g

velocidad hidrodinamica
temperatura
de gravedad
aceleracion
termica

coeficiente de expansion
lineal
vorticidad

Se va a hacer dos simplificaciones: (a) no hay dependencia temporal y (b) la densidad es

con gravedad donde se coloca


reemplazada por la densidad media 0 excepto en el termino

= (1 (T T0 )) 0 .

(7.3.4)

T0 es la temperatura media del sistema. En el caso de lquidos la densidad vara un poco, no


as en el caso de gases.
hidrostatica

Existe una sencilla solucion


a las ecuaciones anteriores si se supone que el fluido
esta entre una base a temperatura fija Tb en y = 0 y un borde superior a temperatura Tt en y = y1 ,
suponiendo que g = (0, g)
v = 0
T

p = g 0

7.3.2.

y
la temperatura cambia linealmente con la altura
y1
Tt Tb 2
y y + p0
2 y1

= Tb + (Tt Tb )

(7.3.5)

corriente, la vorticidad y la temEcuaciones estacionarias para la funcion


peratura

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
corriente, ,
el caso presente, se denomina funcion
vi = i j j

esto es en 2D

(7.3.7)

y 12 = 1 mientras que es un seudovector, lo que bidimensionalmente


Donde i j es antisimetrico
lo hace un seudoescalar,

u
y
y
=
v=
(7.3.8)
=

v
x
x

Notese
que esta definido salvo por una constante aditiva.
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

105

Adicionalmente se define la vorticidad, esencialmente como el rotor de la velocidad

= i j i v j
= 2

(7.3.9)

Las ecuaciones hidrodinamicas


originales se reducen a

= y x x y + g Tx

(7.3.10)

2 =

2 T

(7.3.11)

= y Tx x Ty

(7.3.12)

que es un sistema acoplado de tres ecuaciones diferenciales para los tres campos , y T .
(7.3.12) se desacopla de las otras de modo que basta
En problemas con g = 0, la ecuacion
con resolver solamente (7.3.10) acoplada con (7.3.11).
Las dimensiones de estas cantidades son
[ ] = [2 /t] ,

[T ] = [m2 /t 2 ] ,

[ ] = [1/t] ,

[ ] = [ ] = [2 /t]

(7.3.13)

(7.3.14)

E JERCICIO : Demostrar que


2 p = 20

7.3.3.

2 2
2

x2 y2
x y

Lneas de corriente


Si la curva , definida por [x(s), y(s)], es una curva en el plano XY sobre la cual la funcion
es constante se puede deducir que
0 =
=

d
ds

dx dy
+
x ds y ds

= v x + u y
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 lnea especfica, se debe imponer que sea constante
sobre esa lnea.
Universidad de Chile

Escuela de Ingeniera y Ciencias

TERMICA

7.4. PRIMER EJEMPLO: CONVECCION

Ecs. diferemciales elpticas

7.3.4.

discreta de y
Version

Las componentes de la velocidad son u y v. En terminos


discretos estas componentes se
asocian a los trazos horizonatales y verticales del reticulado, como lo muestra la figura y
uik =

i,k i,k1
h

vik =

i,k i1,k
h

Se puede pensar que en cada cuadrilatero


elemental hay una corriente ik en el sentido que indica la figura, y las componentes de la
velocidad resultan de sumar las corrientes que impone cada celda.
Por otro lado, la vorticidad es el rotor de la velocidad,

(7.3.15)

v
i,k

i1,k i,k

i,k1 ui,k

ik = (uy vx )ik
ui,k+1 ui,k vi+1,k vi,k

=
h
h
ui,k+1 vi+1,k ui,k + vi,k
=
h

(7.3.16)

Figura 7.2: Esta figura


ayuda a tener una imagen

En el nunmerador esta la suma de las componentes de la velocidad aso- pictorica

del significado lociadas a cada uno de los cuatro lados de la celda, tomando en cuenta cal de .
el signo segun
la forma que indica la figura.
En general se llama circulacin de un campo vectorial A por un camino cerrado a la integral,
C=

A dr.

(7.3.17)

El signo de la circulacin est ligado al signo con que se escoja recorrer a la curva cerrada . La
(7.3.16) es proporcional a la circulacion
de la velocidad v en una celda de integracion.

expresion

7.4.

termica

Primer ejemplo: conveccion

Esta vez se estudiara la dinamica


de un fluido 2D en una caja rectangular ABCD de Lx
Ly con pared inferior AB mantenida a temperatura fija T = Tb y pared superior CD mantenida a
temperatura fija T = Tt , Tb Tt . 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
T
x = 0 en los bordes verticales. Se debe resolver las tres ecuaciones acopladas (7.3.10), (7.3.11)
actual son,
y (7.3.12), que con la notacion

2
2

= y x x y + g T x

=
2

2013
version

= yT x xT y

(7.4.1)
(7.4.2)
(7.4.3)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

107

Puesto que las paredes son solidas


el campo de velocidad se anula en ellas lo que hace que el campo sea constante en todo el
permetro y se escoge nulo. La temperatura aparece solo derivada, lo que deja la libertad T c0 + T . Por ejemplo, se puede tomar
Ttop = 0 y Tbot = .

Tt
g

dT
=0
dx

dT
=0
dx

Tb
El problema se discretiza en un reticulado de Nx Ny y, pa- A
B
supondremos que se logra tener celdas
ra simplificar la notacion,

Figura 7.3: Note que los vertices


cuadradas de h h.

tienen nombres diferentes que en

En cuanto a la vorticidad se razona en forma parecida al la figura del flujo con obstaculo.

La
corriente es nula en todo el
funcion

caso visto anteriormente. Se comienza por hacer una expansion


de en potencias de h y hasta segundo orden en un punto (1, k) permetro.
a distancia h del borde izquierdo,

1k = 0k + h

+
0k

h2
2

2
x2

(7.4.4)
0k

es nulo porque es la
El primer termino
es nulo porque es nulo en el borde. El segundo tambien
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

0,k =

2
x2

=
0k

h2 1k

(7.4.5)

La ultima

igualdad viene de (7.4.4). En forma semejante se obtiene las condiciones de borde para
en los otros tres bordes. Todas ellas son:

0,k =

2
,
h2 1,k

i,N2 =

,
h2 i,N2 1

i,0 =

2
,
h2 i,1

N1 ,k =

.
h2 N1 1,k

(7.4.6)

Una forma interesante de adimensionalizar cuando se hace un analisis


de las ecuaciones
continuas es: xk = Ly xk , = y = L2 .
y

Las ecuaciones van a ser adimensionalizadas primero en forma generica


para luego buscar

la forma especfica mas conveniente. Se va a usar

= 1 ,

= 2 ,

T = T

(7.4.7)

se usara una forma compacta para los operadores diferenciales disdonde = Tb Tt . Ademas
cretos

1
1
(7.4.8)
2 = 2 2
= k
h
xk 2h
de tal modo que

2 f
k f
Universidad de Chile

=
=

fi+1,k + fi1,k + fi,k+1 + fi,k1 4 fik

fi,k+1 fi,k1

(7.4.9)
(7.4.10)
Escuela de Ingeniera y Ciencias

TERMICA

7.4. PRIMER EJEMPLO: CONVECCION

Ecs. diferemciales elpticas

las tres ecuaciones hidrodinamicas


entonces son

2
1 2
g
2 =
i T
(k i i k ) +
h2
4h2
2h
1
2 = 2
h2

1
2 T =
(k i T i k T )
2
h
4h2

(7.4.11)

sea
Escogiendo 2 = 1 /h2 se logra que la segunda ecuacion

2 =
y ahora las otras dos ecuaciones quedan

2 T

1
g h3
(k i i k ) +
i T
4
21
1
(k i T i k T )
4

Aparecen tres coeficientes numericos.


Se escoge 1 = 4 para que el primer coeficiente sea uno.

Automaticamente
el tercer coeficiente toma el valor
Pr

que se conoce como numero

de Prandtl. El segundo coeficiente puede ser escrito como

Ra
8 Pr Ny3

Ra

L3y g

donde el numero

de Rayleigh es
(7.4.12)

en puntos del interior son (seguro que he cometido


En resumen, las ecuaciones de iteracion
errores: rechequear)

ik =
ik =

1
i+1,k + i1,k + i,k+1 + i,k1 ik
4
1
i+1,k + i1,k + i,k+1 + i,k1 (i,k+1 i,k1 ) (i+1,k i1,k )
4
+ (i,k+1 i,k1 ) (i+1,k i1,k ) (Ti+1,k Ti1,k )

Tik =

(7.4.13)

1
Ti+1,k + Ti1,k + Ti,k+1 + Ti,k1
4
+Pr {(i+1,k i1,k ) (Ti,k+1 Ti,k1 ) (i,k+1 i,k1 ) (Ti+1,k Ti1,k )}

para acelerar la

de sobrerelajacion
A estas ecuaciones aun se les debe agregar el parametro

convergencia. El problema aparece con dos parametros


de control en las ecuaciones mismas,
de las condiciones de borde.
y Pr aparte de los que puedan entrar a traves
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

109

Puesto que el campo de velocidad en los bordes debe anularse, debe cumplirse que sea

constante en los bordes, y no hay perdida


de generalidad tomando nula tal constante:

i,0 = 0 ,

i,N2 = 0 ,

0,k = 0 ,

N1 ,k = 0

De modo que se itera en los puntos interiores sin restricciones.

Arriba y abajo la temperatura debe ser fija y como aparecen sus derivadas no hay perdida
de
generalidad si se toma
Ti,0 = 1 , Ti,N2 = 0
mientras que a los costados la derivada de T debe ser nula, esto es,
TN1 ,k TN1 1,k = 0. Al usar la formula

T1,k T0,k = 0 y tambien


con que
se itera T para T1,k se obtiene al lado derecho un par de T0,k que son

reemplazados por T1,k . Esto conduce a la ley de iteracion


T1k

1
T2,k + T1,k+1 + T1,k1
3
+Pr

T0k

2,k 0,k

(7.4.14)

T1,k+1 T1,k1 1,k+1 1,k1

u i,k+1

v
i,k

v
i+1,k

T2,k T0,k

u i,k

(7.4.15)

T1k

Figura 7.4: La vorticidad

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 ,

puede ser interpretada como


local del camla circulacion
po de velocidad.

N1 ,k = 2 N1 1,k .

deben imponerse estas


de modo que debe ser relajado en los puntos interiores y a continuacion
condiones de borde.

Segundo ejemplo: flujo y obstaculo

7.5.

X y
El sistema se discretiza en N1 intervalos en la direccion
Y de tal modo que el intervalo eleen N2 intervalos en la direccion

mental en ambas direcciones es h (tan solo para que la notacion


sea sencilla),
x = ih

y = kh

i = 0, ..N1 ,

k = 0, ..N2

(7.5.1)

=v
y 0

=0
G

=0
x
=0

C
=0
x
x=0

E H

Las coordenadas enteras del obstaculo


son E (i1 , k1 ) y G
A
(i2 , k2 )

=v
y 0

=0

Figura 7.5: Con lnea punteada se

7.5.1.

Las ecuaciones discretas en el volumen

Este es un problema que se plantea sin gravedad por lo que


bastara con resolver (7.3.10) acoplada con (7.3.11). El campo de
temperatura se puede evaluar al final si se desea.
Universidad de Chile

senala
un borde de origen puramente algortmico para integrar en

una zona finita. El obstaculo


es el

rectangulo
EFGH.

Escuela de Ingeniera y Ciencias


7.5. SEGUNDO EJEMPLO: FLUJO Y OBSTACULO

Ecs. diferemciales elpticas

alla de un obstaculo

Se vera el caso de un fluido 2D que pasa mas


rectangular EFGH. Para
resolver este problema se impondra ciertas condiciones de borde de naturaleza fsica y otras que
bien hipotesis

son mas
simplificatorias. Se escoge resolver el problema dentro de un rectangulo

ficticio ABCD suficientemente lejos del obstaculo.


Se supondra que el fluido fluye laminarmente
desde la izquierda de modo que en los bordes izquierdo y derecho
v =

=0
x

a izquierda y derecha la velocidad es solo horizontal

Se supondra que la componente horizontal de la velocidad hidrodinamica


arriba BC y abajo AD
vale v0 . Es decir, arriba y abajo se tomara
u = y = v0

arriba y abajo la componente horizontal de la velocidad esta fija

Respecto a la vorticidad, sin mayores argumentos se supondra que es cero abajo, arriba y a la
de la
izquierda. En cambio a la derecha satisfara / x = 0: ley de Kelvin sobre la conservacion
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
fsica tpica de hidrodinamica

simplificaciones del problema. La condicion


es que la velocidad es

cero en los puntos de contacto con un solido,


es decir, es constante en el permetro EFGH.
Puesto que esta definido salvo por una constante aditiva, se toma

=0

en EFGH

sobre en este permetro sera discutida mas


adelante.
La condicion

Adimensionalizacion:
Sea L una distancia caractarstica L del problema y se define los campos adimensionales como sigue:
v0
= 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 pondra el acento. En cambio las pocas veces que se
haga referencia a los campos con dimensiones se les sobrepondra una barra: y
(7.3.11) se escribe
La ecuacion
v0 L

i+1,k 2i,k + i1,k i,k+1 2i,k + i,k1


+
h2
h2

v0
i,k
L

Los factores v0 se cancelan y, si se escoge L = h, no aparece ninguna constante en esta ecuacion,

reduciendose a
1
(7.5.3)
i,k = [i+1,k + i1,k + i,k+1 + i,k1 i,k ]
4
que se usara para iterar.
que es la primera ecuacion
En forma similar (7.3.10) puede ser convertida en

ik =

1
R
(i+1,k i1,k )(i,k+1 i,k1 )
i+1,k + i1,k + i,k+1 + i,k1 +
4
4
(i,k+1 i,k1 )(i+1,k i1,k )

2013
version

(7.5.4)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

111

en esta expresion
R=

h v0

es una espacie de numero

de Reynolds. Un numero

de Reynolds con significado fsico 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 obstaculo.

En AB se tiene x = 0, que se expresa como

0,k = 1,k

(7.5.5)

en (7.5.3) tomada con i = 1 da


Usando esta relacion
41,k = 2,k + 0,k +1,k+1 + 1,k1 1,k
1,k

que permite escribir, ya con incorporada,

1,k = (1 )1,k +

(2,k + 1,k+1 + 1,k1 1,k )


3

(7.5.6)

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 + i1,1 + i,2 1 i,1 )


3

(7.5.8)

En forma enteramente
analoga,
en BC se satisface

i,N2 = i,N2 1 + 1

(7.5.9)

y tambien

i,N2 1 = (1 )i,N2 1 +

(i+1,N2 1 + i1,N2 1 + 1 + i,N2 2 i,N2 1 )


3

(7.5.10)

en forma enteramente

Y tambien
analoga,
en CD se satisface

N1 ,k = N1 1,k
N1 1,k
Universidad de Chile

(7.5.11)

= (1 )N1 1,k + (N1 2,k + N1 1,k+1 + N1 1,k1 N1 1,k )


3

(7.5.12)

Escuela de Ingeniera y Ciencias


7.5. SEGUNDO EJEMPLO: FLUJO Y OBSTACULO

Ecs. diferemciales elpticas

Ecuaciones para en bordes exteriores:

Las condiciones sobre en ABCD son sencillas,

0,k = 0
i,0 = 0
i,N2 = 0

izquierda
abajo

(7.5.13)

arriba

de la vorticidad) lo que conduce a


A la derecha se exige x = 0 (ley de Kelvin de conservacion

N1 ,k = N1 1,k

(7.5.14)

Tomando (7.5.4) con i = N1 1 se obtiene


N1 1,k

4N1 1,k =

N1 ,k +N1 2,k + N1 1,k+1 + N1 1,k1


+

R
(N1 ,k N1 2,k )(N1 1,k+1 N1 1,k1 )
4

(N1 1,k+1 N1 1,k1 )(N1 ,k N1 2,k )


que trivialmente se convierte en

N1 1,k = (1 )N1 1,k +


+

N1 2,k + N1 1,k+1 + N1 1,k1

R
(N1 ,k N1 2,k )(N1 1,k+1 N1 1,k1 )
4

(N1 1,k+1 N1 1,k1 )(N1 ,k N1 2,k )

(7.5.15)

Para obtener las condiciones de borde para


Ecuaciones para en bordes del obstaculo:

de Taylor de para un punto (i, k2 + 1) con i1 < i < i2 ,


en torno al obstaculo
se hace una expansion

i,k2 +1 = i,k2 + h

+
i,k2

h2
2

2
y2

+ ...

(7.5.16)

i,k2

El primer termino
de la derecha es nulo porque es nulo alrededor de todo el obstaculo.
El
segundo es cero porque corresponde a la componente tangencial de la velocidad en contacto

con un solido.
Ambas componentes de la velocidad son cero en los puntos de contacto con un
v

solido.
En 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,

2013
version

2 2
+ 2
x2
y

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

entonces sobre FG es

113
N2

2
=
y2

L1
K2

FG

que se puede reemplazar en (7.5.16) obteniendose

i,k2 +1 =

h2

2 i,k2

K1

111
000
000
111
000
111
000
111
000
111
000
111
000
111
000
111
000
111
000
111
000
111

L2
0

I1 I2

N1

Figura 7.6: Como explica el texto, conque, al pasar a campos adimensionales se reduce (y las viene definir vaeias zonas de integracion.

otras se obtienen por metodos


semejantes):

i,k2
i1 ,k
i2 ,k
i,k1

= 2 i,k2 +1

FG

= 2 i1 1,k

EF

= 2 i2 +1,k

GH

= 2 i,k1 1

HE

(7.5.17)

deben tomar en cuenta con cuidado el rango de las variables enLas rutinas de integracion

teras (i, k). En la figura se muestra un caso en que 0 i N1 y 0 k N2 . El obstaculo


es un

rectangulo
con vertices
opuestos (i1 , k1 ) y (i2 , k2 ). Debe tenerse rutinas que aplican todas las condiciones de borde del permetro. En estas rutinas debe primero actualizarse los puntos inmediatos
entonces los del permetro mismo. Debe haber otra rutina que aplica las real permetro y solo

laciones asociadas al contacto con el obstaculo


y finalmente rutinas que integran en los puntos
interiores de las zonas que en la figura aparecen como U (up wind), L1 y L2 que son laterales
y D (down wind). Naturalmente que puede escogerse integrar en forma algo diferente, pero es
de cada rutina para no deshacer, por
importante escoger correctamente los rangos de integracion
ejemplo, las condiciones de borde.

7.6.

Problemas

de Poisson 2D para el potencial electrostatico

de Poisson: (a) Integre la ecuacion


7.1 Ecuacion
2V (x, y) =

1
(x, y) G(x, y)
0

dentro de una caja cuadrada de LL con L = 10. El potencial V en el permetro vale: V (x, 0) =
1,5.
V (x, L) = x/10, V (0, y) = 0 y V (L, y) = 1. Utilice un coeficiente de relajacion

Dentro de la caja hay una zona rectangular con vertices


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 Hidrodinamica
2D: Integre las ecuaciones hidrodinamicas
2D definidas en este captulo

papara las funciones corriente, vorticidad y temperatura usando el metodo


de relajacion

ra el caso de un fluido en una caja rectangular de 3 1 tal que la pared de abajo es mas
que paredes laterales son perfectamente aiscaliente que la de arriba. Considere ademas
definida en el captulo condujo a ecuaciones discretas que
lantes. La admimensionalizacion
Universidad de Chile

Escuela de Ingeniera y Ciencias


Ecs. diferemciales parabolicas

7.6. PROBLEMAS

tienen solo dos parametros:


y Pr. Fije Pr = 1 y vare desde 0,001 con d = 0,0001. Si
la diferencia
bien la diferencia de temperatura arriba y abajo va cambiando, por defincion
adimensionalizada es siempre la unidad.

Mientras esta iterando con un fijo se desea saber si hay convergencia y cuando.
Una vez

de iteraciones
se ha convergido guarde en archivo el valor de , el valor de dT y el numero
que fueron necesarias. 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
se desestabilice hacia una nueva forma mas
estable. Siempre tome los
que la solucion
campos del caso anterior como los valores iniciales.
7.3 Flujo en 2D: Integre las ecuaciones 2D que determinan las funciones corriente y vorticidad
en la geometra que indica la figura 7.5. Un fluido viene de la izquierda y hay un obstaculo

rectangular EFGH. Para efectos practicos


se escoge un dominio finito ABCD que no corresponde lmites fsico 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 permetro
complicadas y son las
EFGH se toma = 0 mientras que las condiciones para son mas
que se discuten en clases. Se adimensionaliza usando hv0 y vh0 . Esta forma

de proceder hace que aparezca un unico

parametro
en las ecuaciones, R hv0 , donde

es la viscosidad cinematica.
Aunque no es totalmente correcto se lo denomina numero

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 inicialmente valgan 0.0 excepto si alguna condicion
de borde exigiera otra cosa.
a) Integre el caso R =0.8. usando al menos dos valores mayores que la unidad del coefi
. Indique cuantas
iteraciones fueron necesarias. Presente en un
ciente de sobrerelajacion

solo grafico
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
multiplo

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 graficos
de las curvas iso- y las curvas iso-log | | y la misma tabla
50 mil, guarde los valores de 90,80 y de
definida en (a). Una vez alcanzada la iteracion
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 grafico
interesante (por sobre 200

puntos). Haga graficos


de 90,80 y de 90,80 versus tic.

2013
version

Facultad de Ciencias Fsicas y Matematicas

Captulo 8

Ecuaciones parabolicas
8.1.

general
Ecuacion

son generalizables a ecuaciones de la forma


Los metodos
que se presenta a continuacion

F
+
B(t, x, F)
t
x
x

= S(t, x, F )

(8.1.1)

tanto con condiciones de borde rgidas como derivativas.


propiamente parabolica

general tiene la forma


La ecuacion
mas

a Ftt + b Fxx + ab Ftx + . . . = 0

(8.1.2)

donde los subndices senalan


derivadas, los coeficientes a y b representan funciones de (t, x) y

los puntos suspensivos representan terminos


con tan solo primeras derivadas o sin derivadas. La
(8.1.1) es un caso con a = 0.
ecuacion
de variables. Eso las convierte en
Suele ocurrir que estas ecuaciones admitan separacion
en este captulo.
ecuaciones diferenciales ordinarias lo que no es de interes

8.2.
8.2.1.

Ecuaciones tpicas
de calor
Ecuacion

conocidas en fsica posiblemente son la ecuacion


de difusion

Las ecuaciones parabolicas


mas
de calor que en su forma tridimensional es

T
= 2 T
t

(8.2.1)

espacial
pero que normalmente veremos en una sola dimension

2T
T
= 2
t
x
115

(8.2.2)

8.2. ECUACIONES TIPICAS

Ecs. diferemciales parabolicas

Puede pensarse que se trata del problema de una barra muy larga con temperatura T (t, x) que
puede verse un caso tridimensional con simetra esferica.

vara en el tiempo. Pero tambien


La
no tiene exactamente la forma (8.2.2) pero es igualmente tratable.
ecuacion
en general se puede estudiar ecuaciones como
Mas

2
=
+ S(x,t)
t
x2

8.2.2.

(8.2.3)

de Schrodinger

Ecuacion

de Schrodinger

Un caso interesante es el de la ecuacion


dependiente del tiempo, que podra
ser

= i H
t
H = 2 +V
(t = 0) = 0 (x) ,

8.2.3.

(8.2.4)
(t, ) = 0

Otros ejemplos de ecuaciones parabolicas

de Burgers:
La ecuacion
1 2U
U
U
= U
+
(8.2.5)
t
x Re x2

de Burgers con viscosidad


proviene de hidrodinamica.
Sin el ultimo

termino
se la llama ecuacion
nula y Re es el numero

de Reynolds.
de Swift-Hohenberg:
La ecuacion

U
(8.2.6)
= U (1 U 2 ) (1 + 2 )2U
t
tiene derivadas de cuarto orden en las coordenadas, pero es comunmente
Esta ecuacion

consi

derada como parabolica


y se integra con los mismos metodos.

termica.

Los autores se inspiraron en el estudio del fenomeno


de conveccion
Si se resuelve
espacial y condiciones iniciales arbitrarias lo tpico es que la solucion

con una sola dimension


evoluciones hacia un conjunto de patrones que se desplazan a velocidad constante.

Hidrodinamica
incompresible 2D dependiente del tiempo:
Si en las ecuaciones con que
es v =
se presenta 7.3.1 se impone = 0 estrictamente en todas partes, la primera ecuacion
de la funcion
corriente
0 que, como ya se sabe, se puede reducir en 2D a la introduccion
dinamica

tal que vx = y y vy = x . Si se define = 2 se encuentra una ecuacion


para ,
reemplazando a (7.3.10) con lo que las ecuaciones son

= x y y x + 2
t
0 = 2
2013
version

(8.2.7)
(8.2.8)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

117

parabolica

elptica.
Esto es, una ecuacion
acoplada con una ecuacion

8.3.

de la ecuacion
de difusion
de calor 1D
Adimensionalizacion

(8.2.2) se hace el cambio de variables y funcion


a cantidades prima adimenSi en la ecuacion
sionales:
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 caracterstica, mientras que T es adminesional.
se elimina las primas, la ecuacion
queda
De esta manera, si ademas

T
2T
=
t
x2

(8.3.2)

explcita directa
Integracion

Tkn+1 Tkn

n 2T n + T n
Tk+1
k1
k
h2

(8.4.1)

n+1

que conduce a
n
n
+ (1 2r) Tkn + r Tk+1
Tkn+1 = r Tk1

n
k1

k k+1

condicion inicial

condicion de borde

El problema adimensionalizado anterior se puede escribir en


forma discreta en la forma

condicion de borde

8.4.

0x1

N1 N

(8.4.2) Figura 8.1: Las variables (x,t) se


discretizan en la forma x = k h, con

donde r = 2 . Esta forma de integrar puede dar buenos resulta- k = 0, 1, . . . N y t = n , con n =


0, 1, . . . Los valores k = 0 y k = N coh
dos. En la literatura se ha demostrado que si 0 < r < 21 esta regla rresponden a los bordes. Se subra
no diverge. Sin embargo dentro del rango permitido ya que el intervalo X de integracion
de iteracion
esta dividido en N celdas de largo h.

no da resultados muy precisos salvo que r sea bastante pequeno,


es decir, la integracion
avanza lentamente en el tiempo.
pero esto implica pequeno,

8.4.1.

Condiciones de borde rgidas

(8.4.2) con condiciones de borde rgidas es trivial ya que basta con usar la
La integracion

formula
iterativa (8.4.2) sucesivamente con n = 1, n = 2 . . . recorriendo cada vez de k = 1 hasta
k = N 1.

8.4.2.

Condiciones de borde con derivada

Puede haber varias condiciones de borde con derivada. Algunas son:

T
=0
n
Universidad de Chile

borde aislante perfecto

(8.4.3)
Escuela de Ingeniera y Ciencias

EXPLICITA DIRECTA
8.4. INTEGRACION

Ecs. diferemciales parabolicas

emision
de energa. En cada punta la
o bien un borde que tiene asociada una tasa de absorciono
adimensionalizada de condiciones de borde derivativas se puede escribirse en la forma
version

T
x

izq

T
x

= (T Tizq) ,

der

= (T Tder )

(8.4.4)

Estas condiciones se podran discretizar en la forma


n
TNn TN1
= (T0n Tder )
h

T1n T0n
= (T0n Tizq) ,
h

(8.4.5)

conveniente agregar puntos ficticios mas


alla de los extremos e imponer
pero es mas
n Tn
TN+1
N1
= (TNn Tder )
2h

n
T1n T1
= (T0n Tizq) ,
2h

(8.4.6)

en un caso concreto.
Este metodo
se usa a continuacion
Se va a considerar el caso
T
t

= xT2
T (0, x) = g(x)
T (t, x = 0) = TI
T (t, x = 1) = (T Tder )

inicial
condicion
de borde rgida
condicion

(8.4.7)

de borde derivativa
condicion

describe una vara cuyo extremo derecho dinamicamente

donde g(0) = TI . La ultima

condicion

ajusta su temperatura acercandola


al valor Tder .

Al discretizar el metodo
explcito (8.4.2) exige imponer T0n = TI . El el extremo derecho, como
se ha dicho, conviene agregar un punto ficticio k = N + 1 e imponer
n Tn
TN+1
N1
= (TNn Tder )
2h

n
n
TN+1
= TN1
2 h (TNn Tder )

n
(8.4.2) para k = N aparece TN+1

Puesto que en la expresion


se debe hacer uso de la expresion
n+1
anterior para obtener la regla correcta para TN 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 dinamica


adicional que en este caso es TN .

Si ambas condiciones de borde hubiesen sido derivativa se tendra N + 1 variables dinamicas:


T0 , T1 , . . . TN , esto es, todas ellas tendran que ser iteradas.

8.4.3.

Condiciones de borde periodicas

Si las condiciones de borde son periodicas


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

(8.4.2) sigue valida

k = N son identicos.
As entonces la regla de iteracion
pero se debe tomar en
cuenta que
n
T0n+1 = r TN1
+ (1 2r) T0n + r T1n ,
2013
version

n+1
n
n
TN1
= r TN2
+ (1 2r) TN1
+ r T0n

(8.4.8)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

8.5.

119

El metodo
de Du Fort-Frankel

En el caso de la ecuacion

U
d 2U
= 2
t
dt

los autores proponen


n
U n Ukn+1 Ukn1 +Uk1
Ukn+1 Ukn1
= k+1
2
h2
que lleva al algoritmo explcito

Ukn+1 =

1 n1

n
U
+
U n +Uk1
1+ k
1 + k+1

donde =

2
h2

(8.5.1)

Un defecto del metodo


es que requiere condiciones iniciales en dos tiempos consecutivos. Una
necesaria para que este metodo

correcta es que h 0 lo que es aucondicion


de la solucion
2

tomatico
si se exige que = O(h ) y h 0.

8.6.
8.6.1.

El metodo
tridiagonal
de calor
La ecuacion

se vera un metodo

A continuacion
que no esta limitado a que r =

aplicable a una gran variedad de ecuaciones parabolicas.

y que es
sea pequeno
h2

Se comienza planteando nuevamente la ecuacion

T
2T
=
t
x2
rgidas:
con condiciones de borde que por el momento seran
T (t, 0) = Tizq ,

T (t, 1) = Tder

T (0, x) = g(x)

con

g(0) = Tizq ,

g(1) = Tder

(8.6.1)

inicial dada compatible con las condiciones de borde.


y g(x) es alguna condicion
En forma discreta las condiciones de borde son
T0n = Tizq ,

TNn = Tder

(8.6.2)

inicial es la funcion
g(x) que se abreviara,
en notacion
discreta, como gk ,
y la condicion
Tk0 = gk ,

con

g0 = Tizq ,

gN = Tder

(8.6.3)

discretizada
Esta vez se plantea la ecuacion
Tkn+1 Tkn a
=

2
Universidad de Chile

n+1
n+1
n 2T n + T n
Tk+1
2Tkn+1 + Tk1
2 a Tk+1
k1
k
+
h2
2
h2

(8.6.4)

Escuela de Ingeniera y Ciencias


8.6. EL METODO
TRIDIAGONAL

Ecs. diferemciales parabolicas

donde 1 k N 1, lo que implica que en particular son necesarios los valores T0 = Tizq y TN = Tder .

Escogiendo a = 0 se tendra el metodo


explcito y queda excluido en el contexto actual. El caso

a = 1 conduce al metodo
conocido como de Crank-Nicolson y con a = 2 se lo llama el metodo
implcito, pero a puede tomar un continuo de valores. El caso a = 1 de Crank-Nicolson es especial
porque corresponde a
1
T n+ 2 1
n
n+1
=
2 T k + 2 T k
t k
2
(8.6.4) puede ser reescrita con las cantidades con n + 1 a la
Para a cualquiera la ecuacion
izquierda y con n a la derecha
n
n
n+1
n+1
+ 2 (1 (2 a) r) Tkn + (2 a) rTk+1
= (2 a) rTk1
+ 2(1 + ar)Tkn+1 ar Tk+1
ar Tk1

(8.6.5)

anterior
El problema consiste en obtener los T n+1 suponiendo que se conoce los T n . La ecuacion
puede ser vista de la forma
0
+
A
k k1 + Ak k + Ak k+1 = bk

con

1 k N 1

(8.6.6)

0
De arriba se ve que k = Tkn+1 , A+
k = ar, Ak = 2 (1 + ar), Ak = ar mientras que
n
n
bnk = (2 a) rTk1
+ 2(1 (2 a) r) Tkn + (2 a) rTk+1

(8.6.7)

que es un valor conocido cuando se esta por obtener los Tkn+1 .


en general, el problema es resolver un problema de la forma
Mas
M = b
donde M es una matriz rectangular tridiagonal:

A1 A01
A+
0
1

0
A
A02
A+

2
2

0
A
A03
0
3

M=

0
0
0

0
0
..
..

0
0
..
0

(8.6.8)

..

A+
3

0
0

..

..

+
0
A
N1 AN1 AN1

Se ve que M tiene N + 1 columnas (numeradas del 0 al N) y N 1 filas. Esta matriz multiplica al


definidas por las condiciones
vector = {0 , 1 , ..., N1 , N } donde las componentes 0 y N estan
(8.6.8) conduce, entonces a N 1
rgidas. El vector b tiene N 1 componentes. La ecuacion

ecuaciones para las N 1 incognitas


al problema
= {1 , ..., N1 }. Este problema es identico
A
1 0 + (A )1 = b1
(A )k
+
(A )N1 + AN1 N
2013
version

= bk
= bN1

2 k N 2

(A )1 = b1 A
1 0
(A )N1 =

(8.6.9)

bN1 A+
N1 N

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

121

donde A es una matriz tridiagonal de (N 1) (N 1). De esta manera el problema se reduce

autenticamente
al de una matriz cuadrada tridiagonal A de (N 1) (N 1) y un vector b modificado por las condiciones de borde:
A = b

formal es
cuya solucion

= A1 b

(8.6.10)

Notese
que si se tuviera que 0 = N = 0 el problema descrito en (8.6.9) es sencillamente
A = b
con el vector b original.

8.6.2.

El algoritmo para el caso rgido

se usa para resolver ecuaciones parabolicas

El metodo
que se explica a continuacion
lineales.

Se plantea resolver para la ecuacion


A = b

(8.6.11)

donde A es una matriz de (N 1) (N 1) tridiagonal, es decir, (8.6.11) es

= 1, . . . , N 1
k
0
+

= UI
+
A
+
A
=
b
con

A
0
k
k k
k k+1
k k1

N = Uder

(8.6.12)

definidos
anterior el rango de k es de 1 a N 1, los k estan
Se destaca que si bien en la ecuacion
con k = 0 y k = N. El problema que se plantea implica, de alguna forma, invertir la matriz
tambien
A. Se va a encontrar un algoritmo que permite encontrar en pocos pasos.
de la forma
Ecuaciones lineales de recurrencia como estas siempre tienen solucion

k+1 = k k + k

(8.6.13)

Reemplazando este k+1 en (8.6.12) se obtiene


0

A+
k (k k + k ) + Ak k + Ak k1 = bk

que implica que

k =

A
bk A+
k
k k
+

k1
+
+
0
Ak k + Ak
Ak k + A0k

que tiene la forma de (8.6.13) y por lo tanto se debe identificar

k1 =

A
k
+
A0k
A+

k k

(8.6.14)

k1 =

bk A+
k k
+
Ak k + A0k

(8.6.15)

que son ecuaciones de recurrencia para los k y k .


Universidad de Chile

Escuela de Ingeniera y Ciencias


8.6. EL METODO
TRIDIAGONAL

Ecs. diferemciales parabolicas

(8.6.12) para
Para que todo sea consistente se debe cuidar los puntos del borde. La ecuacion
k = N 1 debe coincidir con (8.6.13) con k = N 2. Pero ellas son

0
A+
N1 UD + A1 N1 + AN1 N2 = bN1 ,

N1 = N2 N2 + N2

(8.6.16)

+
0
0

Comparandolas
se obtiene N1 = A
N /AN y N1 = (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
(8.6.17)
N1 = 0 ,
N1 = Uder N
Con esto se usa las relaciones de recurrencia (8.6.14) y (8.6.15) para obtener 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.

de calor con conductividad variable


Ecuacion

de calor en espacio unidimensional para T (t, x) es


La ecuacion

T
t

=
=

T
K(x)
x
x
2T
dK T
+K 2
dx x
x

(8.6.18)

Discretizando con igual peso en los instante n + 1 y n se obtiene


Tkn+1 Tkn

n+1
n+1
n+1
T n+1 2Tkn+1 + Tk1
Tk1
1 Kk+1 Kk1 Tk+1
+ Kk k+1
2
2h
2h
h2

n
n Tn
T n 2Tkn + Tk1
1 Kk+1 Kk1 Tk+1
k1
+ Kk k+1
2
2h
2h
h2

(8.6.19)

puede ser llevada a la forma


Definiendo r /h2 la ecuacion
n+1
n+1
= Bnk
+ 8(1 + rKk ) Tkn+1 + r(Kk+1 4Kk + Kk1 ) Tk+1
r(Kk+1 4Kk Kk1 ) Tk1

(8.6.20)

donde
n
n
Bnk = r(Kk+1 + 4Kk + Kk1 ) Tk1
+ 8(1 rKk ) Tkn + r(Kk+1 + 4Kk Kk1 ) Tk+1

viendose
que (8.6.20) tiene la forma (8.6.6) ya estudiada.
Si se escoge
Tkn+1 Tkn

n+1
n+1
n+1
Tk1
T n+1 2Tkn+1 + Tk1
a Kk+1 Kk1 Tk+1
+ Kk k+1
2
2h
2h
h2

+
2013
version

n
n Tn
T n 2Tkn + Tk1
2 a Kk+1 Kk1 Tk+1
k1
+ Kk k+1
2
2h
2h
h2

(8.6.21)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

123

de la forma (8.6.12) con


Se obtiene una ecuacion
= ar(Kk1 Kk+1 ) 4arKk
A+
k
A0k = 8 (1 + arKk )

A
k

(8.6.22)

= ar(Kk+1 Kk1 ) 4arKk

n+1
n+1
que multiplican a Tk+1
, Tkn+1 , Tk1
respectivamente; mientras que el lado derecho es de la forma
n
n
n
pk Tk+1
+ zk Tk+1
+ mk Tk1

donde

(estas relaciones deben ser verificadas)

pk = r(a 2)(Kk+1 + 4Kk Kk1 )


zk = 8 (1 + r(a 2)Kk )

(8.6.23)

mk = r(a 2)(Kk+1 + 4Kk + Kk1 )

8.6.4.

El caso con condiciones de borde periodicas

Esta vez consideraremos la forma de aplicar el metodo


tridiagonal para la ecuacion
0
+
A
k k1 + Ak k + Ak k+1 = bk

valida
con

1 k N 2

(8.6.24)

anterior toma formas especiales en dos puntos


y, debido a la periodicida, la ecuacion
+A00 0
+A+
= b0
A
0 1
0 N1

0
=
bN1

AN1 N2 +AN1 N1 +A+


N1 0

(8.6.25)

lo que da un conjunto de N ecuaciones lineales para las N incognitas


0 , 1 , . . . , N1 .
El problema anterior corresponde a enfrentar un problema de la forma
M = b

Mi j j = bi

donde la matriz M es de N N y tiene la forma

A00
A+
0
0

A
A01
A+
1
1

A
A02
0
2

M=

0
0

0
..
0

A+
0
..
N1

(8.6.26)

..

A
0

..

A+
2

0
0

A
N1

A0N2

A+
N2

A
N1

A0N1

(8.6.27)

Los elementos de esta matriz los denotamos Mi j y tanto i como j varan entre 0 y N 1. La matriz

M tiene no nulas las tres diaginales centrales y dos elementos de vertice


como se aprecia en
(8.6.27).

Universidad de Chile

Escuela de Ingeniera y Ciencias


8.6. EL METODO
TRIDIAGONAL

Ecs. diferemciales parabolicas

valores en los vertices:

La matriz M puede escribirse como una matriz tridiagonal A mas


+
Mi j = Ai j + A
0 i0 j (N1) + AN1 i(N1) 0 j

(8.6.28)

Si se definen los vectores u = {a, 0, ..,0, b} y w = {c, 0, .., 0, d}, esto es ui = ai0 + bi(N1) y w j =
c j 0 + d j (N1) , se obtiene que ui w j = aci0 0 j + ad i0 (N1) j + bci(N1) 0 j + bd i(N1) (N1) j . Se
+
necesita que ad = A
0 y que bc = AN1 . La matriz M escrita en la forma (8.6.28), como una nueva
una matriz u w cuyos unicos
en los cuatro
matriz tridiagonal A mas

elementos no nulos estan

vertices
matricialmente se puede representar por
M = A+uv
Escogiendo w0 =

A+
N1
b

y wN1 =

A
0
a

uw =

se obtiene

a +
b AN1

..

A
0

..

..

A+
N1

..

b
a AN1

0
0

viendose
que u queda indeterminado.

(8.6.29)

Se vera que la respuesta al problema (8.6.26) se obtiene resolviendo dos problemas tridiago
nales estandar
para vectores auxiliares y ,
A = b ,

A = u

(8.6.30)

es
y la solucion

como se comprueba a continuacion.

1+w

(8.6.31)

Primero se multiplica el lado derecho de (8.6.31) por la matriz A lo que da


bi

wk k ui
1 + w n n

(8.6.32)

de u w sobre el lado derecho de (8.6.31) da


y segundo, la accion
ui w j j

w j j
w j j + w j j w n n w k k w j j
w k k
ui w j j = ui
= ui
1 + w n n
1 + w n n
1 + w n n

(8.6.33)

Sumando (8.6.32) y (8.6.33) efectivamente se obtiene bi .


2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

125

En resumen, para resolver el problema M = b con M de la forma (8.6.27) se definen u =


A+

0
{a, 0, .., 0, b} y w = { N1
b , 0, ..,0, a } y deben primero resolverse dos problemas tridiagonales plan del problema
teados en (8.6.30) siguiendo lo aprendido en 8.6.2 para luego platear la solucion
(8.6.26) en la forma (8.6.31).

no depende de los valores escogidos a y b,


Desde el punto de vista analtico, la solucion

sea optima.

pero numericamente
se deben escoger con cuidado para que la precision

8.7.

Un caso parabolico
en 1+2 dimensiones

se comenta brevemente una forma de integrar una ecuacion


parabolica

A continuacion
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 planteando un problema tridia
gonal en el ndice i, mientras que en j el metodo
es explcito.
n+ 21

Fi, j

Fi,nj

n+ 1

= u1

n+ 1

Fi+1,2j Fi1,2j

2h

n+ 21

u2

n+ 12

Fi+1, j 2Fi, j

Fi,nj+1 Fi,nj1
2h

n+ 12

+ Fi1, j

h2

Fi,nj+1 2Fi,nj + Fi,nj1


h2

(8.7.2)

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 metodo


es explcito.
n+ 1

n+ 21

Fi,n+1
j Fi, j

= u1

n+ 1

Fi+1,2j Fi1,2j

2h

n+ 21

u2

n+ 12

Fi+1, j 2Fi, j

h2

n+1
Fi,n+1
j+1 Fi, j1

2h

n+ 12

+ Fi1, j

n+1
n+1
Fi,n+1
j+1 2Fi, j + Fi, j1

h2

(8.7.3)

Este metodo
puede ser aplicado, por ejemplo, a las ecuaciones de fluidos incompresibles

vistas en el captulo anterior. Sera especialmente sencillo en el caso de un flujo con obstaculo,
sin gravedad y paredes laterales rgidas.

8.8.
8.8.1.

Dos metodos
adicionales

Metodo
de Richtmayer

Se estudia resolver ecuacion

U
2U m
=
t
x2
Universidad de Chile

m entero mayor o igual a 2


Escuela de Ingeniera y Ciencias


8.8. DOS METODOS
ADICIONALES

Ecs. diferemciales parabolicas

del metodo

Se hace la siguiente deduccion


(donde 2 fue definido en (7.4.9))
Ukn+1 Ukn

2 (U m )n+1
+ (1 )2 (U m )nk
k
h2

(8.8.1)

pero
n

U m
t
U m
u

(U m )n+1
= (U m )nk +
k
= (U m )nk +

= (U m )nk + m U m1

k
n

U
t

k
n
k

n
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
2 Ukm,n + mUkm1,n k + (1 )2Ukm,n
h2
1
m 2 Ukm1,n k + 2Ukm,n
h2
1
m,n
m,n
m1,n
m1,n
m Uk+1
2Ukm,n +Uk1
k+1 2Ukm1,n k +Uk1
k1 +Uk+1
h2

convierte al problema en uno tridiagonal.


La ultima

expresion

8.8.2.

Metodo
de Lees

El metodo
de Lees (M.Lees, Math. Comp. 20 516 (1966)) aborda ecuaciones parabolicas
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
n
n
Ukn Uk+
1 U
k 1
2

se discretiza
La ecuacion
bnk

Ukn+1 Ukn1
2

=
=

1
1
n
n
{ank Ukn } = 2 ank Uk+
1 U
k 21
2
h
h
1 n
n
a 1 U n Ukn ank 1 Ukn Uk1
2
h2 k+ 2 k+1

(8.8.3)

es inestable si a = b = 1. Ademas,
hasta aqu, es explcito. La estabilidad se reEsta expresion
suelve si se hace los reemplazos que siguen, los que convierten al problema en uno que ya no es
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

127

explcito,
Ukn

1 n+1
U +Ukn +Ukn1

3 k

donde k puede ser k = k + 1, k, k 1

1 n
1 n
a + ank
a + ank1
ank 1
2
2 k+1
2 k
Con lo cual el problema es tridiagonal.
ank+ 1

8.9.
8.9.1.

de Schrodinger

Ecuacion
dependiente del tiempo

Usando el metodo
de Crank Nicolson

Se estudiara un metodo
para integrar (8.2.4) con el metodo
de Crank Nicolson. En el caso
de Schrodinger

actual la ecuacion
discretizada formalmente se plantea en la forma
i
n+1 n
= H n+1 + H n

2
que se puede reordenar en la forma
i
i
n+1 + H n+1 = n H n
2
2
o bien
1 i2 H n
n+1 =

1 + i2 H

(8.9.1)

(8.9.2)

(8.9.3)

Este metodo
es bueno porque el operador que actua sobre n tiene la forma F = 1iz
1+iz y |F| = 1,
temporal. Tambien
se observa que
lo que sugiere que se preserva la norma de en su evolucion
1 iz
2
=
1
1 + iz 1 + iz
y basado en esto se escribe

n+1 =

2
1 + i2 H

1 n = n

(8.9.4)

donde se ha definido,
i
H = 2n
2
bien su version
discreta,
Se quiere resolver (8.9.5), o mas
1+

k +

(8.9.5)

k+1 2k + k1
i
+Vk k = 2kn

2
h2

que se reescribe como

k+1 + 2 +

2ih2
h2Vk

k + k1 =

4h2 n

i k

(8.9.6)

que es un problema tridiagonal y, por lo tanto, en principio ya se sabe resolver. Una vez que se

es estable.
obtiene , se inserta en (8.9.4) y de ah se sigue. Se ha demostrado que este metodo
Universidad de Chile

Escuela de Ingeniera y Ciencias

DE SCHRODINGER

8.9. ECUACION
DEPENDIENTE DEL TIEMPO

Ecs. diferemciales parabolicas

El metodo
explcito de Visscher

8.9.2.

Este metodo
aparecio presentado en Computational Physics, 5 596 (1991). La idea es separar

a la funcion de onda en sus partes real e imaginaria,

= R + i I
de Schrodinger

que lleva a escribir la ecuacion


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 imaginaria en tiempos semienteros


n+ 1
n 1
Rn Rn1
I 2 I 2
n 21
(8.9.8)
= H I ,
= H Rn

y se despeja
n 12

Rn = Rn1 + H I

n+ 21

n 12

= I

H Rn

(8.9.9)

Con estas ecuaciones se itera en forma explcita. Antes, claro, se debe usar que
H f =

fk+1 + fk1
2
fk+1 2 fk + fk1
+Vk fk =
+ Vk + 2
h2
h2
h

(8.9.10)

fk

de la norma
8.9.2.1. Conservacion
de onda se conserva en el tiempo. Para ello primero se
Se vera que la norma de la funcion
define la densidad de probabilidad en tiempos enteros y semienteros,
n+ 21

n 21

Pn = (Rn )2 + I

n+ 12

Pn+ 2 = Rn+1 Rn + I

(8.9.11)

se calculara la diferencia entre es estas dos densidades y finalmente se va a


A continuacion
demostrar que al sumar sobre k (integrar sobre x) se obtiene cero.
1

= Pn+ 2 Pn =
=

n+ 21

Rn + H I

n+ 12

Rn H I

n+ 12

Rn + I
n+ 21

n+ 21

(Rn )2 I

H Rn

n+ 12

+ H Rn
(8.9.12)

se obtiene que la contribucion


de V se anula trivialmente.
Al reemplazar H en la ultima

expresion
de d 2 /dx2 es menos trivial. Se escribe omitiendo los ndices de tiempo que ya
La contribucion
se sabe cuanto valen para R y I ,

= 2 (R k {I k+1 2I k + I k1 } I k {R k+1 2R k + R k1 })
h
ver que hay terminos

y es facil
que por pares se cancelan, por ejemplo

R k I k+1 I k R k1 = 0
k

de terminos

de onda es nula.
Podra haber contribucion
de borde, pero en los bordes la funcion
2

Habiendose
obtenido cero al sumar sobre k, se ha demostrado que | | dx no cambia en el

tiempo y por lo tanto la norma se preserva. Este es un gran merito


del metodo
de Vissher.
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

129

8.9.2.2. Estabilidad

El analisis
de estabilidad se hara en forma bastante limitada y a pesar de ellos la experiencia
muestra que da criterios que funcionan. Se comienza replanteando las ecuaciones (8.9.9) en
forma matricial,
Rn

n1/2

1 H
0 1

Rn1
n1/2
I

Rn1
n1/2
I

1
H

0
1

Rn1
n3/2
I

A H y las dos ecuaciones anteriores se


En los pasos que sigue se usa la abreviacion
pueden escribir como una sola,

Rn
n1/2
I

Rn1
n3/2
I

1 A2 A
A
1

tiene una estrutura del tipo n = M n1 lo que implica que n = M n 0 . Un metodo

Esta ecuacion
con esta estructura explota si al menos uno de los autovalores de M tiene modulo

de iteracion
nula si el mayor autovalor es menor que 1. Para que el metodo

mayor que 1 y produce una funcion

funcione es necesario que los autovalores tengan modulo


1.
matriz de arriba son
Los autovalores de la ecuacion

= 1

A2 A

2
2

A2 4

(8.9.13)

Si |A| > 2 la primera parte 1 A2 /2 es menor que 1 y por lo tanto < 1 lo que es
inaceptable.
Si |A| 2 los autovalores se pueden escribir en la forma

= 1

A2 i A

2
2

4 A2

(8.9.14)

y trivialmente se comprueba que | | = 1 que es lo que se necesita para la estabilidad. Ahora se


vera las implicasiones que tiene esto sobre los valores de y h.
Con este objetivo se usara un potencial esencialmente plano, Vk = V0 y funciones de onda
estacionarias planas,
k
= T (t) ei N
de H sobre da
La accion
H = T

ei

(k+1)
N

2 ei N + ei
h2

(k1)
N

+V0 ei

k
N

El numerador del primer termino


se puede escribir,
ei

2 + ei

ei

k
N

= 4 sin2
Universidad de Chile

ei 2N ei 2N

2N

ei

ei

k
N

k
N

Escuela de Ingeniera y Ciencias


8.10. METODO
IMPLICITO

Ecs. diferemciales parabolicas

lo que muestra que los autovalores son


E =
por lo cual
A=

4
+V0
sin2
2
h
2N

4 2
+ V0
sin
h2
2N

Los valores extremos que toma A son V0 y V0 + 4h2 lo que lleva a


2 < V0 < 2

2 < V0 +

y tambien

4
<2
h2

exigentes se obtiene
Escogiendo las mas
2 < V0 < 2

8.10.

4
h2

(8.9.15)

Metodo
implcito

Se considerara en 0 x 1 la ecuacion

2
= 2 + S(x) ,
t
x

(t, 0) = a ,

(t, 1) = b ,

(0, x) = f (x) .

(8.10.1)

estatica,

Sea (x) una solucion


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)

de variable este problema resulta trivial.


Usando el metodo
de separacion

Si se hace la expansion

u(t, x) =

ar e t sin(r x)
r

(8.10.4)

r=1

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

parabolicas
del tipo (8.10.1) tienen soluciones estaticas
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 hubiera

una componente r = 0 esta


sera estatica
y la parte estatica
ya fue considerada.
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

131

(8.10.1) se discretiza ahora en la forma


La ecuacion
n+1
n+1
2kn+1 + k1
kn+1 kn k+1
+ Sk
=

h2

(8.10.6)

que corresponde a escoger a = 2 en (8.6.4) y arroja

kn+1 = kn +

1
n+1
n+1 2kn+1 + k1
+ Sk
h2 k+1

(8.10.7)

Estabilidad:

anterior se escribe en forma vectorial


La ecuacion

n+1 = n H n+1 + S

(8.10.8)

n+1 = (1 + H)1 n + S

(8.10.9)

que formalmente es

discreta de x2 , sus autovalores E son positivos implicando que


Puesto que H es la version
los autovalores de (1 + H)1 son
1
1 + E

que necesariamente son menores que la unidad si > 0. Esto asegura que el metodo
es estable.

numerica:

Integracion
Para integrar el problema (8.10.7) se utiliza un metodo
tridiagonal se discreta puede ser puesta en la forma
mejante al descrito en sec.8.6.1 usando a = 2. La ecuacion

estandar
n+1
n+1
+ (1 + 2r) kn+1 r k1
= kn + Sk
(8.10.10)
r k+1
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

de calor el problema se resuelve por medio de


Tal como en el caso de la ecuacion
n+1
kn+1 = k k+1
+ kn

(8.10.13)

Para comenzar, se sabe que N1 = 0 y se puede obtener todos los k de una sola vez. Y
todos los a partir de las s y de N1 = b se obtiene todos los s. De estos dos conjuntos y la
inicial para se obtiene todos los kn .
condicion
Universidad de Chile

Escuela de Ingeniera y Ciencias


Ecs. diferemciales parabolicas

8.11.

8.11. PROBLEMAS

Problemas

casi uniforme, T (t = 0, r) = T0 ,
8.1 Una esfera de radio R es sacada de un horno con distribucion
de temperatura y es colocada en un ambiente que se mantiene a temperatura TA . La esfera

se ira enfriando en forma esfericamente


simetrica
de acuerdo a

T
t
T
r

r=R

= 2 T
= (T (t, R) TA )

de borde en r = R con la condicion


inicial,
Para efectos de hacer compatible la condicion
suponga que en t = 0 la temperatura vale T0 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.
anterior, aun en forma continua, en la forma de la ecuacion
pa1 Escriba la ecuacion

escriba las condiciones de borde


rabolica
que va a integrar numericamente
y tambien
(todo en lenguaje continuo).
que va a utilizar para tal ecuacion
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
de T (t, r) escogiendo N = 5000, dr = h = R/N y tres valores para dt = en
evolucion

del perfil de temperatura inicial y el perfil de T cada vez


torno a = 1. Entrege un grafico
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.
de Schrodinger

8.2 Integre la ecuacion


adimensional

2
= i 2 +V (x)
t
x
inicial
usando el algoritmo de Visscher. Tome como condicion
2

(x, 0) = A e (xx0 ) eibx


con = 0,006, b = 0,333. El potencial es un pozo o una barrera cuadrada 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 abarquen desde x = 0 hasta
x = 2000, (h = 0,5), x1 = 1000 y el paquete inicial esta muy cerca de la zona con pontencial
no nulo, por ejemplo, x0 = 920. Para el incremento del tiempo parece ser bueno = 0,05
(discutalo).

2013
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Numericos

133

1/2

Para simplificar el problema puede aproximar I a la parte imaginaria de (x, 0). Para

evitar problemas logicos


no actualice los valores de en los extremos (piense que corres
ponden a x = ) y detenga el calculo
cuando el paquete llegue en forma significativa a
alguno de los extremos. Parece que esto es t 890.

del tiempo y para algunos tiempos tk interesantes dibuje


Dibuje P(t) = | |2 dx como funcion
2
k = | (x,tk )| .
Resuelva tanto para V0 = 0,1 como para V0 = 0,1.

Universidad de Chile

Escuela de Ingeniera y Ciencias


Ecs. diferenciales hiperbolicas

2013
version

8.11. PROBLEMAS

Facultad de Ciencias Fsicas y Matematicas

Captulo 9

Ecuaciones hiperbolicas

Las ecuaciones hiperbolicas


requieren de metodos
especiales porque la informacion
contenida en las condiciones iniciales y las condiciones de borde normalmente no
La influencia de tales condiciones
pueden alcanzar a todo el dominio de integracion.
impuestas se propaga a lo largo de las llamadas curvas caractersticas y es difcil

correcto sin tomar en cuenta esta limitacion


en la
lograr un metodo
de integracion
cuando las caractersticas son lneas rectas un
debida forma. Es probable que solo
programador inadvertido puede dar con una forma satisfactoria de integrar ecuacio
comprender el papel jugado por las caractersticas
nes hiperbolicas.
Para hacer facil

es conveniente comenzar estudiando un problema analogo


que se presenta con ecuaciones de primer orden.
Referencia: G.D. Smith, Numerical Solution of Partial Differencial Equations: Finite Difference Methods, Clarendon Press, Oxford, third edition, 1984.

9.1.

Ecuaciones de primer orden y sus curvas caractersticas

Consideremos la ecuacion
a

U
U
+b
=c
x
y

(9.1.1)

donde a, b y c pueden ser funciones de (x, y,U ). Se va a ver que en cada punto del dominio de
pasa una curva C a lo largo de la cual hay que resolver una ecuacion
diferencial ordinaria.
solucion

Se usara la notacion,
p

U
x

U
y

(9.1.2)

la ecuacion
original es
Con esta notacion
a p + bq = c
desplazamiento produce un cambio en el valor de U
Un pequeno
dU = p dx + q dy
135

(9.1.3)

9.1. ECUACIONES DE PRIMER ORDEN Y SUS CURVAS CARACTERISTICAS

Ecs. diferenciales hiperbolicas

pero de (9.1.3) se sabe que p =

cb q
a

lo que da
dU =

c bq
dx + q dy
a

que se reordena como


q (a dy b dx) + c dx a dU = 0

(9.1.4)

anterior es independiente de p = Ux porque a, b y c solo dependen de (x, y,U ).


La ecuacion
(9.1.4) se hace independiente de q si se escoge que dx y dy no sean independientes, es
Ademas
decir, si se define que el desplazamiento sea a lo largo de una curva C cuya pendiente satisface
a dy b dx = 0

(9.1.5)

c dx a dU = 0

(9.1.6)

con lo que (9.1.4) se reduce a

para C y (9.1.6) es una ecuacion


para U sobre C. Ellas se
y se ve que (9.1.5) es una ecuacion
de definir un elemento de arco ds, planteando
pueden resumir, ademas
dx dy dU
=
=
= ds
a
b
c

(9.1.7)

para la caracterstica C mientras que la igualdad


De esta igualdad doble, la primera es la ecuacion
para U sobre C. Planteada la
del ultimo

miembro con cualquiera de las primeras es la ecuacion


de la caracterstica en la forma (9.1.5) pareciera que se debe obtener x(y) o bien y(x),
ecuacion
univaluada. Es
sin embargo puede ocurrir que ninguna de las dos formas pueda dar una funcion
general formular (9.1.5) como una ecuacion
en terminos

mas
del parametro
s ya mencionado,
dx
= a,
ds

dy
=b
ds

(9.1.8)

para la funcion
U sobre la caracterstica es
La ecuacion
dU
=c
ds

(9.1.9)

original (9.1.1) sobre


Reiterando, todo lo anterior puede ser presentado planteando la ecuacion

una curva parametrizada por un parametro s. Sobre la curva se tiene que


dx U dy U
dU
=
+
ds
ds x ds y

(9.1.10)

y se escoge que la curva sea tal que el lado izquierdo de (9.1.1) coincida con dU /ds, es decir, se
exige (9.1.8) y por lo tanto dU /ds = c. Un par de ejemplos sencillos debieran ayudar a asimilar lo
anterior.
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

9.2.
9.2.1.

137

El metodo
de las caractersticas

Ejemplos para ilustrar los conceptos basicos

9.2.1.1. Ejemplo muy sencillo

U U
+
x
y

=2
(9.2.1)

U (0 x 1, y = 0) = (x)

de borde
condicion

se tiene a = y, b = 1 y c = 2 por lo que las ecuaciones parametricas

En esta ecuacion
para las
caractersticas son
dy
dx
= y(s) ,
=1
(9.2.2)
ds
ds
Se resuelve la segunda escogiendo y(0) = 0 lo que da
se convierte en dx/ds = s
y = s. La primera ecuacion
que da x(s) = s2 /2 + xR , es decir x = 12 y2 + xR lo que
de las caractersticas,
permite escribir la ecuacion
y2 = 2 x 2 xR

(9.2.3)

estas son parabolas


con el eje X como eje de simetra
parametrizadas por xR , que es el punto sobre el eje X

por el que pasa la parabola


descrita en (9.2.3).

Para los propositos


del problema planteado se nece
sita solo las parabolas
para las que

2.5
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-2.5
0

0.5

1.5
X

2.5

0 xR 1

Figura 9.1: Las caractersticas asociadas a los


De (9.1.9) se desprende que dy = dU /2, que implica extremos del dominio de las condiciones iniciales
U = 2 y+UR , pero como U (xR , 0) = (xR ) entonces UR = del problema.
(xR ). De (9.2.3) formalmente se despeja que xR = 21 (2 x y2 ) lo que finalmente permite escribir
U (x, y) = 2 y + x

y2
2

anterior es constante a lo largo de cada caractarstica. Para verificar


El termino
en la expresion
es correcta notamos que
que esta solucion

U
=
x

U
= 2 y
y

donde la prima indica la derivada de con respecto a su argumento.


U (x, y) en el dominio
En resumen, lo que se ha logrado es determinar el valor de la funcion

comprendido entre las dos parabolas


[y2 = 2 x; y2 = 2 (x 1)]. El metodo
analtico debiera dejar
inicial dada no es posible conocer a la funcion
U fuera del dominio
claro que con la condicion

haciendo un reticudescrito. Un metodo


numerico
ingenuo podra intentar integrar la ecuacion

lado rectangular regular con celdas de (hx hy ) en el plano (x, y), lo que llevara a una solucion
incorrecta tan pronto el incremento hy sobrepase el valor hyx .
Universidad de Chile

Escuela de Ingeniera y Ciencias


9.2. EL METODO
DE LAS CARACTERISTICAS

Ecs. diferenciales hiperbolicas

elaborado
9.2.1.2. Ejemplo algo mas

Se busca integrar la ecuacion

U
U
+U
x
y

= U 2

U (x = 0, y > 0) = 1 + ey

con

U (x > 0, y = 0) =

2
1+x

(9.2.4)

Las condiciones de borde coinciden en el origen. las ecuaciones para las caractersticas son
dy
=U
ds

dx
= 1,
ds

(9.2.5)

para U sobre las caractersticas es


y la ecuacion
dU
= U 2
ds

(9.2.6)

s = x. De (9.2.6) se
La primera de las ecuaciones (9.2.5) permite escoger la parametrizacion
obtiene inmediatamente que
1
(9.2.7)
U (x, y) =
A(x, y) + x
pero aun se debe determinar A(x, y), que es constante a lo largo de cada caracterstica, pero que
depende de x e y.
La segunda de las ecuaciones (9.2.5), y (9.2.7) se obtiene que sobre la caracterstica
dy =

dx
A(x, y) + x

que se puede resolver de dos maneras equivalentes. La primera es directa y da


y = yR + ln

A(x, y) + x
A(x, y)

(9.2.8)

Si de aqu se despeja x da x = A(eyyR 1). Definiendo x0 x(y = 0) se despeja yR = ln((A +


x0 )/A) que finalmente da
x = A(x, y) (ey 1) + x0 ey
(9.2.9)
Estas dos formas equivalentes que definen a las caractersticas. La primera forma es util
para
describir las caracterstica que nacen en (x = 0, yR ) y la segunda para las que nacen de (x0 , y = 0).
Se comprobara que en el primer caso se debe tomar A(0, yR ) = 1/(1 + eyR ) y en el segundo caso
0
A(x0 , 0) = 1x
2 .

de borde: Se usa U = 1/(A + x) en x = 0 junto a la condicion


A partir de la primera condicion
de borde en x = 0, lo que permite deducir que A = 1/(1 + eyR ), valor que se reemplaza en (9.2.8)
para despejar formalmente que
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

caracteristicas

ey x
yR = ln
1+x

4
3.5
3
2.5
y

permite escribir A como funcion


de
Esta expresion
(x, y), lo que lleva a
U (x, y) =

139

1 + ey

2
1.5
1

1+x

0.5

En este caso las caractersticas son parametrizadas


por el punto yR > 0 del que nacen sobre el eje Y y se
definen por

0
0

10

Figura 9.2: Aqu se dibujan caractersticas perteyR

ycarac = yR + ln 1 + (1 + e

)x

necientes a las dos familias del ejemplo.

de borde: Se usa U = 1/(A + x) en y = 0 junto a la condicion


A partir de la segunda condicion
de borde en y = 0, lo que permite deducir que A = (1 x0 )/2, valor que se reemplaza en (9.2.9)
para despejar formalmente que
1 + 2x ey
x0 =
1 + ey
permite escribir A como funcion
de (x, y), lo que lleva a
Esta expresion
U (x, y) =

1 + ey
1+x

En este segundo caso las caractersticas, parametrizadas por el punto x0 en que nacen sobre el
eje X satisfacen
1 + 2x x0
ycarac = ln
1 + x0

9.2.2.

numerica

Integracion
a lo largo de una caracterstica

numerica

La integracion
general debe simultaneamente
en U sobre ella.
contrar la forma de la caracterstica como la funcion
Supongamos que se nos ha dado los valores de U sobre una
curva (que no puede ser una caracterstica). Sea P un punto
sobre : P = (xP , yP ) y sea C la caracterstica que pasa por P.
Al punto P se le asocia s = 0.

Para integrar se escoge un paso h para el parametro


s. Las
bajo orden se pueden escribir
ecuaciones (9.1.8) y (9.1.9) al mas
(1)

xR xP
h
(1)
yR yP
h
(1)
UR UP
h

Universidad de Chile

= aP
= bP

(9.2.10)

C
R
P

Figura 9.3: La curva corta a


la caracterstica C en P = (xP , yP ).
Otro punto cercano sobre C es R =
(xR , yR ).

= cP
Escuela de Ingeniera y Ciencias


9.3. SISTEMA DE ECUACIONES HIPERBOLICAS
DE PRIMER ORDEN

Ecs. diferenciales hiperbolicas

(1)

(1)

(1)

de las que se obtiene trivialmente las tres cantidades de orden 1, (xR , yR ,UR ). Estos tres valores
(1) (1) (1)
permiten calcular valores (aR , bR , cR ).
las mismas ecuaciones se escriben
A continuacion
( +1)

xR

xP

( )

( +1)

aP + aR
,
2

yR

yP

( )

bP + bR
,
2

( +1)

UR

UP

( )

cP + cR
2

(9.2.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 caracterstica hasta un punto que corresponde a
s = 2h. El procedimiento es el mismo. De esta manera se logra obtener toda la caracterstica que
nace en P y todos los valores de U sobre esa caracterstica.

Usando el metodo
anterior integrar
U
U
x
+U
= U 2
x
y

9.3.

de borde
con la condicion

U(x > 0, 0) = 1

Sistema de ecuaciones hiperbolicas


de primer orden

Si se tiene el sistema de M ecuaciones para U(x,t),

U
U
+ A(x,t)
+ B(x,t) U = F(x,t)
t
x

(9.3.1)

este sistema es hiperbolico


si la matriz A de M M es diagonalizable y sus autovalores k son
reales. En general se supondra que ellos son funciones de (x,t) y que no dependen de U.
Para resolver este sistema se comienza escribiendo
dU

U
U
+ dt
x
t
U

+ dt F A U BU
= dx
x
x
= dx

= (dx dt A)

U
+ dt F BU
x

se enEn el primer paso se elimino la derivada parcial con respecto al tiempo. A continuacion
para que la derivada con respecto a x tambien
desaparezca. Se escribe
cuentra la condicion
los autovalores k de A) y P es
A = P1 P, donde es una matriz diagonal (en la diagonal estan
por P se obtiene
la matriz para diagonalizar a A. Al multiplicar a la ecuacion
PdU = (dx dt ) P
2013
version

U
+ dt P F BU
x

(9.3.2)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

141

que por componentes es un conjunto de M ecuaciones


M1

M1

Pk j dU j = (dx dt k ) Pk j
j=0

j=0

M1
U j
+ dt Pk j (Fj B jiUi )
x
j=0

donde los ndices j y k varas de 1 a M o de 0 a M 1 segun


lo que se prefiera. Por cada uno
de los valores del ndice k se define una caracterstica Ck como la curva x(k) (t) que satisface la

ecuacion
dx(k)
= k (x,t)
(9.3.3)
dt
A lo largo de Ck se satisface

M1

M1

M1

Pk j dU j = dt

j=0

j=0

Pk j Fj

B jiUi

(9.3.4)

i=0

con un problema unidimensional de fluidos.


Lo anterior se ilustra a continuacion

9.3.1.

Fluido compresible sencillo

Esta parte sigue de cerca el modelo planteado en Numerical solution of partial differential equations:
finite difference methods de G.D. Smith

hay velocidad hiConsideremos las ecuaciones (7.3.1) y (7.3.2) para el caso en que solo

x, los campos solo


dependen de (x,t), se desprecia el termino

dronamica
en la direccion
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
+
t
x
v
v
+v
t
x

=0
(9.3.5)

p
=
x

de estado p = A , lo que implica que p/ =


Adicionalmente se supondra que vale la ecuacion
A 1 = p/ . Se define
dp p
c2 =
=
(9.3.6)
d

que permite reescribir la segunda de las ecuaciones (9.3.5) en la forma

v
v c2
+v +
=0
t
x x

(9.3.7)

La cantidad c no es una constante; es la velocidad del sonido y depende de la densidad.


El sistema de ecuaciones (9.3.5a) y (9.3.7) puede ser escrito como

t
Universidad de Chile

v
c2

=0

(9.3.8)
Escuela de Ingeniera y Ciencias


9.3. SISTEMA DE ECUACIONES HIPERBOLICAS
DE PRIMER ORDEN

Ecs. diferenciales hiperbolicas

comprobar que los autovalores de la matriz son 1 = v c y 2 = v + c. Sin embargo,


Es facil
explcito.
reobtendremos este resultado avanzando por un camino mas
de ambos campos en la forma
Para determinar curvas caractersticas escribimos la variacion

dF = Fx dx + Ft dt pero inmediatamente reemplazamos Ft por lo que dan las ecuaciones dinamicas


arriba:
que tenemos mas
2
dv = vx dx v vx + c x dt
(9.3.9)
d

= x dx (vx + vx ) dt

se obtiene que
De la segunda ecuacion

d + vx dt
dx v dt

que se reemplaza en la primera, obteniendose

x =

(dx v dt) dv = (dx v dt)2 c2 dt 2 vx c2 d dt

(9.3.10)

es independiente de vx si se escoge que la


En el paso anterior se elimino x . La ultima

relacion

integracion se haga en curvas que satisfagan


(dx v dt)2 = c2 dt 2
lo que se cumple en dos familias de curvas caractersticas:
dx
= v+c
curvas f
(9.3.11)
dt
dx
= vc
curvas g
(9.3.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 integracion.


sobre estas caractersticas reduce la ecuacion
(9.3.10) a la forma
La evolucion

(dx v dt) dv = c2 d dt
((v c) dt v dt) dv = c2 d dt
sobre curvas f /g
c d dv = 0

(9.3.13)

Las ecuaciones que hay que integrar numericamente


se pueden resumir en
C+ :

dx = (v + c) dt

combinada con

c d + dv = 0

(9.3.14)

C :

dx = (v c) dt

combinada con

c d dv = 0

(9.3.15)

definidos sobre las caractersticas.


Los diferenciales que aparecen en estas ecuaciones estan
de la densidad cuando hay un desplazamiento sobre
Por ejemplo, en (9.3.14), d es la variacion
la caracterstica f , en cambio en (9.3.15) aparece el cambio de la densidad sobre la caracterstica
g. Ambos d llevan el mismo nombre pero son objetos diferentes.
se define un metodo

A continuacion
para integrar estas ecuaciones. Se hara en dos etapas.
En la primera etapa, ver la figura 9.4, se define las ecuaciones
xR xP = (vP + cP ) (tR tP )
xR xQ = (vQ cQ ) (tR tQ )
2013
version

(9.3.16)

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Numericos

143

que permiten despejar xR y tR . Luego las ecuaciones c d


dv se discretizan,
cP (R P ) + (vR vP ) P = 0
cQ (R Q ) (vR vQ ) Q = 0

dx=(v+c)dt

(9.3.17)

que permite despejar R y vR . De R se obtiene cR .

dx=(vc)dt

obtenidas son una primera aproLas cantidades recien


a xR , tR , R y vR . Ahora se puede escribir una forma
ximacion
Figura 9.4: Las curvas PR y QR son cur precisa para los dos pares de ecuaciones:
mas
vas caractersticas.

n+1
1
n
n
xn+1
tP )
R xP = 2 (vP + vR + cP + cR ) (tR
n+1
n+1
1
n
n
xR xQ = 2 (vQ + vR cQ cR ) (tR tQ )

(9.3.18)

Se usa las primeras dos ecuaciones con n = 1 para obtener valores xR y tR de segundo orden e
con n = 1:
inmediatamente se usa las otras dos, tambien
n
(cP + cnR ) (Rn+1 P ) = (vn+1
R vP ) (P + R )
n
(cQ + cnR ) (Rn+1 Q ) = (vn+1
R vQ ) (Q + R )

(9.3.19)

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 mas
arriba.
La forma tpica de integrar en este caso consiste en obtener toda la secuencia de puntos
3
R a partir de puntos consecutivos de que juegan el papel de P y Q. La secuencia de puntos R 2
as obtenidos definen una curva 1 . que sera la
nueva curva a partir de la cual se construira una 1
curva 2 .

k1
k1
0

k
k

k1

k+1
k+1

k+1

0
0
1 ...
k+1 ... N
k
de este problema es distinta
La iteracion
al pasar de tiempos pares a tiempos impaFigura 9.5: Las dos faimilias de caractersticas de este
En el primer caso las iden- problema forman un reticulardo no regular.
res que al reves.
,t 2 ) y
tificaciones son P = (x2k ,tk2 ), Q = (x2k+1
k+1
R = (xk2 +1 ,tk2 +1 ) mientras que en el segundo las
1 2 1
,tk1 ), Q = (xk2 1 ,tk2 1 ) y R = (x2k ,tk2 ).
identificaciones son P = (x2k1

Condiciones de borde. Supongamos que en la malla de caractarsticas se tiene un punto Q en

una caracterstica g (crece hacia la izquierda) y el proximo


punto, R, esta en el borde izquierdo. De
que fijan las condiciones de borde a la izquierda en una primera
(9.3.17) y (9.3.18) las ecuacion
son
iteracion
xR xQ (vQ cQ ) (tR tQ ) = 0

cQ (R Q ) (vR vQ ) Q = 0

Universidad de Chile

(9.3.20)
Escuela de Ingeniera y Ciencias


9.3. SISTEMA DE ECUACIONES HIPERBOLICAS
DE PRIMER ORDEN

Ecs. diferenciales hiperbolicas

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 es nula, vR = 0. Se tiene dos ecuaciones y dos incognitas:
tR y
R . Algo similar debe ser planteado al lado derecho.

9.3.2.

Fluido compresible con entalpa variable

Esta parte sigue de cerca el modelo planteado en el libro Computational methods in engineering and
science de S. Nakamura.

Esta vez se considerara las ecuaciones

+v
+
t
x
x
v v2 p
+
+
t
x
x

= 0
=

(9.3.21)

2 v, es una forma sencilla de representar la resistencia del


donde f , reemplazando al termino
se elimina t , usando la primera, se obtiene la forma
flujo. Si en la segunda ecuacion

v
v
p
+v
=f
+
t
x
x

(9.3.22)

para la entalpa H,
y la ecuacion

H
H
+v
t
x

1
J

p
p
+v
t
x

=Q

(9.3.23)

de calor y J es una constante que hace calzar las unidades.


donde Q es la tasa de generacion
Puesto que

H
t
H
x

=
=

H H p
+
t
p t
H H p
+
x p x

se puede reescribir (9.3.23) en la forma

1
H H p
H H p
+
+
+ v

t
p t
x p x
J

p
p
+v
t
x

=Q

(9.3.24)

el cuadrado de la velocidad del sonido es


c2 =

H/
H/ p 1/( J)

(9.3.25)

lo que permite obtener

p
v
p
c2 Q
+ c2 + v
=
t
x
x
H
2013
version

(9.3.26)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

Si ahora en (9.3.23) se elimina

p
t

145

recien
escrita, se obtiene
usando la ecuacion

c2 Q
H
H c2 v Q
+v
+
=
t
x
J x 2 J H

(9.3.27)

Las ecuaciones (9.3.22), (9.3.26) y (9.3.27) se pueden resumir en la forma

v
v
1/ 0
v
f /

p =

v
0
c2 Q/( H/ )
p + c2
t
x
2
2
2
c /J
0
v
Q/ c Q/(J H/ )
H
H

(9.3.28)

La matriz A en este caso tiene autovalores

1 = v + c ,
Si se define

1
1/ c
0
P= 0
c
Jc
0
1/2J 1/(2 Jc)

2 = v c ,

3 = v

1/2
0
J
P1 = c/2
0
Jc
c/(2J) 1/( Jc) c

se obtiene que PAP1 =diag{v c, v, v + c}.

(9.3.29)

En base a estos resultados se puede llegar a las siguientes ecuaciones que deben ser integradas a lo largo de las respectivas caractersticas.
Ecuaciones para las caractersticas y v, p, H

Caracterstica C+ :
dx
dt
dv d p
c +
dt
dt
Caracterstica C :

dx
dt
dv d p
c +
dt
dt

= v+c
= cf

(9.3.30)
Qc2
H/

= vc
= c f

(9.3.31)

(9.3.32)
Qc2
H/

(9.3.33)

En ambos casos las derivadas son sobre la respectiva caractersticas. Estas dos caractersti
cas se denominan sonicas.
Caracterstica C3 o caracterstica material:
dx
dt
dH 1 d p

dt
J dt
Universidad de Chile

= v

(9.3.34)

= Q

(9.3.35)
Escuela de Ingeniera y Ciencias


9.3. SISTEMA DE ECUACIONES HIPERBOLICAS
DE PRIMER ORDEN

Ecs. diferenciales hiperbolicas

Metodo
explcito parcialmente basado en las caractersticas

a lo largo de las caractersticas, tal como se hizo en


Un metodo
basado en la integrancion
satisfactorio.
9.3.1 sera mucho mas

n+1

Este metodo
calcula pn+1 , vn+1 y H n+1 a partir de pn , vn y
En lo que sigue h = xk+1 xk = xk xk1 y los intervalos
que
temporales valen . Se usa ademas
H n.

pA =
vA

pB =
vB

xA xk1 n
xk xA n
pk1 +
pk
h
h
xk xA n
xA xk1 n
vk1 +
vk
h
h
xk+1 xB n xB xk n
pk +
pk+1
h
h
xk+1 xB n xB xk n
vk +
vk+1
h
h

k1 A

B k+1

Figura 9.6: Los puntos A y B son las


intersecciones de las caractersticas C+
y C que pasan por el punto (n + 1, k) con
el eje n.

Se plantean las ecuaciones


pn+1
pA
k
+ c

pB
pn+1
k
c

n+1

vn+1
vA
Qc2
k
= R+ c f
+

H/

vn+1
vB
Qc2
k
= R c f

H/

<v> > 0

<v> < 0

donde debe entenderse que c es el promedio sobre la caracFigura 9.7: La caracterstica materstica C . De lo anterior se obtiene
terial define un punto D que esta a
pn+1
+ c
k
c
pn+1
k

n+1
+ vk
n+1
vk

= R+ + pA + c

+ vA

= R + pB c

vB

la izquierda o derecha segun


el
de
v
en
C3 .
m

(9.3.36) signo de promedio v


(9.3.37)

Los factores que aparacen en los dos lados derechos se conocen, de modo que estas dos ecuaciones permiten obtener pn+1
y vn+1
k
k .

Estas ecuaciones pueden no ser validas


en los bordes que, tpicamente, corresponden a k = 0
y k = N.
Para determinar la entalpa se usa (9.3.35) en la forma

pD
Hkn+1 HD 1 pn+1
k

= Q
m

de C3 con el eje n y se cumple que


donde HD es el valor de H en el punto D que es la interseccion
xD > xk
xD < xk

v
v

<0
m>0

como muestra la figura 9.7 donde HD se define por medio de

n + (1 v
n
con
v m h Hk1
m h ) Hk
HD =

n + (1 | v | ) H n
| v m | h Hk+1
con
m h
k

2013
version

>0

m<0

(9.3.38)

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

147

y expresiones similares para pD . Pero pn+1


ya se conoce, de modo que
k
1
Q
m

Hkn+1 =

m+

1 n+1
p pD
J k

+ HD

(9.3.39)

de estado para determina la densidad y otras


Conociendo Hkn+1 y pn+1
k , se usa la ecuacion
propiedades que pudieran interesar.

9.4.

Ecuaciones de segundo orden cuasilineales

Se considerara la ecuacion
a

2U
2U
2U
+
c
+
b
+e = 0
t2
t x
x2

(9.4.1)

de t, x , U , t U y xU .
donde los coeficientes a, b, c, e son, en general, funcion

Se usara la notacion
p=

U
,
t

q=

U
,
x
(9.4.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 lineas caractersticas en

diferencial
el plano (x,t), parametrizadas por un parametro
s, a lo largo de las cuales la ecuacion
de la diferencial dU cuando vara s, es decir, dU = p dt + q dx donde
se transforma en la expresion
dt y dx son las variaciones a lo largo de las caractersticas.
anterior permite que la ecuacion
original se escriba
La notacion
a R + b S + cW + e = 0

(9.4.3)

se manipulara para que desaparezcan las segundas derivadas, lo que conduce a


A continuacion
de las caractersticas.
la definicion
original anterior sera convertida en ecuaciones para curvas
Como se ha dicho, la ecuacion
caractersticas f y g y una forma diferencial para U sobre las caractersticas. Las curvas carac definidas por funciones (x f (s),t f (s)) y (xg (s),tg (s)) de un parametro

tersticas quedaran
s. Usando

un punto para indicar derivada con respecto al parametro


s, se puede escribir
p = R t + S x
q = S t +W x

(9.4.4)

p Sx
t
q St
W=
x

(9.4.5)

de donde se despeja
R=

Universidad de Chile

Escuela de Ingeniera y Ciencias


Ecs. diferenciales hiperbolicas

9.4. ECUACIONES DE SEGUNDO ORDEN CUASILINEALES

que permite reescribir (9.4.3) en la forma


a

p Sx
q St
+ bS + c
+e = 0
t
x

que reordenada y multiplicada por x da


t S

x
t

x
x
b + c + a p + c q + e x = 0
t
t

anterior ya no depende ni de R ni de W . El proximo

La ecuacion
paso es lograr que tampoco
no dependa de S se exige
dependa de S. El cuociente xt sera llamado X (s) y, para que la ecuacion

que el parentesis
grande sea nulo:
aX2 bX + c = 0
(9.4.6)
la que da, en cada punto (x(s),t(s)) dos soluciones para X llamadas f (s) y g(s),
f

g =

b + b2 4ac
2a
b b2 4ac
2a

(9.4.7)

Esto quiere decir que (9.4.3) permite dos direcciones en cada punto (t, x)definidas por X =
que resuelven (9.4.6). A lo largo de tales curvas d p y dq satisfacen,
a X d p + c dq + e dx = 0

(9.4.8)

Las direcciones que emergen de (9.4.6) se llaman direcciones caractersticas y las ecuaciones de tipo (9.4.1) son clasificables de acuerdo al tipo de
soluciones que emergen de (9.4.6), lo que se decide con el signo/valor de
2

b 4ac

(9.4.9)

como lo resume la tabla que sigue:

tipo de ecuacion

races

hiperbolica

parabolica
elptica

reales y diferentes
reales e iguales
complejas

dx
dt

Hiper
Elip

Elip

Hiper

signo
b2 4ac > 0
b2 4ac = 0
b2 4ac < 0

Figura 9.8: La ecua-

puede ser de distinta naturaleza en distintas zonas del


Una ecuacion
espacio (t, x), como por ejemplo
xUtt + t Utx + xUxx = F(t, x,U,Ut ,Ux )

(9.4.10) es hiperboli
cion

ca, parabolica
o elptica
dependiendo de la zona
del plano (x,t) que se
considere.

(9.4.10)

es hiEn este caso a = x, b = t, c = x y la naturaleza de esta ecuacion


2
2
2

perbolica,
parabolica
o elptica segun
si b 4ac = t 4 x es positivo, nulo o negativo. En la figura

es parabolica.

se ve los dominios donde es hiperbolica


y elptica. En las fronteras la ecuacion
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

9.5.

Ecuaciones hiperbolicas

9.5.1.

Planteamiento del problema

149

En el caso hiperbolico
pasan dos caractersticas diferentes por cada punto. Ellas tienen pendientes
dx
dx
= f,
=g
(9.5.1)
dt
dt
las f-caractersticas y las g-caractersticas.
que se denominaran

Por lo anterior, la ecuacion


a

2U
2U
2U
+
c
+
b
+e = 0
t2
t x
x2

(9.5.2)

con coeficientes a, b, c y e que son funciones conocidas de (t, x,U, p, q), tiene caractersticas cuyas
algebraica
pendientes se obtienen resolviendo la ecuacion

dx
dt

dx
+c = 0
dt

(9.5.3)

Las races se denominan f y g.


relacionados por
A lo largo de las caractersticas los diferenciales d p y dq estan
a

dq
dx
d p dx
+c
+e
=0
dt dt
dt
dt

que se puede escribir


a

dx
d p + c dq + e dx = 0
dt

que toma dos formas, segun


de que caracterstica se trate,
a f d p + c dq + e dx = 0
a g d p + c dq + e dx = 0

(9.5.4)

En las dos relaciones anteriores los diferenciales, a pesar de tener el mismo 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 caracterstica correspondiente, f en la primera y g en la segunda.

Finalmente se usa ademas


dU = p dt + q dx

(9.5.5)

que puede evaluarse a lo largo de cualquiera de las dos caractersticas.


Universidad de Chile

Escuela de Ingeniera y Ciencias


9.5. ECUACIONES HIPERBOLICAS

Ecs. diferenciales hiperbolicas

9.5.2.

explcita
Integracion

Existe una variedad de problemas para los cuales las


caractersticas son integrables en forma explcita antes de

iniciar el metodo
numerico.
En lo que sigue se describe el

caso en que las caractersticas se van obteniendo numericamente punto a punto.

Sea una curva que no es una caracterstica y supongamos que sobre ella se conocen U , p y q. Sean P, Q puntos
muy cercanos en , es decir los valores uP , uQ , pP , pQ , qP y
qQ son conocidos.

Figura 9.9: Naturalmente en las ecuacio-

El primer paso consiste en resolver (9.4.6)


aP f 2 bP f + cP
aQ g2 bQ g + cQ

nes hiperbolicas
de segundo orden existen
dos familias de caractersticas.

=0
=0

(9.5.6)

para escoger un valor para fP y otro para gQ consistentes para que exista un punto cercano R
donde se corta la f-caracterstica que pasa por P con la g-caracterstica que pasa por Q. En una
se toman los arcos PR y QR como rectas con pendientes fP y gQ por lo que
primera aproximacion
se puede escribir
(1)
(1)
xR xP = fP (tR tP )
(9.5.7)
(1)
(1)
xR xQ = gQ (tR tQ )
(1)

(1)

De estas dos ecuaciones se obtiene valores aproximados para (tR , xR ).


A las ecuaciones (9.5.4) se les puede dar la forma aproximada
(1)

(1)

(1)

aP fP (pR pP ) + cP (qR qP ) + eP (xR xP ) = 0


(1)
(1)
(1)
aQ gQ (pR pQ ) + cQ (qR qQ ) + eQ (xR xQ ) = 0
(1)

(9.5.8)

(1)

que dan primeras expresiones (pR , qR ).


para determinar U
La ecuacion
dU =

U
U
dt +
dx = p dt + q dx
t
x

en forma aproximada es
(1)

uR uP =

1
(1)
(1)
(1)
(1)
(pP + pR ) (tR tP ) + (qR + qP ) (xR xP )
2

(9.5.9)

(1)

se podra usar la otra caracterstica para aproximarse


que determina un valor para uR . Tambien
(1)
al valor de uR , o ambas y luego utilizar el promedio.
(1)

(1)

(1)

(1)

(1)

De esta manera se obtiene primeros valores para las cinco cantidades tR , xR , pR , qR , uR


(1)

(1)

(1)

(1)

Con estos valores se determinan aR , bR , cR , eR


2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

151

A partir de todo lo anterior se define un metodo


iterativo para mejorar los valores en R. Este

metodo
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) .
n para resolver la ecuacion

1. Se usa el conocimiento de la iteracion


(n)

(n)

(n)

aR X 2 bR X + cR = 0
(n)

(9.5.10)

(n)

cuyas raices son fR y gR .


2. Se reemplaza (9.5.7) por
(n)

fP + fR
(n+1)
=
(tR
tP )
2

(n+1)
xP
xR

(n+1)

para obtener (tR

(n+1)

, xR

(n+1)
xR
xQ

(n)

gQ + gR (n+1)
=
(tR
tQ )
2

(9.5.11)

).

3. Se reemplaza (9.5.8) por


(n)

(n)

(n)

(n)

aP + aR
2

fP + fR
cP + cR
eP + eR
(n+1)
(n+1)
(n+1)
(pR
pP ) +
(qR
qP ) +
(xR
xP ) = 0
2
2
2

(n)
aQ + aR

(n)
gQ + gR

2
(n+1)

para obtener (pR

(n+1)

(pR

(n+1)

, qR

pQ ) +

(n)
cQ + cR

(n+1)

(qR

qQ ) +

(n)
eQ + eR

(n+1)

(xR

(9.5.12)

xQ ) = 0

).

4. Hecho todo lo anterior se usa (9.5.9) en la forma


(n+1)

uR
(n+1)

para tener uR

(n+1)

uP =

pP + pR
2

(n+1)

(tR

(n+1)

tP ) +

qR

+ qP

(n+1)

(xR

xP )

(9.5.13)

las cantidades: tR , xR , pR , qR y uR se calculan,


5. Habiendose
obtenido en primera aproximacion
(n+1) (n+1) (n+1) (n+1)

en esta aproximacion, los coeficientes aR , bR , cR , eR .


descritos se repiten hasta tener convergencia para las cinco cantidades que
Los pasos recien
suficientemente cerca se requiere de pocas
se quiere evaluar en el punto R. Si P, Q y R estan
iteraciones para que las interaciones anteriores converjan.
Recorriendo la curva con pares cercanos (P, Q), se obtiene una nueva curva (esto es, nuevos
y sus derivadas. Esta nueva curva
puntos (x,t) ), cercana a sobre la cual se determina la funcion
se usa para seguir avanzando.
Universidad de Chile

Escuela de Ingeniera y Ciencias


Ecs. diferenciales hiperbolicas

9.6.

9.6. CONDICIONES DE BORDE

Condiciones de borde

En lo que sigue, se analiza la forma de determinar los valores en los puntos R en el borde
izquierdo a partir de los valores que ya se han determinado en puntos Q como lo ilustra la figura
9.10.
U (x,t) en x = xizq es rgida entonces es dato
(a) Si la condicion
UR = U (xizq ,t)

que implica conocer

pR = p(xizq ,t)

(9.6.14)

U (x,t) en x = xizq es derivativa entonces es dato


(b) Si la condicion
U R =

U (x,t)
x

= qR

(9.6.15)

x=xizq

de borde a la izquierda es rgida


De modo que segun
si la condicion
o derivativa se conoce pR o qR .

Puesto que se conoce todo en el punto Q de la figura 9.10, se deter- R


mina que
gQ =

bQ

b2Q 4aQ cQ
2aQ

xizq

que se usa en la forma discreta de dx = g dt,


Figura 9.10: En el texto se
xizq xQ = gG (tR tQ )

analiza la forma como se de-

(9.6.16) termina las cantidades aso-

para determinar tR . Segudamente se una la forma discreta de a g d p +


c dq + e dx,
aQ gQ (pR pQ ) + cQ (qR qQ ) + eQ (xizq xQ )

ciadas a un punto R en el
borde izquiero cuando se tie en un
ne toda la informacion
punto Q sobre la misma caracterstica.

(9.6.17)

se conocen todos los factores excepto por uno. Si la condicion


de borde a la
En esta expresion
de borde a la
izquierda es rgida se conoce pR y (9.6.17) permite determinar qR . Si condicion
izquierda es derivativa se conoce qR y (9.6.17) determina pR .
Finalmente de (9.5.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 borde al lado derecho.
2013
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

9.7.

Metodos
Numericos

153

Problemas

9.1 Integre el problema de un fluido compresible unidimensional sin viscosidad que obedece las
ecuaciones

v
+
t
x
v
v

+v
t
x

= 0
=

p
x

(9.7.1)

de estado p = A . Considere 0 x 1, condiciones de borde v(0,t) = 0 y v(1,t) =


y ecuacion
inicial (x, 0) = 1 en todo el domino excepto que en el intervalo 0 x 0,1 vale
0 y condicion

(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 la evolucion
del sistema. Itere su sistema al menos
de 0 x 1) para tener un vision
unas 25 mil veces.
Una de las muchas formas de mostrar lo que ha obtenido puede ser, por ejemplo, mostrar
de la densidad usando gnuplot con las instrucciones
la evolucion
set nokey
set nosurface
set contour base
set view 0, 0, 1, 1
splot "mis.datos" u 2:1:3 w d
de v(x,t) tambien
interesa ver el signo.
En el caso de la evolucion

9.2 Integre la ecuacion

2U 2U
U
2 +
=0
2
t
x
t

usando el metodo
de las caractersticas 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.
U debiera ser cero sobre la mitad del intervalo).
(Para k = 5000 la funcion
b) Grafique U (x = 71 ,t) y U (x = 12 ,t) desde t = 0 hasta un tiempo suficientemente largo para

que se vea que el sistema ha alcanzado un estado de regimen.

c) Una vez en el estado de regimen


dibuje U (x,t0 ) para un instante t0 para el cual U (0,t0 ) =
2,0
Universidad de Chile

Escuela de Ingeniera y Ciencias


Transformada rapida
de Fourier (FFT)

9.7. PROBLEMAS

planteada es la que satisfacen las componentes del campo electrico

La ecuacion
y magneti
co cuando se propaga una onda electromagnetica
en un medio algo conductor. El coe de borde en x = 0
ficiente es proporcional a la conductividad del medio. La condicion
puede pensarse como la que impone una onda que llega desde el vaco al medio conductor
de borde en x = 1 corresponde a la presencia de un
que comienza en x = 0. La condicion
conductor perfecto de ah en adelante. Ese borde actua como un espejo.

2013
version

Facultad de Ciencias Fsicas y Matematicas

Captulo 10

Transformada rapida
de Fourier
Este captulo sigue de cerca la primera parte del correspondiente captulo de Numerical Recipes y aun esta muy incompleto.

10.1.

La transformada continua

10.1.1.

La delta de Dirac

de la funcion
juega un papel especial en este captulo. Ella se define como
La nocion

(f) =
donde (y = 0) = 0

e2 i f t dt

(t) =

e2 i f t d f

(10.1.1)

(x) h(x) dx = h(0)

(10.1.2)

h(x) continua en x = 0.
para cualquier funcion

10.1.2.

entre una funcion


y su transformada
Relacion

continua y G( f ) es su transformada continua de Fourier se satisface


Si g(t) es una funcion

G( f ) =

g(t) e2 i f t dt

g(t) =

G( f ) e2 i f t d f

(10.1.3)

Notese
que en este formalismo se considera valores tanto positivos como negativos para la
variable de frecuencia f .

10.1.3.

y correlacion

Convolucion

de las funciones g1 (t) y g2 (t) como la funcion


de t denotada g1 g2 (t):
Se define la convolucion

g1 g2 (t)

g1 ( ) g2 (t ) d

155

(10.1.4)


Transformada rapida
de Fourier (FFT)

10.2. TRANSFORMADA DE FOURIER EN DOMINIO FINITO

de Fourier asociada es el simple producto


Notese
que g1 g2 (t) = g2 g1 (t) y la transformacion
G1 ( f ) G2 ( f )

. A esta propiedad se la llama teorema de la convolucion.


entre dos funciones g1 y g2 , que se denota Corr(g1 , g2 ) , es una funcion
de t
La correlacion
que se define por

Corr(g1 , g2 ) =

Notese
que la transformada de Corr(g1 , g2 ) es

g1 (t + )g2 ( ) d

(10.1.5)

G1 ( f )G2 ( f )

que, si G2 (t) es real da G1 ( f )G2 ( f ) (teorema de la correlacion).


es |G( f )|2 .
Si g(t) es real entonces la transformada de su autocorrelacion

10.1.4.

Potencia

La potencia total esta dada (teorema de Parseval)

potencia total =

|g(t)|2 dt =

|G( f )|2 d f

(10.1.6)

se define la densidad espectral unilateral de potencia


Tambien
Pg ( f ) = |G( f )|2 + |G( f )|2 ,
de modo que la potencia total es

0 f

(10.1.7)

Ptot =

Pg ( f ) d f

Notese
que
si

10.2.

g(t)

es real entonces

Pg ( f ) = 2|G( f )|2

(10.1.8)

Transformada de Fourier en dominio finito

Considerese
el espacio de funciones h(x), definidas en 0 x L y las funciones base
1
en (x) = e2 inx/L ,
L
Estas funciones satisfacen

L
0

donde

n = 0, 1, 2 . . .

en (x) em (x) dx = n m

(10.2.1)

(10.2.2)

de modo que es posible escribir h(x) en terminos


de las funciones base en (x)

h(x) =

Hnen (x)

(10.2.3)

n=0
2013
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Numericos

157

y a la inversa
L

Hn =

h(x) en (x) dx

(10.2.4)

Se puede llamar transformada de Fourier directa a (10.2.4), mientras que (10.2.3) es la transformada inversa.

10.3.

Transformada de Fourier discreta

continua g(t) con < t < se utilizara ahora la muestra


En lugar de considerar la funcion
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 crtica de Nyquist,
fc

1
2

(10.3.2)

Se habla del analisis


estadstico de senales
para referirse, en el contexto actual, al espectro
es una funcion
positiva de una variable de frecuencia asociada a
de una serie temporal o senal

dada del tiempo que tiene dimensiones de


un proceso estocastico
estacionario, o una funcion
tempotencia por hertz, o energa por hertz. Intuitivamente el espectro descompone a la funcion
poral en componentes asociadas a las distintas frecuencias presentes en el proceso y as ayuda a
identificar periodicidades escondidas. Suelde decirse espectro de potencia, densidad de potencia
espectral o densidad espectral de energa.
densidad de potencia espectral con la abreviatura PSD por power
Aca se usara la expresion
specral density.
g(t) esta definida en < t < su densidad de potencia espectral muy
Si nuestra funcion
probablemente va a ser infinita. Por lo general interesa limitarse a una lapso finito de tiempo y
g(t)nula fuera de un dominio finito de tsu correspondiente PSD.
calcular para esa funcion
Hay razones que permiten apreciar la importancia de la frecuencia de Nyquist:
continua g(t) a intervalos y g(t) resulta tener un ancho de
a) Si se muestrea una funcion
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)

g(t) queda totalmente determinada por el muestreo gk . En efecto, si g(t)


entonces la funcion
esta dado por el teorema del muestreo o sampling theorem,

g(t) =

k=

gk

sin(2 fc (t k))
(t k)

(10.3.4)

anterior muestra que el contenido de informacion


de una funcion
de ancho de
La expresion
continua
banda limitado es, en cierto sentido, infinitamente menor que el de una funcion
general. En tal caso basta una muestra discreta y no continua.
Universidad de Chile

Escuela de Ingeniera y Ciencias


Transformada rapida
de Fourier (FFT)

10.3. TRANSFORMADA DE FOURIER DISCRETA

quepor razones fsicastiene un ancho de


A menudo se debe trabajar con una senal
puede haber
banda limitado, al menos en un sentido aproximado. Por ejemplo, la senal
pasado por un amplificador que responde a un ancho de banda limitado. En tal caso, el
de la senal
puede ser registrada muestreando a una
teorema dice que toda la informacion

tasa 1 , igual al doble de la frecuencia maxima,


(10.3.2), que entrega el amplificador.
continua que no esta limitada a un ancho de banda ( fc <
b) Si se muestrea una funcion
asociada a frecuencias fuera de este rango es erroneamente

f < fc ), toda la informacion

se dice
trasladada a ese rango. Este fenomeno se denomina traduccion falsa (en ingles
aliasing).
falsa consiste en primero tener claro cual
es el ancho de
c) La forma de superar la traduccion
o bien imponer un lmite conocido por medio de un filtro analogico

banda de la senal,
de la
continua y, segundo, muestrear a una tasa suficientemente fina ( pequeno)
para dar
senal
alta.
al menos dos puntos por ciclo para la frecuencia mas
falsa conviene estimar la transformada de Fourier
d) Para reparar el efecto de la traduccion
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 tendra un resultado razonablemente bueno, pero si esto no ocurre podemos sospechar
fuertemente que componentes fuera del rango se han colado al rango crtico.
finito N,
Se tiene entonces una muestra discreta y de tamano
gk g(tk ) ,

tk = k ,

k = 0, 1, ..., N 1

(10.3.5)

que N es par.
Supongamos ademas
Ya que se tiene un numero

finito de datos se quiere calcular igual numero

N de transformadas
G( f ) en el rango ( fc , fc ). Se escoge hacerlo para las frecuencias discretas:
fn =

n
,
N

N
N
n = , ...,
2
2

(10.3.6)

adelante se reemplazara este rango de n por (0, 1, .., N).


Mas
Se hace notar que
fN/2 = fc

y que

fn = fn

(10.3.7)

En (10.3.6) se define N + 1 frecuencias, pero en lo que sigue se vera que solo se toman en
cuenta N.
La exponencial exp[2 i fn t] en el caso discreto (usando fn y t = k ) es
e2 i fn t = e2 ink/N

(10.3.8)

Esta exponencial no cambia si se reemplaza n n N porque


e2 i(nN)k/N = e2 ink/N e2 ik = e2 ink/N

(10.3.9)

en n con perodo N. En particular


ya que exp[2 ik] = cos(2 ik) = 1. Esto es, e2 ink/N es periodica
el caso n = 0 es equivalente al caso n = N por lo que a ambos se les asocia la frecuencia nula.
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

159

En los casos 0 n N2 se continuara 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 fn se le asociara a
frecuencia negativa equivalente
Nn
fn+N =
(10.3.10)
N
Se ve entonces que las frecuencias que entran en este
formalismo tiene siempre una magnitud que no sobrepasa fc .

f=0

f>0

+fc

f<0

f=0

De todo lo anterior se ve que el rango para n dado en 0


N/2
N
(10.3.6) puede ser reemplazado por el rango n = 0, 1, ..N 1
de tal manera que para 0 < n N2 se obtiene frecuencias fn Figura 10.1: Esta figura ilustra la rela entre los valores de n abajo con las
cion
tales que
frecuencias que se le asocia, arriba. Ver
0<n

N
2

Mientras que con n tal que

N
2

la tabla (10.3.11)
tambien

0 fn < fc

n < N se asocia frecuencias negativas.

entre los valores de n y la frecuencia asociada


La tabla que sigue muestra la relacion
N
2

0n<
n=

N
2

fn =

n
n
=
fc
N (N/2)

1
fN/2 = 2
= fc

N
<nN
2

fn =

(10.3.11)

N n
Nn
=
fc
N
(N/2)

Notese
que las frecuencias de mayor magnitud absoluta
son fc .
Con lo anterior se define la transformada

G( fn ) =

g(t) e2 i fnt dt

N1

N1

k=0

k=0

gk e2 i fntk = gk e2 ikn/N

fc

(10.3.12)

N n

N/2

Pero la transformada de Fourier discreta Gn se define omi-

tiendo el factor ,
N1

Gn

gk e2 ikn/N

(10.3.13)

k=0

fc

que graficamente
se representa por la figura 10.1. Por ejemplo, en el caso N = 16, la figura 10.1 tendra las 17 frecuencias.
anotando abajo
Esto es lo que representamos a continuacion
los valores de n

grafica

Figura 10.2: Representacion


de n
de las frecuencias como funcion
segun
(10.3.11).

0,

1f ,
8 c

2f ,
8 c

3f ,
8 c

4
8 fc

5f
8 c

6f
8 c

7f ,
8 c

fc ,

87 fc ,

86 fc

85 fc

84 fc

83 fc

28 fc

81 fc ,

10

11

12

13

14

15

16

Universidad de Chile

Escuela de Ingeniera y Ciencias


10.4. LA TRANSFORMADA RAPIDA
DE FOURIER (FFT)

Transformada rapida
de Fourier (FFT)

Puesto que la primera y ultima

frecuencias son iguales (y nulas) efectivamente hay tan solo


16 frecuencias diferentes.
en general, siempre con N par, se tiene
Mas

fn =

2
N fc

4
N fc

...

N2
N fc

n=

...

N2
2

4
2
fc N2
N f c ... N f c N f c 0
N
2

N+2
2

... N 2 N 1 N

La transformada discreta asocia a los N numeros

complejos gk son los N numeros

complejos

Gn . Ella no depende de ningun


parametro
dimensional tal como .
G( fn ) Gn

(10.3.14)

original gk , es
La transformada inversa quea partir de Gn recupera la funcion
gk =

1 N1
Gn e2 ikn/N
N n=0

(10.3.15)

y el teorema de Parseval (10.1.6) toma la forma


N1

k=0

|gk |2 =

1 N1
|Gn |2
N n=0

(10.3.16)

se puede escribir formas discretas para la convolucion


y la correlacion.

Tambien

10.4.

La transformada rapida
de Fourier (FFT)

Se define la matriz W de componentes W nk como


W nk = e2 ikn/N

(10.4.1)

con lo cual (10.3.13) se puede escribir


N1

Gn =

W nk gk

(10.4.2)

k=0

que puede mirarse como el producto de la matriz W multiplicando al vector g. Segun


la expresion
anterior, cada uno de los Gn requiere de N multiplicaciones 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 vera como
reducir
el numero

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
2013
version

Facultad de Ciencias Fsicas y Matematicas

Metodos
Numericos

Patricio Cordero

161

impares:
N1

Gn =

e2 ikn/N gk

k=0
N/21

N/21

e2 in(2k)/N g2k +

k=0

k=0
N/21

=
=

e2 in(2k+1)/N g2k+1
N/21

e2 ink/(N/2) g2k +W n

k=0
n
G+
n +W

e2 ink/(N/2) g2k+1 ,

k=0

n = 0, 1, . . . N 1 (10.4.3)

donde W e2 i/N

G
n

donde quiere decir parte par o impar. Se

puede comprobar que G+


n y Gn son periodicas en n con perodo N/2 debido a lo siguiente:
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 G
n.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 2 4 6 8 10 12 14 1 3 5 7 9 11 13 15

0 4 8 12 2 6 10 14 1 5 9 13 3 7 11 15

0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15

(10.4.4)
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

0
8
4
12
2
10
6
14
1
9
5
13
3
11
7
15

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 expo y, puesto Figura 10.3: A la izquierda se muestra como las sucesivas
nenciales como (10.4.5) y ademas

separaciones en terminos
pares e impares lleva al orden final.
que
A la derecha se ilustran el reordenamiento de los ndices de
.

W n+N/2 = W n e i = W n ,

de
16 datos comprobandose
que corresponde a la inversion

(10.4.6) los bits.

se cumple que
n
Gn+ N = G+
n W Gn
2

(10.4.7)

lo que muestra que si se calcula los G+


n y Gn con 0 n < 2 , se puede calcular no tan solo los Gn
los Gn+ N , esto es, hay que hacer la mitad de los calculos

sino ademas
para obtener todos los Gn .
2

Habiendo reducido el calculo


de Gn al calculo
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 podramos llamar el calculo


de G++
y G+
n
n . Y algo similar

sencillo se presente cuando N es


se hace con Gn dando Gn Gn . Esto hace que el caso mas
una potencia de 2, N = 2q .

Teniendo N = 2q diversos autores argumentan que la transformada de Fourier estandar


re2
2q

quiere de N = 2
operaciones, mientras que la FFT (transformada de Fourier rapida) requiere
de q 2q = N ln N operaciones. Por ejemplo, si q = 12 se reduce el numero de operaciones de
224 =16.777.216 a 12 212 =49.152.
de recurrencia donde las componentes llegan a tener una
Se concluye que existe una relacion
binaria de n, esto es, n es
secuencia de ndices par e impar. Se hace uso de la representacion

Universidad de Chile

Escuela de Ingeniera y Ciencias


Transformada rapida
de Fourier (FFT)

n=0,2,...14

Gn=0,...15

n=1,3,...15

10.4. LA TRANSFORMADA RAPIDA


DE FOURIER (FFT)

++++

G0

+++

0,8

G+++

++

Gn=0,4,8,12

G+++
4

++

4,12

G++

12

+++

++ 2

2,10 G++

10

Gn=2,6,10,14
++

G6

G6,14

G14

+++

++ G1

G1,9

++

G9

++
G+
n=1,5,9,13
G5

5,13

G13

++

+ G3

G3,11

G11

Gn=3,7,11,15
+

G7

7,15
G15

(10.4.8)

Figura 10.4: Otra forma de ver las sucesivas separaciones de los Gn originales a las partes pares/impares.

2013
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Numericos

163

expresado con ceros y unos, de modo que a 0 se asocia par y a 1 se asocia impar, como se
gruesas (menos puntos)
ilustra en las figura 10.3 y en (10.4.8). Las transformadas cada vez mas
binaria de n, como la eliminacion
secuencial de los bits
deben ser vistas, en la representacion
menos relevantes.

La idea basica
es la siguiente. Se toma el vector original g de componentes gk y se lo reordena
segun
el orden natural que resulta una vez que se cambia cada ndice k por el que corresponda
de bits como se ilustra en la Fig. 10.3. Esto corresponde a tomar objetos como
en una inversion
e invertir el orden de estos ndices superiores.
G+++++..
n
detalles. Si se tiene tan solo 16 daLo anterior no es tan sencillo y debe explicarse en mas
tipo (10.4.4), se suman (0, 2, 4, 6, 8, 10, 12, 14) y luego los datos
tos, en la primera separacion,
se debe sumar (0, 4, 8, 12) y (2, 6, 10, 14) segui(1, 3, 5, 7, 9, 11, 13, 15); en la segunda separacion
do 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.3 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,
de los bits que es lo que senalan

el reordenamiento de los datos corresponde a una inversion


las
dobles flechas en la figura 10.3, por ejemplo, [0101] intercambia lugar con [1010]: el quinto dato

es renombrado como el decimo


y el decimo
como el quinto. En cambio los numros

0, 6, 9 y 15

permanecen en sus lugares porque, descritos en bits, son simetricos.

10.5.

Codigos
para una FFT

Para el manejo de complejos en C se usa complex.h:


/*======================================================================*/
/*
complex.h escrito por Dino Risso
/*
Archivo de declaraciones para manejo de numeros complejos
*/
/*======================================================================*/
typedef struct //
se define el tipo "Complex" como objeto con
{
double re; //
componentes re e im
double im;
} Complex;
Complex *Cmplx(double re, double im) // Cmplx es el complejo con
// compotentes (re, im)
{ Complex *p;
// p es un objeto de tipo Complex
p
= (Complex *)malloc(sizeof(Complex));
p->re = re;
// dice: asigne re a la componente re de p
p->im = im;
return (p);
}/* Complex Cmplx() */
double Real(Complex *p) // extrae la parte real de p
{ return(p->re);
}/* Real() */
double Imag(Complex *p) // extrae la parte imaginaria
{ return(p->im);
}/* Imag() */

La FFT misma se ejecuta con las operaciones definidas en fft.h:


/*======================================================================*/
/* fft.h */
Universidad de Chile

Escuela de Ingeniera y Ciencias

*/


Transformada rapida
de Fourier (FFT)

10.5. CODIGOS
PARA UNA FFT

/* Para usarla se necesita incluir el archivo COMPLEX.H


*/
/*
El tamanho n del arreglo se declara en el programa principal
*/
/*======================================================================*/
void Swap(Complex **data,int a, int b)
{ Complex *temp;
temp
= data[a];
data[a] = data[b];
data[b] = temp;
}/* Swap() */
void BitReversa(int n, Complex **data)
{ int j,k,l,m;
j = 1;
for(k=1; k<=n; k++)
{ l = (j+1)/2;
if (l>k) Swap(data,l,k);
m = n;
while ((m>=2) & (j>m))
{ j = j-m;
m = m/2;
}
j += m;
}
}/* BitReversa() */
void FFT(Complex **data, int n, int sign)
{ int
nn,max,istep;
int
i,j,k,l,m;
double wr,wi,wpr,wpi;
double tr,ti,theta;
BitReversa(n,data);
nn = 2*n;
max = 2;
while (nn>max)
{ istep = 2*max;
theta = 6.28318530717959/(sign*max);
wpr
= -2.0*pow(sin(0.5*theta),2.0);
wpi
= sin(theta);
wr
= 1.0;
wi
= 0.0;
for(k=1; k<=(max/2); k++)
{ m = 2*k-1;
for(l=0; l<=((nn-m)/istep); l++)
{ i = m + l*istep;
j = i + max;
i = (i+1)/2;
j = (j+1)/2;
tr = wr*data[j]->re - wi*data[j]->im;
ti = wr*data[j]->im + wi*data[j]->re;
data[j]->re = data[i]->re - tr;
data[j]->im = data[i]->im - ti;
data[i]->re = data[i]->re + tr;
data[i]->im = data[i]->im + ti;
}
tr = wr;
wr += wr*wpr - wi*wpi;
wi += wi*wpr + tr*wpi;
}
max = istep;
}
}/* FFT() */

se da el ejemplo fft.c que llama a los dos archivos anteriores.


A continuacion
//---------------------------------------------------------------------// fft.c
hace Transformada de Fourier Rapida. El main() usa un arreglo
// de tamanho fijo. Se compila
gcc -o mio fft.c -lm
// Y se ejecuta
./mio 512 < MisDatos.dat
// donde MisDatos.dat es un archivo de dos columnas, la parte real e
// imaginaria de g(t) y 512 es el numero de filas que tiene MisDatos.dat.
2013
version

Facultad de Ciencias Fsicas y Matematicas

Patricio Cordero

Metodos
Numericos

165

// Puede ser otro numero, siempre que N sea potencia de 2.


//---------------------------------------------------------------------#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define pi
M_PI
#include "complex.h"
// Definicion estructura de complejos
#include "fft.h"
// Algoritmo Transformada Fourier
FILE
*archivo;
main(int argc, char *argv[])
{ int
i;
int
N; // Numero de elementos del arreglo (filas en MisDatos.dat)
double aux1,aux2;
Complex **data;
// Para guardar los datos.
// ---- Datos de Entrada ---- Se fija tamanho del arreglo.
N
= atoi(argv[1]); // atoi = ascii to integer
data = (Complex **)malloc((N+1)*sizeof(**data));//reserva de memoria
for(i=1; i<=N; i++)
{ fscanf(stdin,"%lf %lf",&aux1,&aux2);
data[i]=Cmplx(aux1,aux2);
}
// ---- Transformada directa ---printf("#Transformada Directa\n");
archivo = fopen("Transf.dat", "wt");
FFT(data,N,1);
for(i=1; i<=N; i++)
fprintf(archivo,"%3d %9.6lf %9.6lf\n",
i-1,Real(data[i])/sqrt(N),Imag(data[i])/sqrt(N));
fclose(archivo);
// ---- Transformada inversa (recupera datos iniciales) ---printf("#Transformada Inversa\n");
archivo = fopen("TransfInv.dat", "wt");
FFT(data,N,-1);
for(i=1; i<=N; i++)
fprintf(archivo,"%3d %9.6lf %9.6lf\n",
i-1,Real(data[i])/N,Imag(data[i])/N);
fclose(archivo);
}

Universidad de Chile

Escuela de Ingeniera y Ciencias