+ All Categories
Home > Documents > metodos numericos apunte

metodos numericos apunte

Date post: 25-Feb-2018
Category:
Upload: 130quinteros
View: 250 times
Download: 4 times
Share this document with a friend

of 140

Transcript
  • 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


Recommended