Download - metodos numericos apunte
-
7/25/2019 metodos numericos apunte
1/140
METODOS COMPUTACIONALES enFISICA
Patricio Cordero S.
Departamento de Fsica
Facultad de Ciencias Fsicas y Matematicas
Universidad de Chile
version 14 de julio de 2009
-
7/25/2019 metodos numericos apunte
2/140
2
-
7/25/2019 metodos numericos apunte
3/140
Indice general
1. Introduccion 9
1.1. Usos del calculo numerico . . . . . . . . . . . . . . . . . . . . . . 9
1.2. Errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3. Tiempo de calculo . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4. Adimensionalizar . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5. Recurrencias, puntos fijos y ceros . . . . . . . . . . . . . . . . . 14
1.5.1. Estabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5.2. Ceros. Metodo de la secante . . . . . . . . . . . . . . . . 15
1.5.3. Puntos fijos con mas de una variable . . . . . . . . . . . . 16
1.5.4. Metodo de la secante en varias variables . . . . . . . . . 17
1.6. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.7. Algunos temas basicos no incluidos . . . . . . . . . . . . . . . . 20
2. Derivadas e integrales numericas 21
2.1. Derivadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.1. Tabla con derivadas a cuatro y cinco puntos . . . . . . . . 22
2.2. Integracion numerica directa . . . . . . . . . . . . . . . . . . . . 23
2.2.1. Discretizacion no uniforme sencilla . . . . . . . . . . . . . 25
2.2.2. Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3. Integracion y cambio de variable . . . . . . . . . . . . . . . . . . 26
2.3.1. Planteamiento y ejemplos . . . . . . . . . . . . . . . . . . 26
2.3.2. Divergencias en el integrando . . . . . . . . . . . . . . . . 28
2.4. Integral de parte principal . . . . . . . . . . . . . . . . . . . . . . 30
2.5. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3
-
7/25/2019 metodos numericos apunte
4/140
INDICE GENERAL
3. Ecuaciones diferenciales ordinarias 35
3.1. Reduccion a ecuaciones de primer orden . . . . . . . . . . . . . 353.1.1. Metodo directo simple (de Euler) . . . . . . . . . . . . . . 36
3.1.2. Metodo implcito . . . . . . . . . . . . . . . . . . . . . . . 37
3.1.3. Metodo de Runge-Kutta . . . . . . . . . . . . . . . . . . . 38
3.1.4. Estabilidad de RK4 . . . . . . . . . . . . . . . . . . . . . . 40
3.2. Integradores multipaso . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2.1. Presentacion . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2.2. Algoritmo predictor de Adams-Bashforth . . . . . . . . . . 41
3.2.3. Estimador de Adams-Moulton . . . . . . . . . . . . . . . . 43
3.2.4. Metodo predictor-corrector . . . . . . . . . . . . . . . . . 443.3. Predictor-corrector de Gear . . . . . . . . . . . . . . . . . . . . . 45
3.4. Metodos de Verlet y variaciones . . . . . . . . . . . . . . . . . . 46
3.4.1. Propiamente Verlet . . . . . . . . . . . . . . . . . . . . . . 46
3.4.2. Estabilidad del metodo de Verlet . . . . . . . . . . . . . . 47
3.5. Algoritmos simplecticos . . . . . . . . . . . . . . . . . . . . . . . 49
3.5.1. Formulacion del problema . . . . . . . . . . . . . . . . . . 49
3.5.2. Construccion del algoritmo O(3) . . . . . . . . . . . . . . 50
3.5.3. El jacobiano asociado . . . . . . . . . . . . . . . . . . . . 50
3.5.4. Leapfrog . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.5.5. Algoritmos simplecticos de mas alto orden . . . . . . . . 51
3.6. Recomendacion final . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.7. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4. Problemas de condiciones de borde y problemas de autovalores 57
4.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2. El algoritmo de Numerov . . . . . . . . . . . . . . . . . . . . . . 58
4.3. Problemas de condiciones de borde . . . . . . . . . . . . . . . . 59
4.3.1. Integracion directa de un problema de condiciones de
borde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.3.2. Uso de funcion de Green . . . . . . . . . . . . . . . . . . 61
4.4. Problemas de autovalores . . . . . . . . . . . . . . . . . . . . . . 62
4.4.1. Problemas sencillos de autovalores . . . . . . . . . . . . 62
4.4.2. Ecuacion de Schrodinger en una dimension: estados li-gados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
5/140
Patricio Cordero Metodos Computacionales en Fsica 5
4.4.3. Ecuacion de Schrodinger radial . . . . . . . . . . . . . . . 64
4.5. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5. Integrales Monte Carlo y el algoritmo de Metropolis 67
5.1. Numeros aleatorios rU(0,1) . . . . . . . . . . . . . . . . . . . 675.2. Densidades de probabilidad . . . . . . . . . . . . . . . . . . . . . 68
5.2.1. Distribucion y el promedio discreto . . . . . . . . . . . . . 68
5.2.2. Distribuciones relacionadas . . . . . . . . . . . . . . . . . 68
5.2.3. Obtencion de secuencia W(x)a partir deU(0,1) . . . . . 69
5.2.4. El caso denvariables . . . . . . . . . . . . . . . . . . . . 70
5.2.5. CuandoW(x)es una gaussiana . . . . . . . . . . . . . . 71
5.3. Integracion Monte Carlo . . . . . . . . . . . . . . . . . . . . . . . 72
5.3.1. El problema . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.3.2. Primera forma . . . . . . . . . . . . . . . . . . . . . . . . 72
5.3.3. Aplicabilidad de los metodos Monte Carlo . . . . . . . . . 74
5.3.4. Metodo explcito . . . . . . . . . . . . . . . . . . . . . . . 74
5.3.5. Estrategia de von Neumann . . . . . . . . . . . . . . . . . 76
5.3.6. Integracion Monte Carlo en dimensionD. . . . . . . . . . 77
5.3.7. Integracion Monte Carlo en dominios difciles . . . . . . . 78
5.4. La estrategia Metropolis para calcular promedios . . . . . . . . . 78
5.4.1. El algoritmo de Metropolis . . . . . . . . . . . . . . . . . . 78
5.4.2. Por que funciona . . . . . . . . . . . . . . . . . . . . . . . 80
5.4.3. Metropolis en mecanica estadstica . . . . . . . . . . . . 81
5.4.4. Propiedades necesarias . . . . . . . . . . . . . . . . . . . 83
5.4.5. Integrales usando el algoritmo de Metropolis . . . . . . . 84
5.5. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6. Ecuaciones elpticas 89
6.1. Ecuacion y condiciones de borde . . . . . . . . . . . . . . . . . . 89
6.1.1. Integral de accion . . . . . . . . . . . . . . . . . . . . . . 90
6.2. Discretizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.2.1. Discretizacion en el volumen . . . . . . . . . . . . . . . . 91
6.2.2. Discretizacion en los bordes en un caso tipo Neumann . 91
6.2.3. Convergencia . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.3. Fluidos incompresibles estacionarios . . . . . . . . . . . . . . . . 94
Universidad de Chile Escuela de Ingeniera y Ciencias
-
7/25/2019 metodos numericos apunte
6/140
INDICE GENERAL
6.3.1. Las ecuaciones . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.2. Ecuaciones para la funcion corriente, la vorticidad y latemperatura . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.3.3. Lneas de corriente . . . . . . . . . . . . . . . . . . . . . 96
6.3.4. Version discreta dey . . . . . . . . . . . . . . . . . . 96
6.4. Primer ejemplo: flujo y obstaculo . . . . . . . . . . . . . . . . . . 97
6.4.1. Las ecuaciones discretas en el volumen . . . . . . . . . . 97
6.4.2. Las ecuaciones en los bordes . . . . . . . . . . . . . . . 99
6.5. Segundo ejemplo: conveccion termica . . . . . . . . . . . . . . . 101
7. Ecuaciones parabolicas 105
7.1. Ecuacion general . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.2. Ecuaciones tpicas . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.3. Adimensionalizacion de la ecuacion de difusion de calor . . . . . 106
7.4. Integracion explcita directa . . . . . . . . . . . . . . . . . . . . . 106
7.4.1. Condiciones de borde rgidas . . . . . . . . . . . . . . . . 107
7.4.2. Condiciones de borde con derivada . . . . . . . . . . . . 107
7.5. El metodo tridiagonal . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.5.1. La ecuacion de calor . . . . . . . . . . . . . . . . . . . . . 108
7.5.2. El algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.5.3. Ecuacion de calor con conductividad variable . . . . . . . 111
7.5.4. El caso con condiciones periodicas . . . . . . . . . . . . 112
7.6. Metodo implcito . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.7. Un caso parabolico en 1+2 dimensiones . . . . . . . . . . . . . . 115
7.8. Dos metodos adicionales . . . . . . . . . . . . . . . . . . . . . . 115
7.8.1. Metodo de Richtmayer . . . . . . . . . . . . . . . . . . . . 115
7.8.2. Metodo de Lees . . . . . . . . . . . . . . . . . . . . . . . 116
7.9. Ecuacion de Schrodinger dependiente del tiempo . . . . . . . . . 117
7.9.1. Usando el metodo de Crank Nicolson . . . . . . . . . . . 117
7.9.2. El metodo explcito de Visscher . . . . . . . . . . . . . . . 118
8. Ecuaciones hiperbolicas 121
8.1. Ecuaciones de primer orden . . . . . . . . . . . . . . . . . . . . . 121
8.1.1. Ejemplos para ilustrar los conceptos basicos . . . . . . . 123
8.1.2. Integracion numerica a lo largo de una caracterstica . . . 126
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
7/140
8.1.3. Sistema de ecuaciones hiperbolicas de primer orden . . . 127
8.1.4. Fluido compresible . . . . . . . . . . . . . . . . . . . . . . 1288.2. El metodo de Lax-Wendroff para ecuaciones hiperbolicas de pri-
mer orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.3. Ecuaciones de segundo orden cuasilineales . . . . . . . . . . . . 132
8.4. Ecuaciones hiperbolicas . . . . . . . . . . . . . . . . . . . . . . . 134
8.4.1. Planteamiento del problema . . . . . . . . . . . . . . . . . 134
8.4.2. Integracion implcita . . . . . . . . . . . . . . . . . . . . . 135
8.5. Condiciones iniciales y condiciones de borde . . . . . . . . . . . 138
8.6. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
7
-
7/25/2019 metodos numericos apunte
8/140
Introduccion INDICE GENERAL
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
9/140
Captulo 1
Introduccion
1.1. Usos del calculo numerico
Una vez que un sistema (puede ser en fsica, qumica, ingeniera, biologa,economa, etc) ha sido modelado con un conjunto de ecuaciones se debeexplorar las implicaciones. De esas implicaciones puede resultar algo espera-ble pero cuantitativamente no trivial, puede ocurrir que el modelo resulte noser bueno (da comportamientos que no son verdaderos) etc. Tambien pue-de suceder que el modelo de patrones de comportamientos inesperados perocorrectos.
Hoy en da es inconcebible no utilizar calculo numerico en cadaarea de laciencia y la tecnologa. A continuacion unos pocos ejemplos
Comportamiento deatomos, nucleos, y el amplio mundo subnuclear defsica de partculas
Dinamica de fluidos: tal como en meteorologa, oceonografa, simulacionde tuneles de viento en el diseno de aviones, en el comportamineto deestrellas etc etc
Mecanica macroscopica de solidos: tensiones en estructutras complejas(puentes, barcos..), roturas, grietas, explosiones ..
Comportamiento de las mas variadas moleculas, incluyendo algunas enor-mes proteinas.
Astrofsica y cosmologa, evolucion de galaxias, soluciones de las com-plicadas ecuaciones de gravitacion.
Los esfuerzos computacionales para atacar un problema abarcan desdehacer integrales complicadas, hacer integrales en muchas (a veces demasia-das) dimensiones, estimar funciones particion en sistemas estadsticos, hasta
9
-
7/25/2019 metodos numericos apunte
10/140
Introduccion 1.2. ERRORES
resolver ecuaciones diferenciales ordinarias, ecuaciones diferenciales a deri-vadas parciales, etc.
Salvo que las ecuaciones del modelo que se estudia sean de naturalezamuy sencilla, lo mas probable es que se requiera de una resolucion numericade ellas. Uno de los retoscuando se resuelve numericamente un conjuntode ecuacioneses saber si la solucion numerica obtenida es confiable, esdecir, si realmente es una solucion del problema o si los errores numericos(o de otro tipo) que produce la metodologa numerica usada invalidan total oparcialmente la solucion obtenida.
En estas notas se aprendera algunas tecnicas para resolver ecuaciones dediversa naturaleza y en los casos mas sencillos veremos tambien la forma demantener los errores bajo control. Habra un permanente trabajo practico.
1.2. Errores
Al hacer calculos numericos introducimos errores que tienen diverso ori-gen. Los mas comunes son:
- Errores en la precision de los datos. Por ejemplo, el valor depuede serde baja precision,3,1416en lugar de3,141593 . . .
- Errores de truncacion. Por ejemplo, en lugar del valor ex se usa
N
k=0xk
k! (1.2.1)
y el Nno es lo suficientemente grande. Estos errores aparecen normal-mente por la naturaleza iterativa de los metodos y en algun momento esnecesario detener la iteracion. Por ejemplo, para calcular sinxse puedeusar el siguiente codigoC,
se = 1.0;
x = 0.3; /* valor deseado de x */
x 2 = x*x;
u = x;
for(k = 2; k
-
7/25/2019 metodos numericos apunte
11/140
Patricio Cordero Metodos Computacionales en Fsica 11
el resultados es mejor cuanto menor sea hasta que se produce unproblema al restar dos numeros demasiado parecidos. Por ejemplo: sin.c
epsilon dsin(1.0)/dx cos(1.0) cos - deriv
0.04978706836786394446248 0.5400791 0.5403023 0.000223185
0.00247875217666635849073 0.5403018 0.5403023 0.000000553
0.00012340980408667956121 0.5403023 0.5403023 0.000000001
0.00000614421235332820981 0.5403023 0.5403023 0.000000000
0.00000030590232050182579 0.5403023 0.5403023 -0.000000000
0.00000001522997974471263 0.5403023 0.5403023 -0.000000000
0.00000000075825604279119 0.5403023 0.5403023 -0.000000000
0.00000000003775134544279 0.5403022 0.5403023 0.000000077
0.00000000000187952881654 0.5402991 0.5403023 0.000003182
0.00000000000009357622969 0.5401011 0.5403023 0.000201187
0.00000000000000465888615 0.5442437 0.5403023 -0.003941389
0.00000000000000023195228 0.4940679 0.5403023 0.046234439
Estos valores se obtuvieron con el programa que sigue:
#include
#include
#include
#define N 14
FILE *archivo;
main()
{ int ii;
do ub le de riv ,ep si ,co ;
co = cos(1.0);
archivo = fopen("sin.dat","wt"); /* w=write t=text */
for(ii=1; ii
-
7/25/2019 metodos numericos apunte
12/140
Introduccion 1.4. ADIMENSIONALIZAR
debe tenerse presente que este calculo tarda un tiempo que es O(N).
El calculo de la energa de Ncargas implica calcular
m
2
N
k=1
v2k+N
j=1
N
k=j+1
qj qk
r2jk
El primer termino toma un tiempo O(N)mientras el segundo tiene un costoO(N2). El algoritmooptimo para invertir una matriz de NNes O(N3).
1.4. Adimensionalizar
Suele ocurrir que los problemas reales que debemos resolver tienen mas
parametros de los necesarios, en el sentido que existe un problema numericoequivalente que se expresa con menos parametros. Por ejemplo, en el casode un oscilador armonico
mx= k x , x(0) =A , x(0) =v0.si se define 20 =k/mel problema aparenta tener tres parametros de control:0,Ay v0. Sin embargo, si se hace el cambio de variables x=A z,t= t
/0, elproblema equivalente es
z= z , z(0) =1, z(0) = v0A 0
v0.
que es un problema con un solo parametros de control,v0.
Si la adimensionalizacion se escoge con cuidado se trabaja con cantidadesde orden 1 y por tanto se disminuye una fuente de errores.
Ejemplo sencillo: dos puntos rebotandoDos puntos de masas m1y m2se mueven en una recta, bajo los efectos de gravedad. Llamaremos 1a lapartcula de abajo y2a la de arriba. Se escoge unidades tales que
g = 1
m1+ m2 = 1 (1.4.1)
Einic = 1
y se define el parametroRtal que
m1= 1
1 +Rm2=
R
1 +R(1.4.2)
La energa inicial es
Einic= v21
2(1 +R)+
R v222(1 +R)
+ y1
1 +R+
R y2
1 +R(1.4.3)
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
13/140
Patricio Cordero Metodos Computacionales en Fsica 13
Entre ellas el choque es elastico, es decir, el choque implica
v1+R v2=v1+R v2 , v21+R v22=v1 2 +R v2 2 (1.4.4)
que implica
v1=2Rv2 (R1)v1
1 +R, v2=
2v1+ (R1)v21 +R
(1.4.5)
Notese que si R=1entonces hay un simple intercambio de velocidades. En elinstante en quey1=0y puesto que Einic=1se cumple que
y2=1 +R
R v
21
2R v
22
2 (1.4.6)
que es una familia de parabolas en el plano (y2, v2)para cada valor de v1. La
mas grande de estas parabolas se da cuando v1=0.
#include
#include
#include
#define Largo 4000
#define R 6.71
#define R1 (1.0+R)
double z1,z2,v1,v2,v1p,v2p,ts,tc;
long cont;
FILE *archivo;
void Ini() / * ----------------------*/
{ z1 = 0.0;
v2 = 0.6;
printf("v1=");/* v1 = 0 .6 1 t b 0. 77*/scanf("%lf",&v1);
z2 = (2.0*R+2.0-R*v2*v2-v1*v1)/(2.0*R);
if(z2
-
7/25/2019 metodos numericos apunte
14/140
Introduccion 1.5. RECURRENCIAS, PUNTOS FIJOS Y CEROS
puede ocurrir que 1 se vaya a . Similarmente en el caso de Choquese actualiza z2 en formaestandar y luego en lugar de actualizar z1 en la misma forma, se coloca z1 = z2lo que impide
que, por error de redondeo, se puedan cruzar. Posiblemente lo mas criticable de este codigo es
que se usa demasiadas variables globales.
Durante el vuelo libre ambas partculas obedecen
ya(t) =12
t2 + vat+ya (1.4.7)
donde(ya, va)son las condiciones iniciales de ese vuelo libre. La condicion dechoque entre ellas es
tC=y2y1v1 v2
(1.4.8)
y la condicion para que 1choque con el suelo est2S/2 + v1tS+y1=0lo queda
tS=v1+
v21+ 2y1 (1.4.9)
El programa adjunto permite obtener las curiosas formas que dibujan lospuntos(y2, v2)definidos cuando y1=0durante la evolucion de este sistema.
En C, en lugar de escribir z2 = -ts*ts/2+v2*ts+z2; v2 = -ts +v2; se puede escribir z2 += -ts*ts/2+v2*ts; v2 -= ts; lo que ha-ce menos amistoso la lectura del codigo pero mas veloz. En estas notas seusara el estilo de presentacion de codigos amistoso. El archivo de resultados
2b.datpuede ser visto en gnuplot y, en el caso actual lo mas conveniete esdar, dentro de gnuplot, la instruccion set data style dotsantes de darel comando plot2b.dat porque dots representa cada dato con un solopixel, en cambio por defecto los datos son representados por points que sonpequenos rombos.
1.5. Recurrencias, puntos fijos y ceros
Muchos metodos numericos hacen uso de metodos iterativos. Es interesan-te entonces saber decidir cuando estos metodos son estables y bajo que condi-
ciones convergen. Una sucesiones puede ser convergente, divergente o teneralgun comportamiento mas complicado. Un caso clasico es elmapa logstico
xn+1=A xn(1xn) , con 0
-
7/25/2019 metodos numericos apunte
15/140
Patricio Cordero Metodos Computacionales en Fsica 15
1.5.1. Estabilidad
La recurrenciax= g(x) (1.5.2)
tiene punto fijo en el valor x si x =g(x). Interesa saber si ese punto fijo esestable.
Al iterar a partir de un punto muy cercano a x se obtiene
x + = g(x + ) g(x) + g(x)
= g(x) (1.5.3)
de donde se concluye que si
|g(x)
|
-
7/25/2019 metodos numericos apunte
16/140
Introduccion 1.5. RECURRENCIAS, PUNTOS FIJOS Y CEROS
y que se conoce como elm etodo de la secantey estrictamente corresponde ax
n+1=g(x
n,x
n1).
void cero(double xs)/*****************/
{ double cn;
x p = x s + 1 e- 2;
fs = f(xs);
fp = f(xp);
do
{ xa = ( xs*f p - x p*fs)/(fp-fs);
fs = fp;
xs = xp;
fp = f(xa);/* notar que f es llamada*/
xp = xa; /* una sola vez */
cn = fabs(xp-xs);
printf("%14.11f %14.11f\n",xp,fp);}while(cn>tolerancia muy chica);
}
main()/*****************/
{ printf("semilla=");
scanf("%lf",&xs);
cero(xs);
}
Versi on sencilla para usar m etodo de la secante. Note que la instrucci on que seha puesto es printf("semilla");y no printf("semilla\n");
Un buen programa no debe producir error jamas. En el caso de arriba no seha tenido cuidado que el denominador fn fn1pueda ser nulo. Tampoco seha previsto la posibilidad de que jamas se logre convergencia de la secuencia.Conviene poner un contador que no permita que se sobrepase algun numero
de iteraciones.Compruebe que el siguiente algoritmo, publicado en 2007, es mas estable
que el de de la secante1:
xn+1 = xn1 xn1fn1fn1+xn1
fnfn1xnxn1
(1.5.6)
= fn fn1
xn1fn2xn1fn1+xnfn1 x2n1 (1.5.7)
Determine todos los ceros reales dePa = x53x4 2x2 + 11x 1 y dePb=16x5168x4 + 657x31161x2 + 891x243usando los algoritmos descritos.
1.5.3. Puntos fijos con mas de una variable
Lo anterior se puede generalizar al caso de Nvariables planteando la rela-cion de recurrencia
x = g(x ) (1.5.8)1C. Hu,Computing in Science and Engineeringv.9, #5, p.78 (2007)
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
17/140
Patricio Cordero Metodos Computacionales en Fsica 17
Si x0es punto fijo de gentonces
x0+ = g(x0+)= g(x0)+ (g)x0 (1.5.9)
donde el ultimo termino en forma mas explcita es
j
gixj
x0
De (1.5.9) se obtiene entonces que
= J0 (1.5.10)
El punto x0es un punto fijo estable si los autovalores kdel Jacobiano Jde g(x ), evaluado en x0, tienen parte real menor que la unidad, es decir, si seescriben en la forma
k=eak+i bk
son tales que todos los akson positivos.
1.5.4. Metodo de la secante en varias variables
Se desea encontrar los ceros de
F(r) =F1(r)
..
Fn(r) (1.5.11)donder= (x1,x2, . . .xn). Es decir, se busca puntos r0en los que todas las fun-cionesFn(r)se anulan simultaneamente.
El metodo de Newton generalizado a este problema se plantea a partir dedefinir
r= g(r)r J1(r)F(r) (1.5.12)donde J es el Jacobiano Fi
xjde F. En efecto, el lado izquierdo se escribe en
torno a un cero deF: g(r0+)g(r0) +. El correspondiente lado derecho esr0+mas el producto de las expansiones deJ
1 y deF. Pero la expansion deeste ultimo esF(r0) =0masJ0, donde el ndice cero indica que el Jacobiano
es evaluado enr0. SiendoJ0una cantidad de primer orden, no es necesarioexpandir el factor J1(r)sino que basta con tomar sencillamente
J10
. Con
todo lo anterior se ve que a primer orden, el lado derecho de (1.5.12) se anula:el Jacobiano Jde la funcion g(r)evaluado en los ceros de F(no confundirloconJque es el Jaconbiano deF) tiene autovalores nulos. Esto garantiza quelos ceros deFse comportan como puntos fijos estables de la recurrencia quedefine (1.5.12).
Universidad de Chile Escuela de Ingeniera y Ciencias
-
7/25/2019 metodos numericos apunte
18/140
Introduccion 1.6. PROBLEMAS
En el caso de dos funciones F1y F2en las variables xeyse tiene
J= F1
xF1y
F2x
F2y
, det(J) = & J1 =
1
F2y F1
y
F2x F1x
El metodo de la secante se obtiene a partir de lo anterior usando, en lugardeJ, la matriz de cantidades tipo
Fixj
Fi(xj)Fi(x1j )
xjx1j(1.5.13)
donde el ndice se refiere a la iteracion-esima. Para no hacer muy pesadala notacion, se ha usado como argumento de Fisolamente la variable xjque
se esta cambiando.
1.6. Problemas
1. Determine los ceros de 5x4 x3 65x2 + 73x 12utilizando semillas yel metodo de Newton. Use tambien el metodo de la secante. Observe lacantidad de iteraciones necesarias para obtener cada cero con toleranciafija.
2. Resuelva numericamente el sistema de ecuaciones: f1 =x4 y4 9y
f2= x3yxy3 y2 2
3. A continuacion un excelente ejemplo para poner a prueba la capacidadde encontrar ceros de una funcion en forma eficiente. Una partcula demasa m se mueve en una sola dimension vertical (eje Y) rebotando contraun suelo que oscila sinusoidalmente,z(t) =Asin(t). La regla de choquecontra el suelo oscilante es
vp(t) = (1 + ) vs(t) vp(t)
donde tes el instante del bote,vpyvp son las velocidades de la partcu-la antes y despues del bote,vses la velocidad del suelo en ese instante y(entre 0 y 1) es un coeficiente de restitucion (= 1en el caso elastico).Se puede escoger que inicialmente la partcula este en contacto con el
suelo y con velocidad hacia arriba mayor queeste, es decir, la condicioninicial(y0, v0)satisfacey0= z(t=0)yv0 y(0)>z(0).Una de las caractersticas de este sistema es que normalmente tiendea generar soluciones estables. Es decir, dada una condicion inicial elsistema pasa por un perodo que se puede llamar de relajacion hastaalcanzar una solucion periodica. Bajo algunas circunstancias la soluciones trivial porque la partcula tiende a pegarse al suelo y en otras (poco
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
19/140
Patricio Cordero Metodos Computacionales en Fsica 19
comunes) no hay solucion periodica. La solucion periodica mas sencillacorresponde a la partcula golpeando el suelo con el mismo perodo T=2 queeste tiene. En general, el sistema comienza en (y0, v0), vuelvea golpear al suelo con (y1, v1), etc. y se genera una secuencia (yk, vk).Esta es una recurrencia que escribimos(yk+1, vk+1) =g(yk, vk)y lo que sebusca son puntos fijos degcomo tambien los puntos fijos de g getc. Laidea es dejar que el sistema evolucione hasta que este en un regimenestacionario y luego escribir a archivo los valores devnpor los proximos(por ejemplo 50) botes. Si se ha alcanzado un punto fijo de gestos 50numeros debieran resultar iguales.
Una historia del sistema queda totalmente definida si se dan los valo-res de los parametros (A, , , m, g)y la condicion inicial (y(0), v(0)). Sepuede adimensionalizar con m=1, g =1y A=1. Puesto que ya se haescogido la forma de tomar y0, la condicion inicial solo requiere de v0yde los parametros del problema solo sobreviveny .
(a) Habiendo desarrollado su programa, utilselo con =0,15y haga ungrafico de los vn=1..N(N 50) versuscon1,66 1,79que resultandespues de relajar al sistema. Este intervalo de divdalo en unos 100valores distintos. Si hay algun punto del eje que le parezca mas in-teresante, ah haga una trama mas fina.Despu es del ciclo con el primervalor de, conviene usar como condici on inicial el estado final del casoanterior.
(b) Describa el criterio usado para decidir cuando el sistema ya ha rela-jado. Depende su criterio del valor de?
(c) Describa las mayores dificultades encontradas para programar este
sistema. Como se logra que sea mas eficiente (rapido)?RECOMENDACIONES: Desarrolle su programa en etapas. Primero asegureseque los eventoschoque con el suelo est en siendo predichos correctamente y quenunca predice que el pr oximo choque ser a antes del actual. Asegurese que por
ningun error de precisi ony(t)pueda ser menor quez(t). La dificultad m as grandeposiblemente reside en calcular correctamente el instante del pr oximo choque
porque hay que dise nar alguna forma de buscar, de entre los diversos ceros de
F(t) = y(t)z(t), aquel que corresponde al pr oximo choque. Este c alculo es talvez el principal problema que har a lento al programa. Conviene que una vez
que se haya visto que los diversos algoritmos funcionan correctamente, haga un
programa que vaya autom aticamente resolviendo el problema para los diversos
valores dey as tenga un unico archivo para hacer el gr afico solicitado.
El problema de encontrar los ceros fsicamente interesantes de F(t) puede re-solverse (algo burdamente) observando que la funci onF(t)se mantiene positivaa medida que se avanza de a saltos de tiempo=0,1T. Tan pronto se detectaqueFcambia de signo se usa una busqueda con el metodo de la secante entre
los valores detjusto antes y despu es del cambio de signo deFpara determinar
el cero preciso deF(t). El instante que arroja la rutinasecantees el momentodel siguiente choque.
Inicialice con el reloj ent=0, y(0) chico y velocidad negativa de modo que en
Universidad de Chile Escuela de Ingeniera y Ciencias
-
7/25/2019 metodos numericos apunte
20/140
Derivadas e integrales numericas 1.7. ALGUNOS TEMAS BASICOS NO INCLUIDOS
una fracci on peque nadeT= 2/se produzca el bote. Por otro lado la velocidad
inicial debiera ser la necesaria para volver a tocar el suelo aproximadamente un
tiempo2/ despu es. Eso asegura valores razonables y convergencia r apida.
1.7. Algunos temas basicos no incluidos
o Metodo de pivoteo de Gauss para resolver un sistema de Necuacionesalgebraicas lineales conNincognitas.
o Ligado al problema anterior: obtencion de la soluci on a mnimos cuadra-dosde un sistema lineal sobredeterminado.
o Autovalores de matrices de N
N.
o Metodos de interpolacion.
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
21/140
Captulo 2
Derivadas e integrales
numericas
2.1. Derivadas
La forma elemental mas tpica de plantear una derivada es
f(x) f(x + h) f(x)h
(2.1.1)
El desarrollo en serie
f(x + h) = f(x) + h f(x) +h22
f(x) + . . . (2.1.2)
muestra que en (2.1.1) se desprecia algo que es O(h). En cambio la siguienteexpresion es mas precisa,
f(x) = f(x + h) f(xh)
2h+O(h2) (2.1.3)
El error que aqu se indica es un error analtico. Ya se ha comentado que si hes muy pequeno se produce un error de redondeo.
Existe una famila de expresiones para derivadas de cualquier orden. Ex-
presiones simetricas y no simetricas. Usando la notacion fk f(x + k h), se
tiene, por ejemplo, que
f1 = f0h f0+h2
2 f0
h3
3! f0 +O(h
4)
f2 = f02h f0+ 2h2 f04h3
3 f0 +O(h
4)
(2.1.4)
21
-
7/25/2019 metodos numericos apunte
22/140
Derivadas e integrales numericas 2.1. DERIVADAS
de donde
f0 = f22f1+f0h2 +O(h) (2.1.5)
y tambien
f0 = f12f0+f1
h2 +O(h2) (2.1.6)
Es facil ver que la primera derivada de una funcion f(x)se puede expresaren terminos de fh1= f(xh1), fh2 = f(x + h2)y de la propia f(x)como
d fdx
h21
fh2+ (
h22
h21)
f
h22fh1
h1h2(h1+ h2) +O(h1h2 f) (2.1.7)
y con los valores de fen estos mismos tres puntos la segunda derivada sepuede escribir
d2f
dx2 2 h1fh2 (h1+ h2)f+ h2fh1
h1h2 (h1+ h2) +O((h2h1)f
) (2.1.8)
Determine qu e derivada es proporcional a
11f256f1+ 114f0104f1+ 35f2
e indique el orden del error de esta expresi on.
Obtenga el valor dea tal que la siguiente expresi on sea proporcional a f m as unerror,
a f232f1+ 72f096f1+ 50f2
2.1.1. Tabla con derivadas a cuatro y cinco puntos
Una derivada de orden ntiene una variedad de expresiones usando p n + 1puntos. A continuacion algunos ejemplos.
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
23/140
Patricio Cordero Metodos Computacionales en Fsica 23
A cuatro puntos A cinco puntos
h f 1
6(2f13f0+ 6f1 f2) 1
12(f28f1+ 8f1 f2)
h2f f12f0+f1 112
(f2+ 16f130f0+ 16f1 f2)
h3f (f1+ 3f03f1+f2) 12
(f2+ 2f12f1+f2)
h4fiv no hay f
2
4f
1+ 6f0
4f1+ 2f2
2.2. Integracion numerica directa
Metodo trapezoidal:Se desea integrar numericamente dividiendo el inter-valo (a, b)en Nintervalos de largo hcon los puntos x0= a, x1, x2, ..., xN1,
xN=b. Para obtener este primer algoritmo de integracion se comienza porescribir
f(x) fk+ (xxk)fk+1
2(xxk)2 fk+ . . .
fk+ (xxk) fk+1 fkh
+O(xxk)2 (2.2.1)para integrar en uno solo de los intervalos: desde xkhastaxk+ h,
xk+hxk
f(x) dx fkh +h2
2
fk+1 fkh
+O(h3)
=h (fk+1+fk)
2 +O(h3) (2.2.2)
La ultima expresion es elarea del trapecio de la fi-gura. Al sumarksobreNsitios y tomando en cuentaqueN
1
hse obtiene,
h
fk
fk+1
sumando lasareas de los trapecios, que ba
f(x) dx =
f0+f1
2 +
f1+f22
+ ...fN1+fN
2
h
= h
2(f0+ 2f1+ 2f2+ .. + 2fN1+fN) +O(h2)
(2.2.3)
Universidad de Chile Escuela de Ingeniera y Ciencias
-
7/25/2019 metodos numericos apunte
24/140
Derivadas e integrales numericas 2.2. INTEGRACION NUMERICA DIRECTA
y el error es de orden O(h2 f) = O( (ba)3 f
N2 ).
Metodo de Simpson: Una formula algo mas precisa es la de Simpson quesurge de integrar en forma explcita en xentre xk1= xkhy xk+1= xk+ h. Laexpresion
f(x) = fk+ fk
+1fk1
2h (xxk) +fk12fk+fk+1
h2(xxk)2
2 +O
(xxk)3
+O
(xxk)4
(2.2.4)
La integracion en(xk h,xk+ h)de los terminos (xxk)r con rimpar da cero.De la expresion anterior sobrevive la integracion del termino con (xxk)2, eltermino cubico no contribuye al error y el ultimo da un O(h5)y se obtiene
2h fk+ f
k12f
k+f
k+1h2
1
2
2h3
3 =h
3 (fk1+ 4fk+fk+1) +O(h5) (2.2.5)
Componiendo esta expresion se obtiene el algoritmo de Simpson que se aplicaconNpar,
ba
f(x) dx h3
[f0+ 4(f1+f3+ ..fN1) + 2(f2+f4+ .. +fN2) +fN] +O(h4)(2.2.6)
y el error mas precisamente es O(h4 fIV)
Viendo la logica de (2.2.4) y como conduce a (2.2.6) resulta obvio obtenerexpresiones aun mas precisas para hacer una integral.
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
25/140
Patricio Cordero Metodos Computacionales en Fsica 25
/* "simpson.c"Programa generico para hacer
la integral de F(x) desde
x=a has ta x =b u san do
el metodo de Simpson
Autor: anonimo
*/
#include
#include
#include
#define N 20
#define nu (N/2)
#define a 0.0 //limite inferior
#define b 1.0 //limite superior
#define h ((b-a)/N)
double F(double x) //Aqui se pone
{ return(x*x*x*x); //integrando F
}
double simpson()
{ int k;
double sumaPar,sumaImp,xk;
sumaPar = 0.0;
sumaImp = 0.0;
xk = a;
for(k=0; k
-
7/25/2019 metodos numericos apunte
26/140
Derivadas e integrales numericas 2.3. INTEGRACION Y CAMBIO DE VARIABLE
- el intevalo de integracion es infinito
- la funcion vara mucho en el intervalo (funcioncon alto contraste)
- hay una divergencia en el intervalo
- ..
2.3. Integracion y cambio de variable
2.3.1. Planteamiento y ejemplos
En general para hacer una integral numerica es conveniente hacer algun
tipo de cambio de variable. En particular los problemas mencionados antesse superan haciendo un cambio de variable de integracion y=g(x), esto es,
dy=g(x) dx. Genericamente
I = b
af(x) dx
=
g(b)g(a)
f(x)
g(x)
x=g1(y)
dy (2.3.1)
y la segunda forma de la integral se discretiza uniformemente. Notese queg(x)debe ser monotona para que g no tenga ceros en el intervalo que in-teresa. Discretizar uniformemente en la nueva variableyes equivalente a una
discretizacion no uniforme en la variable originalx. Otra limitante practica parag(x)es que debemos conocer la funcion inversag1.
El procedimiento practico normalmente define una sola vez en la rutina unx= g1(y)el que es usado para calcular [f(x)/g(x)]. Es decir, se genera lasecuencia regular de valores y, con cada uno de ellos se calcula x, y se vasumando f(x)/g(x).
Al hacer un cambio de variable se debe cuidar que los valores de
s(y) =
f(x)
g(x)
x=g1(y)
(2.3.2)
sean finitos en todo el intervalo, en particular en los extremos g(a)yg(b).
Al hacer el cambio de variabley=g(x)se debe cumplir:
a) g(x)es monotona en el intervalo (a, b)original,
b) el nuevo intervalo(g(a), g(b))es finito
c) el nuevo integrando s(y)debe ser regular y de poco contraste.
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
27/140
Patricio Cordero Metodos Computacionales en Fsica 27
Como ya se dijo, el cambio de variable equivale a tomar intervalos no re-gulares en la variable original x. Los puntos regulares y
ken la nueva variable
definen puntosxk= g1(yk)en el eje original.
El gran inconveniente de los metodos con cambio de variable presentadoshasta aqu es que esta limitado a gunciones g(x)para las cuales se conocela funcion inversa g1(y). Mas adelante, en el captulo correspondiente a losmetodos Monte Carlo se podra superar este inconveniente.
Ejemplo con intervalo infinito: Consideremos
I=
0
ex2+x dx
Si se tomay=ex2 y por tanto x= lny. La integral pasa a ser
I=
10
ex
2x
x= lny
dy
que no es aceptable porque se obtiene un integrando divergente.
Pero si se escogey=g(x) =ex, es decir,
s(x) =ex2+2x
la integral que se debe evaluar es
I= 10
ex2+2xx= lny
dy
El problema ha sido reducido al de una integral en intervalo finito y poco con-traste.
Integrandos con mucho contraste: Aun en casos en que no hay divergen-cias, si la funcion vara mucho en el intervalo (mucho contraste) se debe hacerel cambioy = g(x)pasando as a una integral sobre la variableycon integrando[f(x)/g(x)]x=g1(y)y g(x)se debe escoger de tal forma que el nuevo integrandosea lo mas plano posible. El colmo sera conseguir que fuese una constante,pero en tal caso el problema estara resuelto antes de comenzar.
Veamos como suavizar el integrando con el ejemplo 11
f(x) dx con f(x) =1
ex
2/2 y 1.
Se trata de buscar un g(x)apropiado. Puesto quegtiene que tener una formaparecida al integrando f(x) entonces g debe tener la forma de un escalon
Universidad de Chile Escuela de Ingeniera y Ciencias
-
7/25/2019 metodos numericos apunte
28/140
Derivadas e integrales numericas 2.3. INTEGRACION Y CAMBIO DE VARIABLE
redondeado. Escojamos que satisfaga g(1) =1y g(1) = 1. Por ejemplo, sepuede tomar
g(x) =arctanx
a
arctan
1a
Se deja como ejercicio ver el a optimo para cada valor de .
Si el integrando tiene muchos picos se subdivide el intervalo de integracionpara tener integrales con un solo pico en cada segmento y tratar cada casosegun lo que convenga.
Encontrar un cambio de variable apropiado para calcular 401
dx
x2 (1 +x)
2.3.2. Divergencias en el integrando
Metodo 1: regularizacion del integrando
Si hay divergencias en el intervalo pero aun as la integral es finita, se debetratar separadamente cada parte. Para ello se redefine intervalos de integra-cion que dejan al punto de divergencia en un extremo para pasar a estudiarla forma de tratar una integral que es divergente en un extremo del intervalo.Tomemos el caso
I= b
0
f(x) dx con f(0) =
Para queIsea convergente a pesar del valor infinito de fen x = 0es necesarioque
lmx0
x f(x) =0
Para abordar este problema suele ser conveniente hacer el cambio de variabley=g(x) =x, con>0porqued y=x1 dxy
I=
b0
f(x)
x1
x=y1/
dy
y se debe escogertal que
lmy0
f(x)x1 sea finito
PeroIes no divergente tan solo si f(x)diverge en el origen mas lentamenteque1/x. Entonces definamos,0
-
7/25/2019 metodos numericos apunte
29/140
Patricio Cordero Metodos Computacionales en Fsica 29
Lo que intereza es la contribucion a la integral que proviene de una vecindadal origen,
Ih =
h0
f(x)
x1
%
dy
h
0
A
x1x1
%
dy
A
h0
x
%
dy
A
h0
y()/dy (2.3.3)
que es convergente si
. Se debe escoger unpositivo menor o igual a
.
Ejemplo 1: Calcular: 10
x1/3
sinxdx
Cerca del origen el integrando es f x2/3 es decir, =1 2/3=1/3y sepuede escoger cualquiera de los casos 0 < 1/3. Si se toma =1/3laintegral se convierte en
3
10
y3
siny3d y
Ejemplo 2: Para calcular 10
P(x)ln(x) dx
donde P(x)es una funcion suave, basta con tomar y= x1/100 para tener unintegrandoF(y)suave.
Calcular 10
sin(x)1x2 dx
Metodo 2: tratamiento analtico de la divergencia
Otra forma de tratar integrales que tienen divergencias en el integrando estratar en forma analtica el trozo que contiene la divergencia. Por ejemplo, 1
0
dx
(1x)1/3x2/3
Universidad de Chile Escuela de Ingeniera y Ciencias
-
7/25/2019 metodos numericos apunte
30/140
Derivadas e integrales numericas 2.4. INTEGRAL DE PARTE PRINCIPAL
Para tratar la singularidad enx=0se separa la integral
h0
dx
(1x)1/3x2/3 h
0
dx
x2/3 =3h1/3
se procede en forma similar en el lmite superior. El resto de la integral se haceen la forma usual.
2.4. Integral de parte principal
Suele ser necesario calcular la integral
I= ba
f(x)xx0 dx x0 [a, b]
en que tanto la integral desde aa x0como la de x0a bson divergentes y f(x)es regular enx=x0. Es conocido que la parte principal se define por medio de b
a
f(x)
xx0 dx=P b
a
f(x)
xx0 dx + i f(x0)
y laparte principales
P b
a
f(x)
xx0 dx=lmh=0 x0h
a
f(x)
xx0 dx + b
x0+h
f(x)
xx0 dx
Para calcular numericamente la parte principal se razona a partir de rees-cribir Ien la forma b
a
f(x)
xx0 dx= b
a
f(x) f(x0)xx0 dx +
ba
f(x0)
xx0 dx (2.4.1)
La primera integral, que denotamos I1, es no singular y se hace en formaestandar, mientras que la segunda integral es b
a
f(x0)
xx0 dx = f(x0)lnbx0ax0
= f(x0
) lnbx0x0a + ln(1)= f(x0)
ln
bx0x0a + i
(2.4.2)
Se ha aislado el termino i f(x0). La labor de obtener numericamente la par-te principal consiste en evaluar numericamente la integral I1utilizando algunmetodo estandar y sumarle f(x0) ln
bx0x0a .
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
31/140
Patricio Cordero Metodos Computacionales en Fsica 31
2.5. Problemas
1. a) Tal vez sea bueno comenzar por escribir programas de integraciontrapezoidal y Simpson e intregrar sin cambio de variable 1
0xn dx con n=3,4, 5 . . .
viendo cuanto debe valer Npara tener un error de menos del 1%.Se vera lo sorprendentemente pequeno que puede serN.
b) Trate de obtener un error menor al1 %.
c) Puede serle util graficar la funcion a integrar y la funcion que resul-ta despues de cada cambio de variable. De esa manera se puede
entender la fuente de los posibles errores.d) Para el caso x =10debe tener cuidado con la forma de evaluar la
potenciat9 para que sea rapida y no cometa mucho error.
e) Por razones obvias, no se debe calcular la integral por partes, nihacer algun truco que permita llevarla a una integral analtica.
2. La funcion gamma,(x), se define como la siguiente integral
(x) =
0
tx1etdt (2.5.1)
que converge para todoxpositivo, pese a que para0
-
7/25/2019 metodos numericos apunte
32/140
Derivadas e integrales numericas 2.5. PROBLEMAS
El problema consiste en hacer numericamente las integrales de arribacon algun cambio de variable para tener un integrando suave en un inter-valo finito. Se debe obtener un resultado razonablemente bueno teniedoque evaluar el integrando final el menor numero (N) de veces que seaposible. Como criterio de convergencia debe usar alguna cantidad como
err= IIN
I
-
7/25/2019 metodos numericos apunte
33/140
Patricio Cordero Metodos Computacionales en Fsica 33
El valor deen el caso de la molecula de hidrogeno es21,7, en el de O2es
150.
La condicion integral de arriba se convierte en la exigencia que se anulela funcion
Fn(En) = max
min
En4
1
12 1
6
d
n +
1
2
(2.5.5)
Es decir, el problema consiste en encontrar los ceros deFndados= 150y n=0,1,2con 1< En
-
7/25/2019 metodos numericos apunte
34/140
Ecuaciones Difrenreciales Ordinarias 2.5. PROBLEMAS
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
35/140
Captulo 3
Ecuaciones diferenciales
ordinarias
3.1. Reduccion a ecuaciones de primer orden
El problema de resolver
d2g
d 2=F( , g, g) (3.1.1)
puede ser replanteado en la forma
dy
d =f( ,y) + alguna condicion de borde (3.1.2)
donde
y=
g
y2
f=
y2
F
(3.1.3)
es decir
dg
d = y2
dy2
d = F( ;(g,y2)) (3.1.4)
Se puede adivinar de lo anterior que siempre se puede reducir un problemade ecuaciones diferenciales ordinarias a un sistema de ecuaciones de primerorden.
Por ejemplox= 1m
Fpuede plantearse definiendo
y=
xv
f=
v1m
F
(3.1.5)
35
-
7/25/2019 metodos numericos apunte
36/140
Ecuaciones Difrenreciales Ordinarias 3.1. REDUCCION A ECUACIONES DE PRIMER ORDEN
con lo que el problema consiste en resolver
dxdt
=v dvdt
= 1m
F (3.1.6)
A continuacion se vera una serie de metodos para atacar (3.1.2).
3.1.1. Metodo directo simple (de Euler)
Este metodo consiste en plantear (3.1.2) en la forma
yn+1=yn+1yn
hO
h
2y
= fn
y de aqu definir la recurrencia
yn+1=yn+ h fn+O(h2) (3.1.7)
Una forma para tratar de mejorar la precision podra consistir en aproximary (yn+1yn1)/2hcon lo que la ecuacion a iterar es
yn+1=yn1+ 2h fn+O(h3) (3.1.8)
pero ambas recurrencias sufren del mismo problema de estabilidad.
Estabilidad de (3.1.8): Sea yla solucion exacta del problema discreto. Sedefinental que yn= yn+ ncon lo cual (3.1.8) pasa a ser
yn+1+ n+1 = yn1+ n1+ 2h f(n,yn+ n)
= yn1+ n1+ 2hf(n,yn) +f(n,yn)y n (3.1.9)de donde
n+1=n1+ 2hf(n,yn)
yn (3.1.10)
que es la ecuacion que da la forma como se propaga el error. Si la funci on fno es muy sensible a yse puede razonar suponiendo que es constante y en talcaso se trabaja conn+1= n1+2 n. Esta ultima ecuacion se puede resolversuponiendo que
n=0 n
porque (3.1.10) se recuce a22 1 = 0que da las raices=
1 + 2
y entonces
n=A n
++B n
(3.1.11) Si>0entonces+>1yn+crece conny el error crece. Si
-
7/25/2019 metodos numericos apunte
37/140
Patricio Cordero Metodos Computacionales en Fsica 37
3.1.2. Metodo implcito
La ecuacion (3.1.2) se planteady
d
n+12
= f
n+1
2,y
n+12
(3.1.12)
El lado izquierdo se reescribe como
yn+12+
12y
n+12 122h
2
+O(h2) =yn+1yn
h(3.1.13)
y el lado derecho se reemplaza por el promedio de los valores en ny enn + 1,12[fn+fn+1]con lo cual resulta
yn+1=yn+h
2(fn+fn+1) +O(h
3) (3.1.14)
La incognita,yn+1aparece en ambos lados, por tanto, en cada paso de itera-cion se debe buscar el cero de la funcion
G(z) =zyn h2
[f(n,yn) +f(n+ h,z)]
Estabilidad del metodo implcito: En forma analoga a como se proce-dio en el caso anterior se plantea
yn+1+ n+1= yn+ n+h
2(f(n,yn+ n) +f(n+1,yn+1+ n+1) (3.1.15)
Expandiendo y trabajando un par de pasos se obtiene que
n+1=n+h
2(yfn n+ yfn+1 n+1) (3.1.16)
El ultimo n+1puede ser reemplazado por nya que la diferencia es de masalto orden. Entonces
n+1 n
1 +h
2(yfn+ yfn+1)
(3.1.17)
Lo crucial es el signo del parentesis redondo en la expresion anterior. Si esnegativo el error decrece.
Como se ve, lo que importa es el signo de d y/d . Si la funcion es crecien-te, el error crece (aunque puede que porcentualmente crezca menos que lafuncion) y si la funcion decrece el error decrece. El metodo puede funcionar ypuede no funcionar: es condicionalmente estable.
Universidad de Chile Escuela de Ingeniera y Ciencias
-
7/25/2019 metodos numericos apunte
38/140
Ecuaciones Difrenreciales Ordinarias 3.1. REDUCCION A ECUACIONES DE PRIMER ORDEN
3.1.3. Metodo de Runge-Kutta
Esta vez (3.1.2) se plantea en la forma
dy
d = f( ,y)
y(0) = y0
Y se usa dos expansiones de Taylor,
yn+1= yn+ hyn+
h2
2yn
+O(h3) (3.1.18)
yn+12
= yn +h
2yn+O(h2) (3.1.19)
De la ultima, multiplicada por h, se obtiene
h2
2yn
= yn+1
2
yn h +O(h3) (3.1.20)Que se reescribe utilizando la ecuacion original
h2
2yn
=
fn+12
yn
h +O(h3) (3.1.21)
Al reemplazar esta expresion en (3.1.18) se cancelan las primeras derivadasy se obtiene
yn+1= yn+ h f(n+h
2,yn+
h
2fn) (3.1.22)
Este resultado final conocido como RK2, tradicionalmente se reescribe en laforma
k1 = h f(n,yn)
k2 = h f(n+h
2,yn+
1
2k1) RK2 (3.1.23)
yn+1 = yn+k2+O(h3)
Este metodo es explcito, el error es orden h3 y puede hacerse estable. Ladesventaja es que la funcion fdebe ser llamada dos veces en cada iteracion.Otra ventaja es que, puesto que avanza paso a paso y no requiere de informa-cion anterior, se puede ir ajustando el paso ha medida que se avanza en laintegracion.
Siguiendo un camino semejante se obtiene algoritmos de mas alto orden.
RK3:k1 = h f(n,yn)
k2 = h f(n+h
2,yn+
1
2k1)
k3 = h f(n+ h,ynk1+ 2k2) (3.1.24)yn+1 = yn+
1
6
k1+ 4k2+k3
+O(h4)
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
39/140
Patricio Cordero Metodos Computacionales en Fsica 39
/*Runge Kutta 4 para
sistema 1D newtoniano
*/
#include
#include
#include
#define h ...
#define h2 h*h
#define iiMAX ...
d oub le y[ 2] , /* y 0= x y 1= vx */
f[2]; /* f0=vx f1=ax */
double k1[2],k2[2],k3[2],k4[2];double t;
void Inic()
{ y[0] = ...;/* x inic */
y[1] = ...;/* v inic */
t = 0.0;
}
void efe(double t,
double posic, double vel)
{double x;
f[0] = vel;
x = y[0];
...
f[1] = ..;/* aqui fuerza/m */
}
void cal_k1()
{ efe(t,y[0],y[1]);
k1[0] = h*
f[0];
k1[1] = h*f[1];
}
void cal_k2()
{ efe(t+0.5*h,y[0]+0.5*k1[0],
y[1]+0.5*k1[1]);
k2[0] = h*f[0];
k2[1] = h*f[1];
}
void cal_k3()
{ efe(t+0.5*h,y[0]+0.5*k2[0],
y[1]+0.5*k2[1]);
k3[0] = h*f[0];
k3[1] = h*f[1];
}
void cal_k4()
{ efe(t+h, y[0]+k3[0], y[1]+k3[1]);
k4[0] = h*f[0];k4[1] = h*f[1];
}
void Itera()
{ long ii;
for(ii=0;ii
-
7/25/2019 metodos numericos apunte
40/140
Ecuaciones Difrenreciales Ordinarias 3.2. INTEGRADORES MULTIPASO
Desventajas: se debe calcular fcuatro veces en cada iteracion.
Sobre el paso variable. Para que el metodo sea preciso la magnitud deloskadeben ser mucho menores que yn+1yn. Si se va detectando quetales magnitudes se acercan ase debe escoger hmas chico. Por el contrario,si ka entonces se debe agrandar h.
3.1.4. Estabilidad de RK4
Un analisis completo de estabilidad depende de la ecuacion particular que se quiera tratar,pero la tendencia general de cada esquema de integracion puede sondearse estudiando lo queocurre en el caso de la sencilla ecuaciony= y. En lo que sigue se estudiara para esta ecuacionla estabilidad de RK4. Calcularemos los kay finalmente usaremos la expresion para yn+1dada en
(3.1.25). En las expresiones de los kase reemplaza fpor multiplicando al segundo argumentode fque, genericamente esy, obtieniendose
k1 = h yn
k2 = h
yn+
1
2k1
=h
1 +
h
2
yn
k3 = h
yn+
h
2
1 +
h
2
yn
= h
1 +
h
2
1 +
h
2
yn
k4 = h
1 + h
1 +
h
2
1 +
h
2
yn (3.1.26)
Al reemplazar estos valores en la expresion para yn+1y escribiendo yn+1 = yn+1+ n+1y si-milarmente y n = yn+ n (donde los yson la solucion exacta de la ecuacion discreta, se obtieneque
n+1n
=1+ h+(h)2
2+
(h)3
6+
(h)4
24(3.1.27)
Para que haya estabilidad este cuociente tiene que tener un valor absoluto menor que 1 y puedecomprobarse que esto requiere que
2,7853
-
7/25/2019 metodos numericos apunte
41/140
Patricio Cordero Metodos Computacionales en Fsica 41
Al integrarla entreny n+1se obtiene
yn+1yn= n+1
nf( ,y( ))
F( )
d (3.2.2)
El integrando sera denotadoF( )y debe tenerse presente que es un valor dey= f.
En este tipo de algoritmo se supone que se tiene una condicion inicial:y0=y(0). Puesto que f( ,y)es una funcion conocida, entonces de (3.2.1) se tienetambieny (0). El valory1se puede obtener, al menos en una aproximacion debajo orden, por medio dey1 y0+h y (0). Si se necesitara mas puntos iniciales(por ejemploy0,y1,y2), estos algoritmos deben obtener esos primeros valorescon alguna estrategia diferente como puede ser, por ejemplo, RK4 con paso
muy fino.Si se aproximaF( ) Fnentonces la integral en (3.2.2) vale h Fn+O(h2)y
se obtiene
yn+1=yn+ h Fn+O(h2)
que es el algoritmo de Euler, que ya se sabe que es inestable.
3.2.2. Algoritmo predictor de Adams-Bashforth
Los metodos AB que se discuten a continuacion se basan en la predicciondel valor deFen el intervalo que se requiere en (3.2.2) usando como informa-
cion valores anteriores: Fn,Fn1. . .Si se toma como aproximacion que F( ) = a + by que exige que tal ex-
presion sea valida en =n1y en =nse obtiene
F( ) =+ n
hFn1+
n1h
Fn+O(h2) (3.2.3)
lo que conduce a poder hacer, en el intervalo que sigue, (n, n+1), la integral n+1n
F d =h
3
2Fn 1
2Fn1
+O(h2) (3.2.4)
Es decir, se usa el conocimiento de Fen (n1, n)para extrapolar al interva-
lo (n, n+1)y hacer la integral recien descrita. Esta extrapolacion conduce alintegradorAB3,
yn+1=yn+h
2(3FnFn1) +O(h3) AB3 (3.2.5)
Claramente aca se ha usado la extrapolacion como una forma de predecir elcomportamiento de la funcion.
Universidad de Chile Escuela de Ingeniera y Ciencias
-
7/25/2019 metodos numericos apunte
42/140
Ecuaciones Difrenreciales Ordinarias 3.2. INTEGRADORES MULTIPASO
A continuacion, versiones mas precisas. En la que sigue se aproxima F=a 2 + b + cy los coeficientes (a, b, c)se determinan exigiendo que den losvalores Fn2, Fn1y Fn. Una vez que se tiene tales coeficientes se tiene unaforma cuadratica paraFque se integra en el intervalo(n, n+1). Finalmente seobtiene:
yn+1=yn+ h
12
(23Fn
16Fn
1+5Fn
2) +O(h4) AB4 (3.2.6)
En forma semejante pero ahora tomando en cuenta Fn3, Fn2, Fn1y Fnseobtiene:
yn+1= yn+ h
24(55Fn59Fn1+37Fn29Fn3) +O(h5) AB5 (3.2.7)
Estos son metodos explcitos de alto orden (error pequeno) y rapidos por-que Fse evalua una sola vez en cada paso. Pero se extrapola en lugar deinterpolar como lo hace Runge-Kutta y por tanto falla si Fes muy variable. Porsu propia naturaleza el paso hdebe permanecer fijo.
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
43/140
Patricio Cordero Metodos Computacionales en Fsica 43
3.2.3. Estimador de Adams-Moulton
/* Se usa un predictor corrector de bajo
orden para integrar un pendulo simple:
d2 phi/dt2 = -sin phi
Notacion: Y = phi
o = omega
F = [omega, -sin(phi)] :
Fu = F_up
Fd = F_ do wn*/
#include
#include
#include
#define h 0.01
FILE *archivo;
/*No se usa arreglos, sino tan solo el co-
nocimiento de phi, omega y F en tres ins-
tantes distintos que en los apuntes se
llaman (n-1,n, n+1) y que aqui se lla-
man (0,1,2).
Es feo usar tanta variable global.
*/
double t, Y0, o0, Y1, o1, Y2, o2;
double Fu0,Fd0,Fu1,Fd1,Fu2,Fd2;
//Inicializacion poco elegante
void Inic()
{ Y0 = 1.0; //phi(0) = 1
o0 = 0.0; //dotphi(0) = 0
Y 1 = Y 0 - h*o0;//phi(dt)=phi0-omega*dt
o1 = -sin(Y0)*h;//omega1=-sin(phi0)*dt
}
//Se llama AB3 en los apuntes:
void Predice()
{ Y2 = Y1 + 0.5*h*( 3.0*Fu1 - Fu0 );
o2 = o1 + 0.5*h*( 3.0*Fd1 - Fd0 );
}
//Solo aqui entra fuerza -sin(phi)
void Estima(){ Fu2 = o2;
Fd2 = -sin(Y2);
}
//Se llama AM3 en los apuntes
void Corrige()
{ Y 2 = Y 1 + 0 . 5*h*(Fu1 + Fu2 );
o2 = o1 + 0.5*h*(Fd1 + Fd2 );
}
void Itera()
{ Predice();
Estima();
Corrige();
//Se traspasa valores
Y0 = Y1;
o0 = o1;
Fu0 = Fu1;
Fd0 = Fd1;
Y1 = Y2;
o1 = o2;
Fu1 = Fu2;
Fd1 = Fd2;
}
main()
{ int k;
archivo = fopen("angulo.dat","wt");
Inic();
k = 0;
t = 0.0;
do
{ Itera();
k++;
t + = h ;
if(t>600)//.. partir de t>600
{ if(k%20==0)//se usa formato %g
{fprintf(archivo,
"%8g %12g\n",t,Y2);}
} / /N o e s n ece sa ri o g ua rd ar
} while(t
-
7/25/2019 metodos numericos apunte
44/140
Ecuaciones Difrenreciales Ordinarias 3.2. INTEGRADORES MULTIPASO
Este es un metodo implcito y es equivalente a alguno de lo metodos que yase haba visto. Para determinar y
n+1se debe buscar el cero de
G(z) =yn+h
2(Fn+f(n+1,z))z
Por definicionG(yn+1) =0.
AM4: Esta vez f( )en el intervalo (n, n + 1)se aproxima con una parabolaque pasa por los valores Fn1,Fny Fn+1y se obtiene
I= h
12(5Fn+1+ 8FnFn1) +O(h4)
y entonces
yn+1=yn+ h
12(5Fn+1+ 8FnFn1) +O(h4) AM4 (3.2.9)
AM5: En forma analoga que en el caso anterior pero usando un polinomiocubico con la informacion de(n2, n1, n, n + 1) y se obtiene
yn+1=yn+ h
24(9Fn+1+ 19Fn5Fn1+ Fn2) +O(h5) AM5 (3.2.10)
Puesto que estos metodos son implcitos se debe determinar un cero conmetodos como el de la secante y eso conlleva un riesgo. Pero en lo que si-gue se muestra una variante muy exitosa.
3.2.4. Metodo predictor-corrector
Este metodo consiste en mezclar metodos explcito y otro implcito del mis-mo orden.
La version mas sencilla de predictor-corrector es la regla trapezoidal deNystromque se puede enunciar como sigue:
1. Primero se predicey(P)n+1=yn1+ 2 h fn.
2. Con el valor recien obtenido de yn+1se evalua fn+1
3. El valor deyn+1se corrije calculandoyn+1=yn+h2(fn+fn+1)
En el metodo general de esta serie y que hace uso de los algoritmos AB yAM se procede como sigue:
P:Usando AB se obtieney(P)n+1a partir de la informacion de puntos anteriores;
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
45/140
Patricio Cordero Metodos Computacionales en Fsica 45
E:el ultimo valor obtenido deyn+1se usa para calcular F(E)
n+1= f(n+1,yn+1);
C:el ultimo valor,F(E)n+1, se usa en AM para obtener y(C)n+1.
En el paso C se usa Adams-Moulton como si fuese un metodo explcito.El paso P se hace una sola vez, pero los pasos (EC) se pueden hacer suce-sivamente para lograr algun tipo de convergencia, lo que se denota P(EC)n.El paso E es el unico que hace uso de la funcion fde la ecuacion que seesta resolviendo.
3.3. Predictor-corrector de Gear
Aqu se da una version sencilla de esta estrategia predictor-corrector para
la ecuacion de Newtonr= a, dondea(r, v)es una funcion conocida. En generaltodas estas cantidades tienen varias componentes.
En la etapa predictiva se calcula
rn+1 = rn + h vn + h2
2an +
h3
6bn
hvn+1 = hvn + 2h2
2an + 3
h3
6bn
h2
2an+1 =
h2
2an + 3
h3
6bn
h3
6bn+1 =
h6
6bn
(3.3.1)
Con los actuales valores en rn+1yvn+1se puede calcular un valor corregidoacn+1, lo que define unerror
n+1=
h2
2 acn+1an+1En el calculo de acn+1es el unico lugar donde interviene el lado derecho de laecuacion de movimiento. Una vez determinado este error se calcula nuevascantidades
rn+1 =rn+1 + c0n+1hvn+1 =nvn+1 + c1n+1h2
2an+1 =
h2
2an+1 + c2n+1
h3
6bn+1 =
h3
6bn+1 + c3n+1
(3.3.2)
C.W. Gear (en trabajos de 1966 y 1971) determino los valoresoptimos paralos coeficientescjen diversos casos. Dependen, por ejemplo, de si la ecuacionque se resuelve es de primer orden (como las ecuaciones de Hamilton) o de
segundo orden (Newton) y tambien depende del orden de la expansion quese haga (en (3.3.1) se expandio hasta b= r). En el caso que aqu se hapresentado los coeficientes de Gear son
c=
1656
113
(3.3.3)Universidad de Chile Escuela de Ingeniera y Ciencias
-
7/25/2019 metodos numericos apunte
46/140
Ecuaciones Difrenreciales Ordinarias 3.4. METODOS DE VERLET Y VARIACIONES
Al reves que los metodos predictor multipaso vistos antes,este determina di-rectamente los valores enn + 1conociendo los valores en n.
3.4. Metodos de Verlet y variaciones
Se trata de resolver ecuaciones de Newton
x=a(x,t) (3.4.1)
sin pasar a ecuaciones de primer orden. Estos metodos se definen cuandoa(x, t)no depende de las velocidades. Sin embargo es generalizable al casoen que existe una fuerza viscosa lineal en la velocidad x=a0(x,t) cv. Se usav=
xn+1xn12h
.
L. Verlet presento su algoritmo por primera vez en su trabajo Computerexperiments on classical fluids. I. Thermodynamical properties of Lennard-Jones molecules, Phys. Rev.159, 98-103 (1967).
3.4.1. Propiamente Verlet
La ecuacion (3.4.1) se discretiza,
xn+12xn+xn1h2
+O(h2) =an
con lo cual,xn+1=2xnxn1+ h2 an+O(h4) (3.4.2)
En cada iteracion se evalua auna sola vez y el error es ordenh4. La velocidadno aparece.
Las iteraciones son (xn1,xn) xn+1, pero si las condiciones iniciales sonx0y v0se puede integrar con RK4 desde x0hasta x1y luego se procede con
(3.4.2) o bien usandox(h) =x(0) + h v(0) +h2
2a(0) + h
3
6a(0).
Notese que igualmente se puede despejar xn1y la ecuacion es la misma,es decir, el algoritmo es reversible en el tiempo.
Para evaluar la velocidad se puede hacer
vn=
xn+1
xn
1
2h +O(h2
) (3.4.3)
que es un error muy grande frente a h4.
Si bien (3.4.2) aparece con un error de truncamiento pequeno, suele tenererror de redondeo grande porque a una diferencia de dos numeros grandes(orden 1),2xnxn1, se le suma una cantidad de segundo orden,h2 an. Paraevitar esta fuente de error existe el metodoleapfrog.
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
47/140
Patricio Cordero Metodos Computacionales en Fsica 47
3.4.2. Estabilidad del metodo de Verlet
Seaxla solucion exacta de (3.4.2) con hfijo y definamos
xn= xn+ n
donde los representan desviaciones que se han introducido de alguna ma-nera que no interesa. La sustitucion de esta definicion en la ecuacion de Verletda
n+12 + h2 an
n+ n1=0 (3.4.4)
dondeanse escribio comoa( xn+ n) a( xn) + n an.
/*Verlet para orbita planetaria*/
#include
#include
#include
#define h 0.004
#define h2 h*h
#define largo 20000
FILE *archivo;
int ii;
double x[3],y[3];
void Inic() /*-----------------*/
{double vx,vy;
x[0] = 4.0;
vx = 0.0;
y[0] = 0.0;
printf("(ojo: 0.1
-
7/25/2019 metodos numericos apunte
48/140
Ecuaciones Difrenreciales Ordinarias 3.4. METODOS DE VERLET Y VARIACIONES
+
Im
Re
donde2R=h22. Se reemplaza n= 0 n lo que
inmediatamente conduce a
22(1R) + 1=0 (3.4.6)
cuyas raices son
=1R
R22R (3.4.7)
por lo quepuede ser complejo.
SiR=0entonces=1.SiR=1entonces
=
i.
SiR=2entonces= 1.SiR entonces=1RR
1 2
Rconcluyendose que+=0y que
= .En resumen, cuando Rcrece desde cero hasta infinito, +recorre prime-
ro la semicircunferienciaIm >0unitaria del plano complejo y luego avanzadesde += 1hasta +=0mientras que recorre primero la semicircun-ferienciaIm 2implica ||>1que garantiza inestabilidad.
Puesto queR= h2
2
2 , la condicionR 2corresponde a
h 2
y si se reemplaza = 2T
entonces la condicion es
h T
(3.4.8)
Otros casos: Si se trata de otras fuerzas que provienen de un potencialU(x), la cota maxima para hesta dada por el perodo mnimo, es decir, por lafrecuencia maxima, que es proporcional a
U(xmin).
Si bien de esta manera se obtiene estabilidad, eso no quiere decir que setenga confiabilidad, es decir, precision aceptable. Normalmente se debe usarunhbastante menor que el que garantiza estabilidad.
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
49/140
Patricio Cordero Metodos Computacionales en Fsica 49
3.5. Algoritmos simplecticos
3.5.1. Formulacion del problema
Las ecuaciones de movimiento de un sistema conservativo deNpartculaspuede escribirse en la forma
d
dt
rava
=
va
fa
(3.5.1)
dondea= 1,2, . . . ,Nyfaes la fuerza totalFasobre la partcula adividida por lamasa de ellama. Estas mismas ecuaciones pueden escribirse tambien usandoel operador Liouvileano,
La
va ra+a
fa va (3.5.2)
Ellas toman la formad
dt
rava
=L
rava
(3.5.3)
La solucion formal del movimiento entonces esra()va()
=eL
ra(0)va(0)
(3.5.4)
El problema es que esta operacion no puede hacerse en forma sencilla alguna.Sin embargo, si las fuerzas dependen solo de la posicion conviene escribir
eL =eA+B (3.5.5)
(donde A = ava ray B= a fa va) porque en tal caso el operador eA ac-tua solo sobre los vectores posicion, es una simple traslacion de la posicion,mientras que el operador eB actua solo sobre los vectores velocidad y es unatraslacion de velocidades, es decir,
eA
rava
=
ra+ va
va
, eB
rava
=
ra
va+ fa
(3.5.6)
Integrar el movimiento es no trivial porque
e(A+B) =eA eB
Una forma conocida de encontrar una solucion aproximada es
e(A+B)+O(3) =e
2
B eA e2
B (3.5.7)
Universidad de Chile Escuela de Ingeniera y Ciencias
-
7/25/2019 metodos numericos apunte
50/140
Ecuaciones Difrenreciales Ordinarias 3.5. ALGORITMOS SIMPLECTICOS
3.5.2. Construccion del algoritmo O(3)
A continuacion se muestra en detalle como actua el operador compuesto(3.5.7). El operador a la extrema derecha actua sobre (rn, vn):
rnv
n+12
=e
2
B
rnvn
=
rn
vn+2 f(rn)
=
rn
vn+2 fn
El siguiente operador actua sobre este resultado
rn+1v
n+12
= eA
rnv
n+12
=
rn+ vn+12
vn+12
=
rn+
vn+
2
fn
vn+
2
fn
= rn+ vn+
2
2 fn
vn+
2
2 f
n Y finalmente
rn+1vn+1
=e
2
B
rn+1v
n+12
=
rn+ vn +
2
2 fn
vn+2 (fn+fn+1)
Es directo comprobar que este ultimo resultado coincide con (??).
3.5.3. El jacobiano asociado
Por simplicidad se calcula el jacobiano asociado al algoritmo unidimencio-nal
xn+1 =rn+ vn +2
2 fn
vn+1 =vn+
2(fn+fn+1)
(3.5.8)
Se comprueba que
xn+1xn
= 1 +2
2
fnxn
xn+1vn
=
vn+1x
n
=
2 fnx
n
+fn+1x
n+1
xn+1x
n vn+1vn
= 1 +
2
fn+1xn+1
xn+1vn
Se comprueba trivialmente que
J=xn+1
xn
vn+1vn
xn+1vn
vn+1xn
=1
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
51/140
Patricio Cordero Metodos Computacionales en Fsica 51
3.5.4. Leapfrog
El problema se plantea como
vn+1
2=v
n 12 + h an
xn+1 =xn+ h vn+12
(3.5.9)
Si se toma la segunda ecuacion y se le resta otra replica de ella en la quese ha reemplazadon n1se obtiene (3.4.2) lo que demuestra que leapfroges O(h4)en lo que a la posicion se refiere.
Este metodo es ampliamente usado por su reconocida confiabilidad.
3.5.5. Algoritmos simplecticos de mas alto orden
Un teorema nos dice como construir algoritmos simplecticos de mas altoorden. Una familia de ellos toman la forma
e(A+B) +O(n+1) =
N
j=1
eajA ebjB , aqu se definen (3.5.10)
Esta forma general es muy importante porque es trivial demostrar que unatraslacion de posicion sin trasladar las velocidades o vice versa es una trans-
formacion con Jacobiano unitario:det (r,v )
(r,v ) =1. Esta propiedad es necesaria
y suficiente para que se conserve el volumen del espacio de fase, que es unapropiedad basica de las evoluciones hamiltoneanas.
Los coeficientes{aj, bj}se determinan exigiendo dos condiciones: que nsea maximal (es decir, minimizando el error por truncamiento) y que haya in-variancia a la inversion temporal. La primera exigencia se traduce en muchascondiciones dependiendo del valor de N. De todas esas condiciones la quesiempre se debe cumplir es
aj=1 , bj=1
Para ver como exigir invariancia temporal se debe recordar primero que
etA1 etA2 . . . etAK1 =etAK . . . etA2 etA1 (3.5.11)Cuando se expande (3.5.10) toma una forma como (3.5.11). Si se resume(3.5.11) comoU1(t) = V(t), simetra a la inversion temporal quiere decir queV(t) = U(t), lo que hace necesario que A1=AK,A2=AK1etc.
El algoritmo (3.5.7) 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
Universidad de Chile Escuela de Ingeniera y Ciencias
-
7/25/2019 metodos numericos apunte
52/140
Ecuaciones Difrenreciales Ordinarias 3.6. RECOMENDACION FINAL
D, 43, 105 (1990)]:(N= 4, n = 4, a1= 0, a2= a4= , a3= 12, b1= b4= 2 , b2=
b3=
1
2 )y= (221/3
)1
.Muchsimo mas sobre esto puede verse en el artculo de Omeyan, Mryglod
y Folk en Phys. Rev. E66, 026701 (2002) y en referencias que ah se citan.
3.6. Recomendacion final
Si fse puede evaluar rapidamente conviene usar RK4.
Si se necesita ir adaptando el paso tambien debe usarse RK4.
Si es una ecuacion de Newton conservativa se debe usar alguno de los
algoritmos simplecticos.
Si fes muy lento de evaluar conviene usar un metodo predictor corrector.
3.7. Problemas
1. Considere la ecuacion de un oscilador armonico forzado
x + 2x=Asin(kxt) (3.7.1)
Ella proviene de la ecuacion de una partcula cargada moviendose enun campo magnetico uniforme a lo largo del eje Zal que se superponeuna electrostatica plana que se propaga a lo largo del ejeX. Ver PhyscisToday de noviembre 1988, p27. Esencialmente la misma ecuacion esmencionada tambien en Physics Today, marzo 1987, p9.
2. Integrar la evolucion de la ecuacion de van der Pol
x= (1x2)xx (3.7.2)
Representa a un oscilador armonico mas un termino que podra repre-sentar un freno viscoso, pero para|x|
-
7/25/2019 metodos numericos apunte
53/140
Patricio Cordero Metodos Computacionales en Fsica 53
verticalmente con amplitud Ay frecuencia. Se puede demostrar que laecuacion para elanguloes
+ + 20sin = (2)2A
Lcos(2t)
donde20 = gL
,g =9,81yL =1m.
a) Tome A=0,07m, =0,1seg1, (0) =10o y (0) = 0y estudie laamplitud angular asintotica (t ) como funcion de la frecuenciaen el rango:0,9 1,1con = 0,001. (Amplitud angulares elvalor maximo que toma(t)).
b) TomeA = 0,3m, = 0,4seg1, (0) = 0y= 3seg1. Obtenga la evo-lucion de tanto cuando(0)esta alrededor de10o como cuandoesta alrededor de170o.
5. Modifique el algoritmo de Verlet original para el caso en que la ecuacionde movimiento bidimensional pueda tener una fuerza de roce viscosolineal,r= a(r) cv. Con ese nuevo algoritmo integre numericamente laorbita en el caso
a=k1r k2r2r (3.7.4)y tome k1=1, k2=0,05y c =0,1. Use condiciones iniciales (x=4,0,y=0,0), (vx=0,0, vy=1,0)y dibuje laorbita durante tiempo suficiente paraque corte al eje Xocho veces.
6. Estudie el movimiento de un pendulo plano, que en lugar de hilo tieneun resorte de constante elastica ky largo natural R. La masa del puntomaterial es m=1. Use coordenadas cartesianas para integrar usando elalgoritmo de Verlet. Las ecuaciones son
x = k(rR)xr
y = k(rR)yr
g
Use: k= 5, R= 4, g= 1, tome condiciones iniciales: (x= 0,y=Rg/k, vx=0,1, vy=0)e integre hastat=20. Calcule la evolucion del punto
material con RK4 y con Verlet usando el mismo dt= . Escoja este in-cremento de modo que ambos algoritmos den soluciones parecidas perodistinguibles (al menos en la parte final). Para hacer esta comparaciondibuje x(t), y(t)y y(x). Compruebe que usando un dtvarias veces maschico ambos algoritmos dan esencialmente la misma solucion. Cual delas dos soluciones originales estaba mas cerca de la solucion mas pre-cisa?
Universidad de Chile Escuela de Ingeniera y Ciencias
-
7/25/2019 metodos numericos apunte
54/140
Ecuaciones Difrenreciales Ordinarias 3.7. PROBLEMAS
7. Integre la ecuacion
r(t) =r
r3
directamente en coordenadas cartesianas (x(t),y(t))usando como con-diciones iniciales:
r(0) =2 v (0) =0,1j
En todos los casos integre hasta poco mas alla de completar una vueltay dibujando laorbita en el plano (x,y)usando N 5000aun cuando elresultado sea insatisfactorio.
Convierta las ecuaciones a un sistema de primer orden e integre usandoRK4.
8. Para obtener el algoritmo para integrar la evolucion de una cadena uni-dimensional de Nosciladores amortiguados usando Verlet se comienzacon las ecuaciones de movimiento del sistema conservativo. El lagran-geano del sistema (naturalmente sin amortiguar) es
L=N
a=0
mq2a2
N
a=1
k
2(qa+1qa)2 (3.7.5)
Aqu los qason las desviaciones del punto de equilibrio de cada oscilador.La ecuacion de movimiento generica es mqa= k(qa+1+ qa12qa)deah que si se agrega amortiguacion la ecuacion queda mqa= k(qa+1+ qa12qa)cqao equivalentemente
qa=2 (qa+1+ qa12qa)qa (3.7.6)
Al discretizar usando el algoritmo de Verlet se obtiene
qn+1a 2qna+qn1a2
= 2
qna+1+ qna12qna
qn+1a qn1a
2
El problema consiste en tratar dos medios: la interaccion entre las partcu-las de la 0 a laAesta caracterizada por un1y de laA +1hasta la ultimapor un2(pero se usara el mismo ). La partcula Aes la frontera entreambos medios y es la que satisface una ecuacion diferente.
Las partculas de la 1 a la A1interactuan igual que en el caso anterior.Lo mismo con las partculas de la A + 1en adelante.
qaA =22 (qa+1+ qa12qa)qa
(3.7.7)
y debe ser discretizada tomando esto encuenta. La partcula Aque hacede frontera, en cambio, satisface
qA=22qA+1+
21qA1 (21+ 22 )qAqA (3.7.8)
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
55/140
Patricio Cordero Metodos Computacionales en Fsica 55
y usted debe discretizarla siguiendo un patron semejamte al ya usado.
Considere a=0,1, .,500, es decir, 501 puntos, donde A=250, 21 =2,
22= 1y= 0,008. El puntoa = 0satisfaceq0(t) = sinttan solo si t 2,despues de eso permanece cero para siempre. Tome =0,1. El puntoa=500esta siempre quieto. De modo que lo que se debe evolucionarson las partculas a =1,2, . . . , 499. La condicion inicial es qa=0, qa=0.
Haga seis graficosqa(t)versusapara un tfijo (cada uno de los cuales re-presenta instantaneas del sistema) separadas por t=120seg. Es decir,el sistema ent=120,t=240.. hasta t=720. Para que quede mas cla-ro lo que representa cada figura, es mejor que dibuje lo dicho con lneasolida y con lnea mas debil o de puntos el estado del sistema unos 4segundos antes, de esa manera se vera el sentido de la evolucion.
Universidad de Chile Escuela de Ingeniera y Ciencias
-
7/25/2019 metodos numericos apunte
56/140
Condicones de borde y autovalores 3.7. PROBLEMAS
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
57/140
Captulo 4
Problemas de condiciones
de borde y problemas deautovalores
4.1. Introduccion
En este captulo se aprendera a resolver ecuaciones lineales de la forma
d2y
dx2
+ k2(x)y=S(x) (4.1.1)
donde S(x)es un termino inhomogeneo y k2 es una funcion real. Cuando k2
es positivo la solucion de la ecuacion homogenea (esto es, con S=0) sonoscilantes con numero local de onda k, mientras que cuando k2 es negativo lasolucion crece o decae exponencialmente con una tasa local
k2.Por ejemplo, si se busca el potencial electrostatico Vgenerado por una
distribucion de carga (r)se debe plantear la ecuacion de Poisson 2V =4 que, si hay simetra esferica, puede simplificarse a
1
r2d
dr
r2
dV
dr
=4 (4.1.2)
y si se hace la sustitucion estandarV(r) =(r)/rse llega a
d2
dr2 =4r (4.1.3)
que es de la forma (4.1.1) con k2 =0y S= 4r . Similarmente, el problemaradial asociado a la ecuacion de Schrodinger es
d2R
dr2 + k2(r)R=0, k2(r) =
2m
h2
E ( + 1)h
2
2m r2 V(r)
57
-
7/25/2019 metodos numericos apunte
58/140
Condicones de borde y autovalores 4.2. EL ALGORITMO DE NUMEROV
que tiene la forma (4.1.1) conS=0.
Ambos ejemplos podran ser resueltos con metodos ya vistos excepto quehay situaciones que complican tal metodologa. En estos problemas es tpicoque las condiciones de borde deban imponerse en puntos diferentesy, en elcaso de una ecuacion tipo Schrodinger, hay un problema de autovalores queresolver.
4.2. El algoritmo de Numerov
Expandiendoy(xh)hasta O(h6)se obtiene
yn+12yn+yn1=
yn+h2
12yIVn
h2 +O(h6) (4.2.1)
Por otro lado, tomando la segunda derivada de (4.1.1) resulta
yIVn = d2
dx2
k2y + Sn
= (k2y)n+1
2(k2y)n+ (k
2y)n
1
h2
+Sn+12Sn+ Sn1
h2 +O(h2) (4.2.2)
Esta expresion para yIVn y la expresion para la segunda derivada que da laecuacion original, (4.1.1) se sustituyen en (4.2.1) y se reordena, obteniendosela expresion basica para el algoritmo de Numerov:
1 +
h2
12k2n+1
yn+12
1 5h
2
12k2n
yn+
1 +
h2
12k2n1
yn1
= h2
12(Sn+1+ 10Sn+ Sn1) +O(h6) (4.2.3)
A partir de esta expresion se puede despejar ya seayn+1oyn1para tener unarelacion de recurrencia que resuelve hacia adelante o hacia atras la ecuacioncon un error O(h6). Notese que en cada paso de iteracion las funciones k2 y Sson llamadas una sola vez.
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
59/140
Patricio Cordero Metodos Computacionales en Fsica 59
4.3. Problemas de condiciones de borde
4.3.1. Integracion directa de un problema de condiciones deborde
Primer ejemplo:Se vera como resolver el caso especial de (4.1.3) en que ladensidad de carga tiene una forma exponencial,
d2
dr2 = r
2er (4.3.1)
Esto da= 18e
r que implica una carga total Q =
d3r=
r2 dr dcosd=1. Puesto que (r)es regular en el origen entonces (0) =0. Y por lo que sesabe de electrostatica la forma asintotica (r
) esV
Q/r=1/ry por tanto
=rVdebe tender a 1 en infinito,() =1.
Este problema se puede intentar resolver en la forma
n+1=2nn1+h2
12(Sn+1+ 10Sn+ Sn1) (4.3.2)
donde S= r2
er. Para proseguir se escoge un rmaxsuficientemente grandepara considerar que ya la solucion en ese valor tiene un valor asintotico muycercano a la unidad.
Para integrar se da inicialmente un valor arbitrario a 1= (h). El valor enrmaxva a depender del valor arbitrario dado a 1. Si se integra desde infinitohacia la izquierda partiendo del valor=1no se obtendra cero enr=0.
La rutina que usa (4.3.2) comienza con valores conocidos en un punto dela izquierda y otro central (y0y y1) para calcular los valores a la derecha. Elrango0 r rmaxes dividido en Nintervalos de largo h. La rutina toma comodatos iniciales conocidos los valores Sizq= S(r=0)y Scen= S(r= h)y luegoentra en un ciclo
for(k=2;k
-
7/25/2019 metodos numericos apunte
60/140
Condicones de borde y autovalores 4.3. PROBLEMAS DE CONDICIONES DE BORDE
(4.3.2) arroja, entonces, una solucion particular pque asintoticamente crecelinealmente conr, lo que no es trivial compatibilizar con la condicion() =1.
Una forma algo brutal de obtener la solucion buscada consiste en tomar uncierto valorrmaxcomo si ya fuese infinito y definir
(r) =p(r) +mp(rmax)
rmaxr (4.3.3)
donde mes el valor que deseamos imponer que tenga en r= rmax, ya queas es automatico que(0) =0y que(rmax) = m. En resumen, se integra im-poniendo tan solop(0) = 0y una vez que se tiene esta solucion numerica, quellamamosp, se calcula usando (4.3.3). Los valores que toma pdependendel valor arbitrario inicialmente dado a (h), pero ese efecto es borrado al usar(4.3.3). La forma lineal de repararla solucion tiene sentido tan solo porque la
solucion general de la ecuacion homogenea en este ejemplo es lineal.
Mas en general, para integrar cualquier ecuacion de la forma (4.1.1), conS=0, dadas las condiciones y(a) = yay y(b) = ybse puede comenzar desde
x=ahacia la derecha, obteniendose una funcion yque satisface la ecuacion yla condicion de borde enx = a. Por otro lado se usa una solucion de la ecuacionhomogenea,yh(x)que en x =asatisfagayh(a) =0. Con ye yhse construye lafunciony(x)buscada utilizando la expresion
y(x) =y(x) +yb y(b)
yh(b) yh(x) (4.3.4)
Es facil comprobar que en efecto esta funcion y(x)satisface ambas condicio-nes de borde. Ademas fue construida como combinacion lineal de una solu-cion particular yde la ecuacion inhomogenea y una solucion de la ecuacionhomogenea, lo que garantiza que yes solucion de la ecuacion lineal original.
En los casos en que b= se debe escoger un xmax. En tales casos esdelicado escoger el valor que debe colocarse en lugar de yben la expresionanterior. Lo mas sano es estudiar el comportamiento asintotico analtico dela solucion, descrito por una funcion yasinte imponer que y(xmax) =yasint(xmax).Por ejemplo, resolviendo (4.3.1), en lugar de tomar m=1en (4.3.3) se puedeprimero ver que la forma asintotica debe ser de la forma 1 + x ex y con-sistencia en x requiere que = 1
2, entonces es conveniente usar m =
1 xmax2 e
xmax .
Al integrar hacia la derecha desde x= ase debe dar un valor arbitrario ay(a + h). Debe ponerse cuidado con el valor que se escoja para evitar que ypueda tomar valores muy grandes y en general debiera ser y(a) +O(h). Deotro modo, los dos terminos en (4.3.4) seran muy grandes de signo opuesto yla soluciony(x)resultara poco confiable.
- En algunos problemas suele ser mas conveniente integrar de derecha aizquierda.
version de 14 de julio de 2009 Facultad de Ciencias Fsicas y Matematicas
-
7/25/2019 metodos numericos apunte
61/140
Patricio Cordero Metodos Computacionales en Fsica 61
- Si las soluciones de la ecuacion homogenea son muy dispares, este meto-do puede no ser muy preciso.
4.3.2. Uso de funcion de Green
Este es un caso que hace uso marginal del algoritmo de Numerov, perose intercala por ser otra forma de atacar algunos problemas de condicionesde borde. Cuando las soluciones de la ecuacion homogenea tienen comporta-mientos muy diferentes los metodos