Professional Documents
Culture Documents
NUMERICOS
Patricio Cordero S.
Departamento de Fsica
Indice general
1. Introduccion
1.2. Errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
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
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
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
41
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
Metodos
Numericos
Patricio Cordero
4.3.3. Leapfrog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
alto orden . . . . . . . . . . . . . . . . . . . 56
4.4.6. Algoritmos simplecticos
de mas
final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.5. Recomendacion
4.6. Problemas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
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
. . . 63
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
INDICE GENERAL
5.5. Problemas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
77
6.1. Numeros
aleatorios r U (0, 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
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.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
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
7. Ecuaciones elpticas
99
y condiciones de borde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
7.1. Ecuacion
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
. . . . . . . . . . . . . . . . . . . . . . . . . . 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.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.8.1. Metodo
de Richtmayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.8.2. Metodo
de Lees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
de Schrodinger
8.9. Ecuacion
dependiente del tiempo . . . . . . . . . . . . . . . . . . . . 127
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.2. El metodo
de las caractersticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
9.2.2. Integracion
a lo largo de una caracterstica . . . . . . . . . . . . . . 139
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
10.Transformada rapida
de Fourier
155
10.5.Codigos
para una FFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Captulo 1
Introduccion
1.1.
En problemas de todas las disciplinas, como ingeniera, economa, ciencias sociales, 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.
Introduccion
1.2. ERRORES
Comportamiento de atomos,
nucleos,
de tuneles
Dinamica
de fluidos: tal como en meteorologa, oceonografa, simulacion
Mecanica
macroscopica
de solidos:
tensiones en estructutras complejas (puentes, barcos..),
roturas, grietas, explosiones ..
variadas moleculas,
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
numerica
resuelve numericamente
un conjunto de ecuacioneses saber si la solucion
obtenida
del problema o si los errores numericos
1.2.
Errores
comunes
Al hacer calculos
numericos
introducimos errores que tienen diverso origen. Los mas
son:
de x */
Metodos
Numericos
Patricio Cordero
11
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
dx
2
el resultados es mejor cuanto menor sea hasta que se produce un problema al restar dos
numeros
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
1.3.
Tiempo de calculo
importante tener alguna idea sobre los elementos que hacen que este calculo
sea lento y conviene
Universidad de Chile
Derivadas e integrales numericas
1.4. ADIMENSIONALIZAR
estudiar si hay alguna forma de optimizar. Por ejemplo, si en forma reiterativa en un programa se
b
a
f (x) dx
f (x0 ) + 2
f (xi ) + f (xN ) h
i=1
xi = a +
ba
i
N
(1.3.1)
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
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
2013
version
Captulo 2
Derivadas
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
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
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.
a f2 16 f1 + 36 f0 48 f1 + 25 f2
denom
para el denominador y para ese error.
De expresion
2.1.1.
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
Metodos
Numericos
Patricio Cordero
15
2.2.
2.2.1.
numerica
Integracion
directa
Metodo
trapezoidal
1
fk + (x xk ) fk + (x xk )2 fk + . . .
2
fk+1 fk
+ O (x xk )2
fk + (x xk )
h
(2.2.1)
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
2.2.2.
).
Metodos
de Simpson
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)
NUMERICA
2.2. INTEGRACION
DIRECTA
/*
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);
}
La integracion
(x xk )r con r impar da cero. De la expresion
del termino
no contribuye al error
y el ultimo
da un O(h5 ) y se obtiene
2h fk +
(2.2.5)
f (x) dx
h
[ f0 + 4 ( f1 + f3 + .. fN1 ) + 2 ( f2 + f4 + .. + fN2 ) + fN ] + O(h4 )
3
(2.2.6)
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
Metodos
Numericos
Patricio Cordero
17
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
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
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
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
variable de integracion
b
I =
f (x) dx
a
g(b)
=
g(a)
f (x)
g (x)
dy
(2.3.1)
x=g1 (y)
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)
Metodos
Numericos
Patricio Cordero
19
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.
I=
0
2
2 +x
ex
dx
I=
0
x= ln y
dy
s(x) = ex
la integral que se debe evaluar es
1
I=
0
2 +2x
ex
x= ln y
dy
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
Y CAMBIO DE VARIABLE
2.3. INTEGRACION
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
1
a
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
Metodos
Numericos
Patricio Cordero
21
Ih =
f (x)
dy
x 1 %
A
dy
1
x x 1 %
0
h
0
h
0
dy
y( )/ dy
(2.3.3)
A /
.
h
Se debe
Ejemplo 1: Calcular:
1
0
x1/3
dx
sin x
x2/3
3
0
y3
dy
sin y3
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
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
Derivadas e integrales numericas
2.4.
I=
a
f (x)
dx
x x0
con
a x0 b
f (x)
dx = P
x x0
b
a
f (x)
dx + i f (x0 )
x x0
x0 h
f (x)
dx = lm
h=0
x x0
f (x)
dx +
x x0
f (x)
dx
x0 +h x x0
f (x)
dx =
x x0
b
a
f (x) f (x0 )
dx +
x x0
b
a
f (x0 )
dx
x x0
(2.4.1)
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
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)
de puntos
el metodo
I (1) =
0
1
I (2) =
0
ex ln x dx
1+x
1
ln dx
1 x3 x
(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
Interpolacion
2.5. PROBLEMAS
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
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
La condicion
Fn (En ) =
max
min
En 4
1
1
6
12
n+
1
2
(2.5.5)
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
2013
version
Captulo 3
Temas de algebra
lineal
3.1.1.
Autovalores y autovectores
3.1.2.
de Gauss
Eliminacion
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
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
x1
x2
..
..
xn
b1 /a11
b2 b1 a21 /a11
..
..
bn b1 an1 /a11
(3.1.3)
cesivamente llegandose
finalmente a un sistema de la forma
x1
x2
..
..
xn
b1
b2
..
..
bn
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
Patricio Cordero
Metodos
Numericos
27
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,
{ 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++)
A=
a31 a32 a33 a34
}
a41 a42 a43 a44
}
}
Ella puede multiplicar un vector colum ingenua del metodo
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)
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"); }
2013
version
Metodos
Numericos
Patricio Cordero
29
triangular de ecuaciones: la primera tiene todas las variables, la segunda tiene desde x2 en adelante y 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
(3.1.9)
solucion
dos vectores u y v son conjugados si
Por definicion
u Av = 0
(3.1.10)
(r, s) r As
(3.1.11)
(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]);
}
2013
version
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)
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)
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)
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
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)
Interpolacion
3.2.
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)
= g (x )
(3.2.3)
|g (x )|
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);
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
Metodos
Numericos
Patricio Cordero
33
Si se ha escogido dos semillas cercanas, entonces se procede a alejar las dos semillas, si son
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
f (x)
f (x)
(3.2.4)
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);
de la
de iteraciones.
Universidad de Chile
Interpolacion
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)
(3.2.9)
explcita es
donde el ultimo
termino
en forma mas
gi
xj
x0
= 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
1 C.
F1 (r )
F(r ) = ..
Fn (r )
(3.2.11)
2013
version
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
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
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)
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
(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 )
xk x xk+1 ,
k = 0, . . . N 1
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
d 2 f0
dx2 x
0
=0
d 2 fN1
dx2 x
N
=0
Este metodo
se denomina spline cubico
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
k=1
k=1
(3.3.5)
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
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
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
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)
(a2 x2 )2
0
si |x| a
Metodos
Numericos
Patricio Cordero
3.3.3.
39
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)
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);
para k = 1, 2.., (M + N)
(3.3.13)
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
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
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.
algun
metodo
iterativo que mejore la precision.
Universidad de Chile
3.4.
3.4. PROBLEMAS
Problemas
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=
26
21
38
40
26
35
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
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
2013
version
Captulo 4
El problema de resolver
d2g
= F( , g, g )
d 2
(4.1.1)
(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)
dx
= v,
dt
A continuacion
para abordar (4.1.2).
41
(4.1.6)
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
(4.1.7)
(4.1.8)
n+1 = n1 + 2h
f (n , yn ) +
f (n , yn )
n
y
f (n , yn )
n
y
(4.1.9)
(4.1.10)
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)
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)
Metodos
Numericos
Patricio Cordero
43
h
2
+ O(h2 ) =
yn+1 yn
h
(4.1.13)
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
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)
(4.1.17)
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
yn+1 = yn + h yn +
Universidad de Chile
(4.1.18)
(4.1.19)
Escuela de Ingeniera y Ciencias
De la ultima,
(4.1.20)
original
Que se reescribe utilizando la ecuacion
h2
yn = fn+ 1 yn h + O(h3 )
2
2
(4.1.21)
(4.1.22)
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)
Metodos
Numericos
Patricio Cordero
45
4.1.4.
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)
(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
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
n+1
n
f ( , y( )) d
(4.2.2)
G ( )
4.2.2.
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
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
2013
version
h
(23Gn 16Gn1 + 5Gn2 ) + O(h4 )
12
AB4
(4.2.6)
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
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
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
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)
h
(9Gn+1 + 19Gn 5Gn1 + Gn2 ) + O(h5 )
24
AM5
(4.2.10)
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)
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
(C)
C: el ultimo
4.2.5.
2
1
fn fn1 2
3
6
1
3 fn fn1
2
(4.2.11)
(4.2.12)
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
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
= 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
4.3. METODOS
DE VERLET Y VARIACIONES
1/6
5/6
c=
(4.2.16)
1
1/3
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
donde
(4.3.1)
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)
rn+1 rn1
+ O(h2 )
2h
(4.3.3)
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
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.
A continuacion
a(x) = 2 x
a (x) = 2
entonces
n+1 2 (1 R) n + n1 = 0
(4.3.5)
2 2(1 R) + 1 = 0
Im
(4.3.6)
Re
= 1 R
R2 2 R
(4.3.7)
Si R = 0 entonces = 1.
Si R = 1 entonces = i.
Si R = 2 entonces = 1.
Si R entonces = 1 R R
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
Universidad de Chile
4.3. METODOS
DE VERLET Y VARIACIONES
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);
}
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
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
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
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
r
v
=L
r
v
(4.4.8)
= e L
r
v
(4.4.9)
t=0
4.4. ALGORITMOS SIMPLECTICOS
A = v r ,
donde
e A
B = f v
(4.4.10)
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)
e (A+B)+O( ) = e 2 B e A e 2 B
4.4.3.
(4.4.14)
del algoritmo O( 3)
Construccion
rn
vn
vn+ 1
= e2 B
rn
vn +
f (rn )
rn
vn + 2 fn
= 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
Metodos
Numericos
Patricio Cordero
4.4.4.
55
El Jacobiano asociado
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
=
=1
xn vn
vn xn
Esta es una caracAutores han demostrado que J = 1 a todo orden y en cualquier dimension.
4.4.5.
El algoritmo simplectico
(4.4.15) escrito por componentes es
rn+1 = rn + vn +
vn+1 = vn +
2
fn
2
fn + fn+1
2
fn fn1
2
fn1 + fn
FINAL
4.5. RECOMENDACION
4.4.6.
alto orden
Algoritmos simplecticos
de mas
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
aj = 1,
bj = 1
(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 .
final
Recomendacion
4.5.
Patricio Cordero
4.6.
Metodos
Numericos
57
Problemas
de un oscilador armonico
(4.6.1)
(4.6.2)
un termino
(4.6.3)
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
bidimensional pueda tener una fuerza de roce viscoso lineal, r = a(r) c v. Con ese nuevo
(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
4.6. PROBLEMAS
v (0) = 0,1 j
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)
=
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
Patricio Cordero
Metodos
Numericos
59
(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
debil
o de puntos el estado del sistema unos 4
lo dicho con lnea solida
y con lnea mas
Universidad de Chile
2013
version
4.6. PROBLEMAS
Captulo 5
Introduccion
(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
local de onda R,
5.1.1.
de la forma (5.1.1).
A(u) du] y se obtiene una ecuacion
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
61
(5.1.3)
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
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,
h2 IV 2
y
h + O(h6 )
12 n
(5.2.1)
d2
[ R y + S ]n
dx2
(5.2.2)
para yIV
para la segunda derivada que da la ecuacion
original,
Esta expresion
n y la expresion
basica
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)
Metodos
Numericos
Patricio Cordero
63
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.
Se vera como
resolver el caso especial de (5.1.3) en que la densidad de carga tiene una forma
(5.3.1)
() =
1
4
(5.3.2)
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;
homogenea
(r) = p (r) +
m p (rmax )
r
rmax
(5.3.4)
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
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)
Es facil
satisface ambas condiciones de borde. En efecto, puesto que fue construida como combinacion
particular y de la ecuacion
inhomogenea
de la ecuacion
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
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
Metodos
Numericos
Patricio Cordero
65
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.6)
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 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)
Esta funcion
estimado. Se
ve que la unica
Universidad de Chile
2ear + (ra2 r 2) er
2 (a2 1)2
(5.3.8)
5.3.2.
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
de la ecuacion
tienen comportamientos muy diferentes. Considerese
nuevamente la
general
ecuacion
d2
R(x) y = S(x)
dx2
y(a) = ya ,
y(b) = yb
(5.3.9)
Otra posibilidad se presenta en los casos en que se puede obtener analticamente la forma
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
tal que
G(a, x ) = 0 ,
G(b, x ) = 0
(5.3.11)
(x) = 0
x = 0,
(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)
Metodos
Numericos
Patricio Cordero
67
F(x) (x x0 ) dx = F(x0 )
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)
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
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
Universidad de Chile
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
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
dG
dx
x=x +
dG
dx
=W = 1
(5.3.18)
x=x
G descrita es la funcion
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)
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
2
dr
r2
2013
version
(r) = 4 r (r)
con
>0
(5.3.22)
Metodos
Numericos
Patricio Cordero
69
homogenea
(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
r+1 (r )
2 + 1
r < r
(5.3.24)
+1
r (r )
2 + 1
r > r
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
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
(5.3.27)
analtica
En este caso particular se obtiene una solucion
(r) =
8
2
4 2 + r +
r
r
er
haciendo numericamente
5.4.
Problemas de autovalores
5.4.1.
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
con
y(0) = y(L) = 0
(5.4.5)
Metodos
Numericos
Patricio Cordero
71
24 10 (h /c)2
yn
12 + (h /c)2
(5.4.7)
h = L/N obteniendose
en el extremo derecho un valor yN que en general no es nulo, sino que
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:
ecuacion
+V (x) = E ,
| |2 dx = 1
(5.4.8)
+ k (x) = 0
donde
k = E V (x)
xder
xizq
Universidad de Chile
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
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 .
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
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.
5.4.3.
de Schrodinger
Ecuacion
radial
5.4.3.1. La ecuacion
potencial central V = V (r) la ecuacion
de Schrodinger
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
|(r)|2 dr = 1
50
40
30
20
10
0
(r ) exp
-10
|E|r
-20
-30
-40
0
=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
12
r12
V0 6
(r 0) = exp
5r5
numerica
Entre este punto y el origen se debe usar la forma analtica dada en la ultima
expresion.
2013
version
Patricio Cordero
Metodos
Numericos
75
b n
r
con
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[
h
(1)
5.5.
Problemas
x2
)f =0
2
de
Grafique (sin normalizar) estas cuatro autofunciones.
nodos de la autofuncion.
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
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
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
2013
version
Captulo 6
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
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
r uniformemente
distribuidos en el intervalo (a, b) se dira
r U (a, b)
(6.1.1)
(6.1.2)
6.2.
6.2.1.
Densidades de probabilidad
y el promedio discreto
Distribucion
uniformemente
Las secuencias {x j } de numeros
W (x) dx = 1
(6.2.1)
W (x) f (x) dx
(6.2.2)
La variancia 2f de f es
2f = f 2
2
W
(6.2.3)
estandar
{xi }i=1..N en
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
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
g(a)
x
a
monotona
y = g(x) queda definida
entre los intervalos x y
una relacion
los intervalos y
2013
version
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
W (y) =
W (x)
g (x)
(6.2.6)
x=g1 (y)
Es automatico
que W tiene la normalizacion
b
aW
dx = 1 implica
g(b)
W (y) dy = 1
g(a)
6.2.3.
(6.2.7)
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)
g(a) = 0
ademas
a W (x ) dx
analticamente y
Universidad de Chile
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)
T ln y
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
6.2.4.
El caso de n variables
W (X )
J(Y ; X )
W(Y )
W(X )
.
D(Y)
D(X)
X=G1 (Y )
Metodos
Numericos
Patricio Cordero
81
(6.2.10)
6.2.5.
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
0 xi <
con
i = 1, 2
(6.2.12)
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 ) =
(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
MONTE CARLO
6.3. INTEGRACION
#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
f (x) dx
I=
a
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
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
Metodos
Numericos
Patricio Cordero
83
estandar
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;
Monte Carlo.
aleatorios dentro de aquellas que pertenecen a la categora integracion
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);
}
}
MONTE CARLO
6.3. INTEGRACION
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
b
a
f (x) dx I +
f (x) dx
MC1b
(6.3.4)
con MC1
6.3.3.
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)
Metodos
Numericos
Patricio Cordero
85
w(x) 0
en (a, b)
w(x) dx = 1
(6.3.6)
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)
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
1 x/a
.
ae
2 x2
e dx
0
y = g(x) =
0
1 x /a
e
dx = 1 ex/a
a
Universidad de Chile
MONTE CARLO
6.3. INTEGRACION
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)
F(x)
w(x)
w(x) dx = 1
w(a x b) 0 ,
x=g1 (y)
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.
I=
a
2013
version
F(x) dx
n1
(b a) F0
n
(6.3.10)
Metodos
Numericos
87
Para hacer integrales de funciones que cambian de signo se debe integrar separadamente cada tramo donde no haya cambio
F(x)
Patricio Cordero
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.
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.
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)
1
N
A(ri)
i=1
ri U (V )
(6.3.12)
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
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.
6.4.1.
El algoritmo de Metropolis
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
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
W (X p )
>r
W (Xn )
then Xn+1 = X p
else
Xn+1 = Xn
(6.4.1)
2013
version
Metodos
Numericos
Patricio Cordero
89
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
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
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
6.4.2.
Dn (X ) =
ganancia
perdida
Dn(Y ) P(X Y )
P(Y X ) Dn (X )
P(X Y ) Dn (Y )
Universidad de Chile
(6.4.3)
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
(6.4.6)
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
(6.4.8)
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
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
W
El metodo
de Metropolis genera estados (configuracionales) directamente con la distribucion
requerida, por ejemplo,
e V
(6.4.10)
W=
e V
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 .
Xn X p se cambia las coordenadas de una so- tan solo con aquellas que estan
Si en la iteracion
(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
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
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
- 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
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
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.
I=
f (x) dx ,
con
f (x) 0 ,
x (a, b)
j = 0, . . . M 1
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
6.5. PROBLEMAS
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
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
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,
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,
3
1 2 x
2
I=
sin x
1 x3
1
N
j y j sin(1/y j )
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
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.
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
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
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
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
Si j Skl B Si j
(i, j) (k,l)
(i, j)
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.
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
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,
que
nucleos
de hidrogeno
(protones) a distancia L. En torno a cada nucleo
hay un electron
para la funcion
de onda de un electron
ubicado en R es
(r; R) =
a30
e|rR|/a0
(6.5.1)
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
6.5. PROBLEMAS
energa electrostatica
es
U =
(6.5.3)
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
Captulo 7
Ecuaciones elpticas
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
(7.1.1)
(7.1.2)
(7.1.3)
y se llama condicion
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
(7.1.4)
Y CONDICIONES DE BORDE
7.1. ECUACION
7.1.1.
Integral de accion
S[]
Definiendo la integral de accion
S[] =
dx dy
1
()2 + G
2
(7.1.6)
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
S =
dx dy 2 + G
(7.1.9)
dx dy
1
p ()2 + F()
2
F
=0
Metodos
Numericos
Patricio Cordero
7.2.
7.2.1.
101
Discretizacion
en el volumen
Discretizacion
(7.2.1)
Esta relacion
a partir de cualquier conjunto inicial de valores para i,k .
i,k
(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)
iN iN1 = h gi
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)
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
7.2. DISCRETIZACION
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)
sin ik
+ (ik+1 ik )2 + h2 ik Gik + terminos
2
= 22ik ik i1 k ik i+1 k ik ik1 ik ik+1
= ik B + terminos
sin ik
(7.2.9)
ik + A
(7.2.10)
Notese
que A y B se relacionan por
2ik + B =
4
A
(7.2.11)
= 2A2 + A (2ik + B)
4A
= 2A2 + A
2 2
= 2
A
( 2) 2
=
2013
version
(7.2.12)
Patricio Cordero
Metodos
Numericos
103
Si < 0 el ultimo
(7.2.13)
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
que se obtuvo en
Si,N1 . En ella se sustituye h2 Gi,N1 por la expresion
o Se define = Si,N1
el primer paso.
3 ( 2) 2
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.
hidrodinamicas
+ ( v) = 0
t
Universidad de Chile
(7.3.1)
Escuela de Ingeniera y Ciencias
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
= (1 (T T0 )) 0 .
(7.3.4)
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)
(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)
u
y
y
=
v=
(7.3.8)
=
v
x
x
Notese
que esta definido salvo por una constante aditiva.
2013
version
Metodos
Numericos
Patricio Cordero
105
= i j i v j
= 2
(7.3.9)
= 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)
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
TERMICA
7.3.4.
discreta de y
Version
i,k i,k1
h
vik =
i,k i1,k
h
(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)
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
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)
Metodos
Numericos
Patricio Cordero
107
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,
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
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)
= 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,k+1 fi,k1
(7.4.9)
(7.4.10)
Escuela de Ingeniera y Ciencias
TERMICA
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
Automaticamente
el tercer coeficiente toma el valor
Pr
Ra
8 Pr Ny3
Ra
L3y g
donde el numero
de Rayleigh es
(7.4.12)
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
Metodos
Numericos
Patricio Cordero
109
Puesto que el campo de velocidad en los bordes debe anularse, debe cumplirse que sea
i,0 = 0 ,
i,N2 = 0 ,
0,k = 0 ,
N1 ,k = 0
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
1
T2,k + T1,k+1 + T1,k1
3
+Pr
T0k
2,k 0,k
(7.4.14)
u i,k+1
v
i,k
v
i+1,k
T2,k T0,k
u i,k
(7.4.15)
T1k
En el caso del campo de vorticidad , se debe cumplir las condiciones de borde (7.4.6) que en el caso adimensionalizado son
0,k = 2 1,k ,
i,N2 = 2 i,N2 1 ,
i,0 = 2 i,1 ,
N1 ,k = 2 N1 1,k .
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
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
=v
y 0
=0
7.5.1.
senala
un borde de origen puramente algortmico para integrar en
rectangulo
EFGH.
7.5. SEGUNDO EJEMPLO: FLUJO Y OBSTACULO
alla de un obstaculo
son mas
simplificatorias. Se escoge resolver el problema dentro de un rectangulo
=0
x
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
=0
en EFGH
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
v0
i,k
L
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)
Metodos
Numericos
Patricio Cordero
111
en esta expresion
R=
h v0
de Reynolds. Un numero
7.5.2.
Ecuaciones para :
0,k = 1,k
(7.5.5)
1,k = (1 )1,k +
(7.5.6)
i,0 = i,1 1
(7.5.7)
i,1 = (1 )i,1 +
(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 +
(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)
(7.5.12)
7.5. SEGUNDO EJEMPLO: FLUJO Y OBSTACULO
0,k = 0
i,0 = 0
i,N2 = 0
izquierda
abajo
(7.5.13)
arriba
N1 ,k = N1 1,k
(7.5.14)
4N1 1,k =
R
(N1 ,k N1 2,k )(N1 1,k+1 N1 1,k1 )
4
R
(N1 ,k N1 2,k )(N1 1,k+1 N1 1,k1 )
4
(7.5.15)
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
Metodos
Numericos
Patricio Cordero
entonces sobre FG es
113
N2
2
=
y2
L1
K2
FG
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.
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
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
7.6.
Problemas
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
7.2 Hidrodinamica
2D: Integre las ecuaciones hidrodinamicas
2D definidas en este captulo
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
Ecs. diferemciales parabolicas
7.6. PROBLEMAS
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
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 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
2013
version
Captulo 8
Ecuaciones parabolicas
8.1.
general
Ecuacion
F
+
B(t, x, F)
t
x
x
= S(t, x, F )
(8.1.1)
(8.1.2)
8.2.
8.2.1.
Ecuaciones tpicas
de calor
Ecuacion
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)
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.
2
=
+ S(x,t)
t
x2
8.2.2.
(8.2.3)
de Schrodinger
Ecuacion
de Schrodinger
= i H
t
H = 2 +V
(t = 0) = 0 (x) ,
8.2.3.
(8.2.4)
(t, ) = 0
de Burgers:
La ecuacion
1 2U
U
U
= U
+
(8.2.5)
t
x Re x2
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
termica.
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
= x y y x + 2
t
0 = 2
2013
version
(8.2.7)
(8.2.8)
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
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
condicion de borde
8.4.
0x1
N1 N
8.4.1.
(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.
T
=0
n
Universidad de Chile
(8.4.3)
Escuela de Ingeniera y Ciencias
EXPLICITA DIRECTA
8.4. INTEGRACION
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)
T1n T0n
= (T0n Tizq) ,
h
(8.4.5)
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
condicion
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
Como se ha visto, el hecho que una de las condiciones de borde sea derivativa implica que
8.4.3.
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)
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
Ukn+1 =
1 n1
n
U
+
U n +Uk1
1+ k
1 + k+1
donde =
2
h2
(8.5.1)
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 =
y que es
sea pequeno
h2
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)
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)
8.6. EL METODO
TRIDIAGONAL
donde 1 k N 1, lo que implica que en particular son necesarios los valores T0 = Tizq y TN = Tder .
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)
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
= bk
= bN1
2 k N 2
(A )1 = b1 A
1 0
(A )N1 =
(8.6.9)
bN1 A+
N1 N
Metodos
Numericos
Patricio Cordero
121
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 metodo
que se explica a continuacion
lineales.
(8.6.11)
= 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)
A+
k (k k + k ) + Ak k + Ak k1 = bk
k =
A
bk A+
k
k k
+
k1
+
+
0
Ak k + Ak
Ak k + A0k
k1 =
A
k
+
A0k
A+
k k
(8.6.14)
k1 =
bk A+
k k
+
Ak k + A0k
(8.6.15)
8.6. EL METODO
TRIDIAGONAL
(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.
T
t
=
=
T
K(x)
x
x
2T
dK T
+K 2
dx x
x
(8.6.18)
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)
(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)
Metodos
Numericos
Patricio Cordero
123
A
k
(8.6.22)
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
(8.6.23)
8.6.4.
valida
con
1 k N 2
(8.6.24)
0
=
bN1
(8.6.25)
Mi j j = bi
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
Universidad de Chile
8.6. EL METODO
TRIDIAGONAL
(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
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
1+w
(8.6.31)
wk k ui
1 + w n n
(8.6.32)
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)
Metodos
Numericos
Patricio Cordero
125
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).
sea optima.
pero numericamente
se deben escoger con cuidado para que la precision
8.7.
Un caso parabolico
en 1+2 dimensiones
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
(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
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
U
2U m
=
t
x2
Universidad de Chile
8.8. DOS METODOS
ADICIONALES
del metodo
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)
=
=
=
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
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
Metodos
Numericos
Patricio Cordero
127
explcito,
Ukn
1 n+1
U +Ukn +Ukn1
3 k
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
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
DE SCHRODINGER
8.9. ECUACION
DEPENDIENTE DEL TIEMPO
El metodo
explcito de Visscher
8.9.2.
Este metodo
aparecio presentado en Computational Physics, 5 596 (1991). La idea es separar
= R + i I
de Schrodinger
R = H I ,
I = H R
(8.9.7)
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)
= 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)
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
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
Rn
n1/2
I
Rn1
n3/2
I
1 A2 A
A
1
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
= 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)
ei
(k+1)
N
2 ei N + ei
h2
(k1)
N
+V0 ei
k
N
2 + ei
ei
k
N
= 4 sin2
Universidad de Chile
ei 2N ei 2N
2N
ei
ei
k
N
k
N
8.10. METODO
IMPLICITO
4
+V0
sin2
2
h
2N
4 2
+ V0
sin
h2
2N
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,
(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)
Si se hace la expansion
u(t, x) =
ar e t sin(r x)
r
(8.10.4)
r=1
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
Metodos
Numericos
Patricio Cordero
131
h2
(8.10.6)
kn+1 = kn +
1
n+1
n+1 2kn+1 + k1
+ Sk
h2 k+1
(8.10.7)
Estabilidad:
n+1 = n H n+1 + S
(8.10.8)
n+1 = (1 + H)1 n + S
(8.10.9)
que formalmente es
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)
0n = a ,
N0 = b
(8.10.12)
k0
= fk ,
con
f0 = a ,
fN = b
(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
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
T
t
T
r
r=R
= 2 T
= (T (t, R) TA )
2
= i 2 +V (x)
t
x
inicial
usando el algoritmo de Visscher. Tome como condicion
2
2013
version
Patricio Cordero
Metodos
Numericos
133
1/2
Para simplificar el problema puede aproximar I a la parte imaginaria de (x, 0). Para
Universidad de Chile
Ecs. diferenciales hiperbolicas
2013
version
8.11. PROBLEMAS
Captulo 9
Ecuaciones hiperbolicas
9.1.
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)
cb q
a
lo que da
dU =
c bq
dx + q dy
a
(9.1.4)
(9.1.5)
c dx a dU = 0
(9.1.6)
(9.1.7)
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)
(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
Metodos
Numericos
Patricio Cordero
9.2.
9.2.1.
137
El metodo
de las caractersticas
U U
+
x
y
=2
(9.2.1)
U (0 x 1, y = 0) = (x)
de borde
condicion
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)
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
y2
2
U
=
x
U
= 2 y
y
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
9.2. EL METODO
DE LAS CARACTERISTICAS
elaborado
9.2.1.2. Ejemplo algo mas
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)
(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
A(x, y) + x
A(x, y)
(9.2.8)
Metodos
Numericos
Patricio Cordero
caracteristicas
ey x
yR = ln
1+x
4
3.5
3
2.5
y
139
1 + ey
2
1.5
1
1+x
0.5
0
0
10
ycarac = yR + ln 1 + (1 + e
)x
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.
xR xP
h
(1)
yR yP
h
(1)
UR UP
h
Universidad de Chile
= aP
= bP
(9.2.10)
C
R
P
= cP
Escuela de Ingeniera y Ciencias
9.3. SISTEMA DE ECUACIONES HIPERBOLICAS
DE PRIMER ORDEN
(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)
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
U
U
+ A(x,t)
+ B(x,t) U = F(x,t)
t
x
(9.3.1)
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)
Metodos
Numericos
Patricio Cordero
141
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
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
9.3.1.
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
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
v
v c2
+v +
=0
t
x x
(9.3.7)
t
Universidad de Chile
v
c2
=0
(9.3.8)
Escuela de Ingeniera y Ciencias
9.3. SISTEMA DE ECUACIONES HIPERBOLICAS
DE PRIMER ORDEN
= x dx (vx + vx ) dt
se obtiene que
De la segunda ecuacion
d + vx dt
dx v dt
x =
(9.3.10)
relacion
(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)
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)
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)
Patricio Cordero
Metodos
Numericos
143
dx=(v+c)dt
(9.3.17)
dx=(vc)dt
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
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
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.
Esta parte sigue de cerca el modelo planteado en el libro Computational methods in engineering and
science de S. Nakamura.
+v
+
t
x
x
v v2 p
+
+
t
x
x
= 0
=
(9.3.21)
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)
H
t
H
x
=
=
H H p
+
t
p t
H H p
+
x p x
1
H H p
H H p
+
+
+ v
t
p t
x p x
J
p
p
+v
t
x
=Q
(9.3.24)
H/
H/ p 1/( J)
(9.3.25)
p
v
p
c2 Q
+ c2 + v
=
t
x
x
H
2013
version
(9.3.26)
Metodos
Numericos
Patricio Cordero
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)
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)
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
(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
Metodo
explcito parcialmente basado en las caractersticas
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
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
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 .
pD
Hkn+1 HD 1 pn+1
k
= Q
m
v
v
<0
m>0
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)
Metodos
Numericos
Patricio Cordero
147
Hkn+1 =
m+
1 n+1
p pD
J k
+ HD
(9.3.39)
9.4.
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)
tersticas quedaran
s. Usando
(9.4.4)
p Sx
t
q St
W=
x
(9.4.5)
de donde se despeja
R=
Universidad de Chile
Ecs. diferenciales hiperbolicas
p Sx
q St
+ bS + c
+e = 0
t
x
x
t
x
x
b + c + a p + c q + e x = 0
t
t
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)
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
(9.4.10) es hiperboli
cion
ca, parabolica
o elptica
dependiendo de la zona
del plano (x,t) que se
considere.
(9.4.10)
perbolica,
parabolica
o elptica segun
si b 4ac = t 4 x es positivo, nulo o negativo. En la figura
es parabolica.
Metodos
Numericos
Patricio Cordero
9.5.
Ecuaciones hiperbolicas
9.5.1.
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
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)
dq
dx
d p dx
+c
+e
=0
dt dt
dt
dt
dx
d p + c dq + e dx = 0
dt
(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.
(9.5.5)
9.5. ECUACIONES HIPERBOLICAS
9.5.2.
explcita
Integracion
iniciar el metodo
numerico.
En lo que sigue se describe el
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.
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)
(1)
(1)
(9.5.8)
(1)
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)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
Metodos
Numericos
Patricio Cordero
151
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
(n)
(n)
aR X 2 bR X + cR = 0
(n)
(9.5.10)
(n)
fP + fR
(n+1)
=
(tR
tP )
2
(n+1)
xP
xR
(n+1)
(n+1)
, xR
(n+1)
xR
xQ
(n)
gQ + gR (n+1)
=
(tR
tQ )
2
(9.5.11)
).
(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)
(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
).
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)
Ecs. diferenciales hiperbolicas
9.6.
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)
pR = p(xizq ,t)
(9.6.14)
U (x,t)
x
= qR
(9.6.15)
x=xizq
bQ
b2Q 4aQ cQ
2aQ
xizq
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)
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)
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
Transformada rapida
de Fourier (FFT)
9.7. PROBLEMAS
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
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)
(10.1.2)
h(x) continua en x = 0.
para cualquier funcion
10.1.2.
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
g1 g2 (t)
g1 ( ) g2 (t ) d
155
(10.1.4)
Transformada rapida
de Fourier (FFT)
Corr(g1 , g2 ) =
Notese
que la transformada de Corr(g1 , g2 ) es
g1 (t + )g2 ( ) d
(10.1.5)
G1 ( f )G2 ( f )
10.1.4.
Potencia
potencia total =
|g(t)|2 dt =
|G( f )|2 d f
(10.1.6)
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)
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)
h(x) =
Hnen (x)
(10.2.3)
n=0
2013
version
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.
1
2
(10.3.2)
(10.3.3)
g(t) =
k=
gk
sin(2 fc (t k))
(t k)
(10.3.4)
Transformada rapida
de Fourier (FFT)
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
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)
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)
(10.3.9)
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
N
2
N
2
la tabla (10.3.11)
tambien
0 fn < fc
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
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
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
10.4. LA TRANSFORMADA RAPIDA
DE FOURIER (FFT)
Transformada rapida
de Fourier (FFT)
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
complejos
(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)
k=0
|gk |2 =
1 N1
|Gn |2
N n=0
(10.3.16)
Tambien
10.4.
La transformada rapida
de Fourier (FFT)
(10.4.1)
Gn =
W nk gk
(10.4.2)
k=0
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
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
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
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
se cumple que
n
Gn+ N = G+
n W Gn
2
(10.4.7)
sino ademas
para obtener todos los Gn .
2
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
Transformada rapida
de Fourier (FFT)
n=0,2,...14
Gn=0,...15
n=1,3,...15
++++
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
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
0, 6, 9 y 15
10.5.
Codigos
para una FFT
*/
Transformada rapida
de Fourier (FFT)
10.5. CODIGOS
PARA UNA FFT
Patricio Cordero
Metodos
Numericos
165
Universidad de Chile