40
Cap´ ıtulo 7. Preliminares (M´ etodos Num´ ericos) 1. Objetivo de esta parte del curso. (a) Computaci´on cient´ ıifica es fundamental hoy en d´ ıa. (b) Tiene mucho de arte. (c) Ganar intuiciones, ver algunos ejemplos b´asicos, revisar algunas dificultades o errores usuales. (d) De cada t´ opico se podr´ ıa hacer un curso entero, nosotros s´olo vamos a rozar la superficie, para dar un conocimiento amplio, general, y tener elementos para profundizar cuando sea necesario. (e) Los n´ umeros no son n´ umeros. 2. Un problema sencillo: determinar si dos vectores son ortogonales. 3. Matem´ aticamente sabemos resolver el problema, deber´ ıa ser sencillo implementarlo. 4. ortogonal.cc 5. N´ umeros enteros: (1,0,0), (0,0,1). No hay problemas. 6. N´ umeros reales: Ingrese el primer vector : 1.5 2.5 0 Ingrese el segundo vector : 0.6 -0.36 0 Son ortogonales 7. Multiplicar por un factor global no deber´ ıa afectar la ortogonalidad: Ingrese el primer vector : 1.5e-5 2.5e-5 0 Ingrese el segundo vector : 0.6e-5 -0.36e-5 0 Son ortogonales 8. Pero si usamos n´ umeros m´ as chicos: Ingrese el primer vector : 1.5e-20 2.5e-20 0 Ingrese el segundo vector : 0.6e-20 -0.36e-20 0 No son ortogonales 1

Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

Capıtulo 7. Preliminares (Metodos Numericos)

1. Objetivo de esta parte del curso.

(a) Computacion cientıifica es fundamental hoy en dıa.

(b) Tiene mucho de arte.

(c) Ganar intuiciones, ver algunos ejemplos basicos, revisar algunasdificultades o errores usuales.

(d) De cada topico se podrıa hacer un curso entero, nosotros solovamos a rozar la superficie, para dar un conocimiento amplio,general, y tener elementos para profundizar cuando sea necesario.

(e) Los numeros no son numeros.

2. Un problema sencillo: determinar si dos vectores son ortogonales.

3. Matematicamente sabemos resolver el problema, deberıa ser sencilloimplementarlo.

4. ortogonal.cc

5. Numeros enteros: (1,0,0), (0,0,1). No hay problemas.

6. Numeros reales:

Ingrese el primer vector : 1.5 2.5 0

Ingrese el segundo vector : 0.6 -0.36 0

Son ortogonales

7. Multiplicar por un factor global no deberıa afectar la ortogonalidad:

Ingrese el primer vector : 1.5e-5 2.5e-5 0

Ingrese el segundo vector : 0.6e-5 -0.36e-5 0

Son ortogonales

8. Pero si usamos numeros mas chicos:

Ingrese el primer vector : 1.5e-20 2.5e-20 0

Ingrese el segundo vector : 0.6e-20 -0.36e-20 0

No son ortogonales

1

Page 2: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

9. Diagnostico: entregar el resultado de a*b, para el ultimo caso:

No son ortogonales

1.01958e-56

10. El problema, entonces, es que el cero no es realmente cero.

11. Ojo: precision numerica. Esto tiene que ver conque un numero realdebe ser representado por un numero finito de bits, y ello da una pre-cision finita.

12. En general, uno puede representar numeros reales, en base b (2 o 10),como:

(−1)s · c · bq .

s: signo, c: significante, q: exponente.

Ej: s = 1, c = 12345, q = −3, el numero es 12.345.

13. Como no podemos poner infinitos numeros en el significante, ello impiderepresentar numeros reales con demasiados decimales.

14. Lo anterior lleva a los llamados errores de escala.

15. Por ejemplo, cuando debemos calcular con numeros chicos.

Ejemplo: Calcular el radio de Bohr (tamano del atomo de hidrogeno,

aproximadamente) a0 =4πε0h

2

mee2= 5.3× 10−11 m.

16. bohr.cc

17. El calculo en MKS, ingenuo, da nan. El problema es que el numeradory el denominador son demasiado pequenos, y ello hace que sobrepasenla capacidad de la maquina de manejarlos.

18. Lo anterior se soluciona si usamos otro sistema de unidades, donde lasmagnitudes fısicas tengan numeros menos extremos. Son las llamadas

unidades naturales. Por ejemplo: a0 =h

mcα, con α =

4πε0e2

≃ 137.036

19. bohr_natural.cc

20. Tambien hay problemas con numeros grandes: factorial

2

Page 3: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

21. Tres maneras diferentes de calcular el factorial: factorial.cc

22. Comparar con octave. Estos metodos solo sirven hasta n = 12.

23. Podemos usar un metodo aproximado para evaluar numeros demasiadograndes: Stirling. stirling_simple.cc

24. Un metodo mas refinado, en que nosotros encontramos la mantisa y elexponente: stirling.cc

25. Tambien estan los llamados problemas de redondeo. Ej: calcular laderivada como una diferencia finita: derivada.cc

3

Page 4: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

Interpolacion

1. Interpolacion de dos puntos: recta que los une.

(a) Interpolacion lineal

(b) Interpolacion por parabola

2. ¿Para tres puntos? Una cubica. Hay varios modos de escribir el poli-nomio. Una de ellas es el polinomio de interpolacion de Lagrange:

p(x) =(x− x2)(x− x3)

(x1 − x2)(x1 − x3)y1+

(x− x1)(x− x3)

(x2 − x1)(x1 − x3)y2+

(x− x1)(x− x2)

(x3 − x1)(x3 − x2)y3

3. Notar que p(xi) = yi, y que es cubico.

4. Interpolacion de Lagrange

(a) Tomemos tres puntos pertenecientes a una parabola. curva.cc,[3, 8], 3 puntos, (a, b, c) = (1, 2, 3) La salida es curva.dat, quetiene los puntos calculados, y curva_N.dat, el numero de puntoscalculados.

(b) Grafiquemos: graficar_curva.m

(c) lagrange_3_puntos.cc: Toma los datos de la curva generadaanteriormente, y caclula la curva interpolada.

(d) Graficar: graficar_interpolacion.m

(e) Excelente.

(f) Se puede generalizar el procedimiento para utilizar mas puntos.

(g) Version generalizada: lagrange.cc

(h) Volver a correr curva.cc, generando la misma secuencia de puntosanteriores, con 3 puntos

(i) lagrange.cc, graficar_interpolacion.m. Todo bien.

(j) Ahora con 10 puntos: curva.cc, lagrange.cc, graficar_interpolacion.cc.Todo bien.

(k) 30 puntos: Los extremos se estropean horriblemente.

4

Page 5: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

(l) Este es un problema conocido: en realidad, la curva interpoladapresenta oscilaciones, que eventualmente se amplifican. El poli-nomio de Lagrange asegura, por construccion, que la curva va apasar por los puntos de referencia, pero no se puede asegurar quela interpolacion tenga sentido a medida que el numero de nodos

N crece.

(m) Como el problema es en los extremos, una solucion posible estomar mas nodos cerca de ellos, para que el ajuste sea mejor enesa zona. En otras palabras, utilizar nodos no equidistantes.

(n) Una estrategia son los nodos de Chebyshev. Si queremos escogerN puntos no equiespaciados en [−1, 1] podemos hacerlo tomandolos valores del coseno en [0, π]:

xi = cos

(

2i− 1

2Nπ

)

, i = 1, . . . N .

Notemos que los puntos del argumento estan separados por ∆t =π/N , t1 = π/2N), tN = (2N − 1)π/2N , de modo que cuandoN → ∞, t1 = 0 y tN = π, y x1 = 1 y xN = −1.

xi, entonces, resultan ser N puntos diferentes, acumulados en losbordes (que es precisamente donde la interpolacion de Lagrangefalla).

(o) Para un arbitrario [a, b] general, y si queremos que queden orde-nados de menor a mayor:

xi =1

2(a+ b) +

1

2(b− a) cos

(

2i− 1

2Nπ

)

Con −(b−a) frente al coseno quedan ordenados de menor a mayor,y esa es la forma que usamos.

(p) Generamos un conjunto de datos a interpolar, como antes, peroahora los tomamos segun los nodos de Chebyshev: curva_chebyshev.cc

(q) Los datos quedan en curva_chebyshev.dat, y el numero de pun-tos en curva_chebyshev_N.dat

(r) Calculamos la interplacion, con el mismo codigo, pero tomandolos nuevos nodos: lagrange_chebyshev.cc

(s) graficar_interpolacion.m. ¡Perfecto!

5

Page 6: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

5. Splines

(a) Otra solucion al problema: Hacer interpolacion polinomial entrepuntos sucesivos, y conectar polinomios contiguos suavemente.

(b) Estas “curvas polinomiales a pedazos” (piecewise) se conocen comosplines.

(c) Los polinomios de interpolacion van a tener un determinado grado.Se dice que el grado de la curva spline (n) es el mayor de los gradosde dichos polinomios

(d) Los puntos entre los cuales se hace la interpolacion son puntos de

control

(e) Sera derivable n− 1 veces en todos sus puntos (en particular, lospuntos de union de los polinomios).

(f) Si se usan intervalos de igual longitud: spline uniforme. Diferentelongitud: spline no uniforme.

(g) Ejemplo: spline cubica: splines.pdf

i. Hacer una curva arbitraria, entre x0 y xN

ii. 10 puntos de control (2 en los extremos)

iii. Los polinomios “elementales” son cubicos:

fi(x) = ai + bix+ cix2 + dix

3 , xi ≤ x ≤ xi+1 .

4 coeficientes a determinar.

iv. Son 9 intervalos, en cada uno una cubica: 36 incognitas.

v. Continuidad (las curvas pasan por los puntos de control):

fi(xi) = yi

fi(xi+1) = yi+1

2*8=16 ecuaciones para los puntos interiores

f1(x0) = y0

f9(x10) = y10

2 ecuaciones para los extremos.En total, 18 ecuaciones

6

Page 7: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

vi. Primera derivada continua: 8 ecuaciones

vii. Segunda derivada continua: 8 ecuaciones

viii. Llevamos 18+16=34 ecuaciones

ix. Dos ecuaciones adicionales. Por ejemplo, fijar la primeraderivada en los extremos a un valor dado.

x. La “spline cubica natural” se obtiene imponiendo que la cur-vatura (segunda derivada) en los extremos sea cero.

xi. Ejemplo explıcito con tres puntos

7

Page 8: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

Ecuaciones diferenciales ordinarias

1. Necesitamos una estrategia para calcular la derivada.

2. Derivada derecha o adelantada

(a)

f(t+ τ) = f(t) + τf ′(t) +τ 2

2f ′′(t) + · · ·

f(t+ τ) = f(t) + τf ′(t) +τ 2

2f ′′(ζ) ,

con t < ζ < t+ τ .

(b)

f ′(t) =f(t+ τ)− f(t)

τ− τ

2f ′′(ζ) .

3. No conocemos τ , ası que truncamos.

4. Error de truncamiento (diferente al error de redondeo)

5. Notacion O(τ). (Carta Donald Knuth.)

6. Error lineal en τ .

7. Metodo de Euler.

(a) Notacion tn = nτ , f(tn) = fn.

(b)

~vn+1 = ~vn + τ~an

~rn+1 = ~rn + τ~vn

(c) proyectil_euler.cc (dt = 0.1, 0.01,0.001)

(d) plot_proyectil_euler.m

(e) Error disminuye con dt, pero el crecimiento sigue siendo lineal

8. Metodo de Euler-Cromer.

8

Page 9: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

(a)

~vn+1 = ~vn + τ~an

~rn+1 = ~rn + τ~vn+1

(b) Error de truncamiento tambien O(τ 2).

(c) proyectil_euler_cromer.cc (dt = 0.1, 0.01,0.001)

(d) plot_proyectil_euler_cromer.m

(e) Error es marginalmente menor que con Euler

9. Metodo del Punto Medio.

(a)

~vn+1 = ~vn + τ~an

~rn+1 = ~rn + τ~vn+1 + ~vn

2

(b) Resulta

~rn+1 = ~rn + τ~vn +1

2~anτ

2

(c) Error de orden τ 2 en posicion, τ 3 en velocidad.

(d) proyectil_punto_medio.cc (dt = 0.001)

(e) plot_proyectil_punto_medio.m

(f) Error es manifiestamente menor que con Euler y Euler-Cromer

10. Eleccion de τ . Escala en que el movimiento es lineal.

11. Sugerencia: probar distintos valores de τ (adaptativo)

12. Derivada centrada. (p. 262 pdf)

(a) Error de truncamiento O(τ 2).

(b) Segunda derivada centrada

13. Metodo del salto de la rana (leapfrog)

(a) Derivada centrada para velocidad, centrada en t = 0.

9

Page 10: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

(b) Derivada centrada para posicion, centrada en t = τ (porque laderivada para velocidad depende de ~v(t+τ), y para que la derivadapara la posicion la tome, es necesario usar ese centramiento para~r.

(c) Se necesita un primer valor para iniciar el metodo. Ejemplo: Eulerhacia atras para calcular ~v−1

(d) proyectil_leapfrog.cc (dt = 0.001)

(e) plot_proyectil_leapfrog.m

(f) Ventaja: conservacion de energıa

14. Metodo de Verlet

(a) Derivada centrada para velocidad.

(b) Segunda derivada centrada para posicion.

(c) ~r−1 = ~r0 − τ~v0 +τ2

2~a(~r0) para iniciar.

(d) proyectil_verlet.cc (dt = 0.001)

(e) plot_proyectil_verlet.m

(f) Ventaja: menor error de truncamiento

(g) Si la fuerza no depende de la velocidad, no se requiere calcular lavelocidad

15. Mencionar: velocity Verlet (aceleracion independiente de velocidad,pero el algoritmo considera la velocidad en el calculo), Martys y Moun-tain (aceleraciones dependientes de la velocidad).

16. Ejemplo: Perıodo pendulo, conservacion energıa.

(a) Euler: angulo pequeno, perıodo razonable, mal amplitud

(b) Euler: angulo pequeno, perıodo razonable, mal amplitud, vigi-lando energıa

(c) Euler: angulo pequeno, mejora con paso de tiempo mas pequeno,no perfecto

(d) Verlet: angulo pequeno, bien amplitud y perıodo.

(e) Verlet: angulo grande, bien amplitud y perıodo.

10

Page 11: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

17. Ejemplo: Orbita planetaria. (p. 283 pdf)

(a) Euler: no se cierra, energıa no constante.

(b) Euler-Cromer: se cierra, energıa constante.

(c) Euler-Cromer: problemas con orbita muy elıptica (mitad de ve-locidad inicial).

(d) Euler-Cromer: mejora bajando el paso de tiempo, precesion.

18. Runge-Kutta segundo orden

(a) Tipo “Euler” (Sec. 9.2.1)

(b) Ejemplo en 1 dimension: edo_rk2.cc

(c) Ejemplo en 2 dimensiones, Euler vectorizado: pendulo_vector_euler.cc

(d) Pendulo con RK2: 13_pendulo_rk2.cc

(e) Tipo “Punto medio” [Ecs. (9.23) y (9.24)]

(f) Caso general [Ecs. (9.25)-(9.29)]

19. Runge-Kutta cuarto orden (Sec. 9.2.3)

(a) Pendulo con RK4: 14_pendulo_rk4.cc

(b) Con 200 iteraciones, se ve igual. Con 2000, RK4 es mejor.

(c) Orbita circular: no hay precesion, se conserva muy bien la energıa(Fig. 9.6): 15_orbita_rk4.cc

(d) Mejora harto para la orbita muy elıptica

20. Runge-Kutta adaptativo (Sec. 9.3)

(a) Figs. 9.7, 9.8

21. Predictor-corrector

(a) Filosofıa general

(b) Caso sencillo: metodo de Euler trapezoidal. Igual a segundaformula para RK2. x∗ es el predictor, y el segundo paso, paracalcular x(t) [ec. (9.23)] es el corrector. Excepto que el segundo

11

Page 12: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

termino es iterado [el valor obtenido es considerado un nuevo pre-dictor, y se vuelve a usar la formula (9.23)], hasta que converge:

yp0 = yi + τf(ti, yi)

yp1 = yi +τ

2(f(ti, yi) + f(ti+1, y

p0))

yp2 = yi +τ

2(f(ti, yi) + f(ti+1, y

p2))

...

ypn = yi +τ

2(f(ti, yi) + f(ti+1, y

pn)) ,

hasta que los valores sucesivos de ypn no varıan mucho entre sı:|ypn − ypn+1| ≤ ε. Entonces se toma yi+1 = ypn.

12

Page 13: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

Numeros aleatorios

1. “The generation of random numbers is too important to be left tochance” (Robert R. Coveyou, Oak Ridge National Laboratory)

2. Builtin: rand()

(a) Numero aleatorio entre 0 y RAND_MAX

(b) Ejemplo sencillo.

builtin.cc

(c) Test de aleatoriedad. Distribucion uniforme, pocos puntos.

builtin_distribution_small.cc

(d) Test de aleatoriedad, muchos puntos.

builtin_distribution.cc

(e) Tecnica de generacion. Numero seudoaletorio:

Ij+1 = aIj + c mod m ,

con m el modulo, a el multiplicador, y c el incremento. Si c 6= 0,esto es un LGC (linear congruential generator). Si c = 0, unMLGC (multiplicative LGC ). I0 es la semilla.

(Hacer dibujo para tener intuicion.)

Si se usa un periodo muy grande, esto, en la practica, se ve comoun numero aleatorio.

(f) Ventaja: repetibilidad de la secuencia (importante para simula-ciones, en caso de que se quiera generar exactamente la mismasimulacion en un tiempo posterior). Desventaja: repetibilidad dela secuencia.

builtin_repeat.cc

(g) Se repite despues de 2888000745 iteraciones.

(h) Cambio de semilla, para cambiar la secuencia.

builtin_seed.cc

3. Builtin (mejor algoritmo, mas portable): random()

13

Page 14: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

(a) The random() function uses a non-linear additive feedback random

number generator employing a default table of size 31 long

integers to return successive pseudo-random numbers in the range

from 0 to RAND_MAX. The period of this random number generator

is very large, approximately 16*((2**31)-1).

4. Mejora: Semilla aleatoria. azar.h

(a) azar_example.cc

5. Pool de entropıa. La idea es usar como fuente de numeros aleatoriosefectos impredictibles disponibles para un computador (ruido termico,efectos cuanticos, etc.), que son convertidos en una senal electrica yluego a un numero aleatorio. Son tıpicamente usados como semillapara un generador seudoaleatorio.

Se mantiene un pool de entropıa de bits aleatorios, que se va refrescandoo aumentando a medida que se necesita o aparezcan eventos (por ejem-plo, presionar una tecla). En Linux, /dev/random es un generadorde numeros aleatorios, gracias a que puede acceder a ruido ambienteobtenido de otros dispositivos.

6. Otros metodos mas modernos de generar numeros aleatorios, por ejem-plo, xorshift de 64 bits: Si x 6= 0 es un entero, alojado en 64 bits. Seeligen ciertos numeros a1, a2 y a3, y se realizan las siguientes opera-ciones:

x1 = x ∧ (x >> a1)

x2 = x1 ∧ (x1 << a2)

x3 = x ∧ (x2 >> a3)

o bien

x1 = x ∧ (x << a1)

x2 = x1 ∧ (x1 >> a2)

Con ai adecuados, se puede tener un generador de perıodo 264 − 1 ≃1.8× 1019. Ej.: a1 = 21, a2 = 35, a3 = 4.

∧ es el XOR logico

14

Page 15: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

<< (>>) es el desplazamiento de bits hacia la izquierda (derecha):

00101 << 1 = 01010, 00101 >> 1 = 10010

7. Combinar metodos.

8. Librerıas disponibles.

9. GSL, distribucion uniforme y gaussiana

(a) random_number.cc

(b) plot_random_number.m

10. Clase a partir de GSL

(a) random_class_example.cc

11. Distribucion arbitraria

(a) Rejection method

i. Se escoge una funcion para generar la distribucion, f(x).

ii. Se escoge un valor de x al azar, de una distribucion uniforme.

iii. Se toma un valor de y al azar, de una distribucion uniforme.

iv. Si y < f(x) (esta por debajo de la curva), se acepta x comoun numero aleatorio. En caso contrario, se rechaza.

v. Resultado: Los x para los cuales f(x) es muy alto son favore-cidos, en desmedro de aquellos con f(x) pequeno. En prome-dio, x sera seleccionado un numero f(x) de veces (porque y seescoge de distribucion uniforme), y por tanto la distribucionde probabilidad de x tendra justo la forma de f(x).

(b) random_distribucion.cc

(c) plot_random_distribution.m

15

Page 16: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

Sistemas de ecuaciones lineales

1. Regla de Cramer

(a) Sistematica, poco eficiente

2. Eliminacion Gaussiana (Sec. 10.1.2)

3. Pivoteo (Sec. 10.1.3)

4. Determinante (Sec. 10.1.4)

5. Matriz inversa (Sec. 10.2)

16

Page 17: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

Sistemas de ecuaciones no lineales

1. Problema mas difıcil, sin embargo existen diversos algoritmos utiles.Pensemos primero en una dimension, y en la siguiente funcion:

f(x) = 5t3 − 2t cos(t/5) .

2. plot_funcion.m

3. Ceros en ≃ −0.6, 0, 0.6.

4. Tratemos de buscar el cero a la derecha del origen.

5. Primera idea: Reticulado en busqueda de un cero. Desventaja, posi-blemente lento si el cero esta lejos del extremo de donde partimos.

6. Biseccion

(a) Refinamiento de la idea anterior.

(b) biseccion.cc

(c) Ventaja: no falla

(d) Desventaja: necesita que haya un solo cero en el intervalo (y quela funcion sea continua)

7. Newton

(a) Explicar (Sec. 10.3.1)

(b) newton.cc

(c) Ventaja: rapidez de convergencia

(d) Desventajas: necesita derivada, problemas cerca de un cero de laderivada, cuenca de atraccion no garantizada. La semilla se puededisparar. Comparar x0 = .8, .1,−.5 en newton.cc. La primerallega al cero de la derecha, la seguna al origen, y la tercera al cerode la izquierda

(e) Cuenca de atraccion

8. Secante

(a) secante.cc

17

Page 18: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

(b) Como Newton, pero la derivada calculada con diferencia finita.

(c) Ventaja: analogo a Newton, un poco mas lento solamente, nonecesita derivada

(d) Desventaja: necesita dos semillas iniciales

9. En general, lo usual es combinar algoritmos: biseccion para una busquedasegura, luego Newton para un refinamiento muy rapido.

10. Para varias variables, se puede generalizar el metodo de Newton. (Sec.10.3.2)

11. Finalmente, hacemos notar que todos los problemas de optimizacionson equivalentes a este.

18

Page 19: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

Regresion lineal

1. Si tenemos un conjunto de datos, que queremos ajustar por una curva,una alternativa serıa la interpolacion. Sin embargo, en ese caso debe-mos hacer pasar una curva por todos los puntos dados, lo cual introduceproblemas como vimos con el polinomio de Lagrange. Por otro lado,puede que sepamos que los datos correspondan a un fenomeno lineal,pero debido a incertezas experimentales o ruido proveniente de otrasfuentes los puntos no caigan exactamente a una recta. ¿Como podemosajustarlos a una recta con el menor error posible?

2. Por ejemplo, tomemos f(x) = 3.5x− 1.1.

3. Generemos puntos sobre esta recta, con un cierto error anadido, e in-tentemos ajustarlo de vuelta: lineal.cc, plot_data.m

4. Mınimos cuadrados, con error (Sec. 11.1.2)

5. Caso particular: ajuste lineal (Sec. 11.1.3)

6. lineal_ajuste.cc, plot_data_ajuste.m

7. Algunos problemas se pueden convertir en un problema lineal:

8. Ajuste semilog:

y = Aeαx

ln y = lnA+ αx

9. Ajuste log-log:

y = Axα

ln y = lnA+ α ln x

10. Caso general (Sec. 1.11.4)

11. Ejemplo: Ajuste polinomial

12. Un ajuste por una funcion es tambien un problema de optimizacion.Otros metodos mas refinados de ajuste se pueden utilizar empleandotecnicas mas refinadas de optimizacion (redes neuronales, algoritmosgeneticos, CSA)

19

Page 20: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

Integracion (cuadratura)

1. Nombre: los griegos entendıan que calcular un area correspondıa aconstruir (geometricamente) un cuadrado que tenga la misma superficieque la buscada.

2.

I =

∫ π

0

dtf(t) =

∫ π

0

dt

(

t2

2− 6 + cos2 t

)

=t3

6− 6t+

(

t

2+

sin(2t)

4

)∣

π

0

= π

(

π2

6− 11

2

)

= −12.1110468146939

3. plot_function.m

4. Estrategia: subdividir el intervalo [a, b] en puntos xi, con x0 = a, xN =b, y evaluar la funcion solo en fi = f(xi).

5. Metodo mas sencillo: aproximar por barras de altura f(xi) (o f(xi+1)).Equivale a una integral de Riemann superior o inferior, deberıan seriguales a la integral en el lımite N → ∞.

6. Mejor idea: Regla trapezoidal (Sec. 12.2)

(a) Trazar lıneas rectas entre fi y fi+1. El resultado son trapecios envez de rectangulos.

(b) En general, para puntos no equidistantes, se calculan las areas delos trapecios y se suman.

(c) Puntos equidistantes: expresion mas sencilla, equivalente a la ideaingenua, pero con rectangulos de altura (fi + fi+1)/2, algo asıcomo el algoritmo de punto medio para ecuaciones diferencialesordinarias.

(d) trapezoidal_idea.cc: I=-12.11078843, bastante bueno

(e) El codigo se puede optimizar, haciendo algun trabajo analıticosobre la suma de areas [Ec. (12.2)]

20

Page 21: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

i. trapezoidal.cc: N = 100, 200, 300, setprecision

ii. N = 200: I=-12.11098222

iii. N = 300: I=-12.11101811

7. Interpolacion por polinomios (Sec. 12.3)

(a) No equiespaciados: Polinomio de interpolacion por diferencias di-vididas de Newton

(b) Equiespaciados: Formula de interpolacion hacia adelante de Newton-Gregory

(c) Si se usa la formula de Newton-Gregory hasta primer orden en∆, lo que significa interpolar entre dos puntos por una recta, serecupera la regla trapezoidal [Sec. 12.4, Ecs. (12.5) y (12.7)]

8. Regla de Simpson

(a) Newton-Gregory, con tres puntos [Sec. 12.4, Ecs. (12.6) y (12.8)]

(b) simpson.cc

(c) El error es mas grande que con trapezoidal, por la misma razon queun polinomio de grado mayor no asegura una mejor aproximacion.

9. Error regla trapezoidal [Sec. 12.4, Ec. (12.9)]

10. ¿Cuantas subdivisiones? Achicar el intervalo, y ver si la integral cambiasu valor.

11. Romberg se inspira en esta estrategia (Sec. 12.5)

(a) Regla trapezoidal, dividiendo por dos la separacion entre puntos.Esto permite que no se tengan que recalcular todos los puntos,solo los intermedios.

(b)

IT (h3) =1

2h3[f(a) + f(b)] + h3f(a+ h3) + h3f(a+ 2h3) + h3f(a+ 3h3)

=1

2

1

2h2[f(a) + f(b)] +

1

2h2f(a+ h2) + h3f(a+ h3) + h3f(a+ 3h3)

=1

2IT (h2) + h3f(a+ h3) + h3f(a+ 3h3)

21

Page 22: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

¿Cuantos terminos adicionales?

Para h4 = h3/2, habra terminos f(a + h4), f(a + 2h4), . . . f(a +6h4), f(a + 7h4). Todos los pares se escribiran como f(a + kh3),y formaran IT (h3). Quedaran solo los impares, f(a + h4), f(a +3h4), f(a + 5h4), f(a + 7h4). 4 terminos adicionales. Entonces,para h1 son 0, para h2 son 1 = 20, para h3 son 2 = 21, para h4 son4 = 22. En general, para hn son 2n−2.

En general, entonces,

IT (hn+1) =1

2IT (hn) + hn

2n−2

i=1

f(a+ (2i− 1)hn)

(c) Podemos utilizar este metodo recursivo hasta que converja. Unamejor idea es construir la matriz triangular (12.13)–(12.15).

(d) En una fila, el primer termino es la regla trapezoidal recursiva, lasegunda columna es eso, menos el termino h2 del error, la siguientecolumna le resta a eso el termino h4 del error, etc.

(e) romberg.cc,

i. Con 7 filas uno ya tiene 8 decimales correctos.

(f) Calculo de la funcion error: romberg_erf.cc

(g) El algoritmo se puede hacer adaptativo, deteniendolo cuando sealcance una precision dada.

12. Cuadratura de Gauss

(a) Todas las reglas anteriores significan aproximar la integral por elintegrando evaluado en ciertos puntos, multiplicado por ciertoscoeficientes.

(b) Distintas reglas tienen que ver con distintos pesos.

(c) Idea: elegir tambien distintas abscisas.

(d) Elegir puntos no equidistantes, y pesos adecuados

(e) Gauss-Legendre ([−1, 1]), Gauss-Laguerre ([0,∞])

(f) La idea es que una aproximacion del tipo

∫ b

a

W (x)f(x) dx ∼N∑

j=1

wjf(xj) .

22

Page 23: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

podrıa ser exacta si f(x) es un polinomio, si escogemos adecuada-mente los pesos.

Por ejemplo,∫ 1

−1

exp(− cos2 x)√1− x2

dx,

nos sugerirıa una cuadratura de Gauss basada en elegir

W (x) =1√

1− x2

Definiendo g(x) = W (x)f(x), vj = wj/W (xj), se puede reescribir

∫ b

a

g(x) dx ≃N∑

j=1

vjg(xj) ,

desaparece aparentemente W (x), pero esta implıcita en la eleccionde los pesos. Y por la forma de W (x), funciones que sean justopolinomios por W (x) van a resultar muy bien ajustadas, porqueel lado derecho va a ser exacto, o muy bueno, y funciones de otraforma no van a ser tan bien aproximadas.

(g) Ejemplo: Gauss-Legendre (Sec. 12.6)

i. Mapear intervalo [a, b] a [−1, 1].

ii. Abscisas xi: ceros de los polinomios de Legendre

iii. Pesos wi: Ec. despues de (12.18)

iv. Tabla 12.1

v. Calculo funcion error: Ecs. (12.22)–(12.24)

(h) Problema de cuadraturas: mayor numero de puntos (mayor ordende la aproximacion) no significa necesariamente mayor precision.Similar al problema del polinomio de Lagrange.

13. Montecarlo

(a) Area bajo la curva, encerrada en un rectangulo.

(b) Elegir numeros al azar, ver cuantos caen bajo la curva.

(c) La proporcion de puntos que caen bajo la curva, multiplicada porel area del rectangulo, es la integral.

23

Page 24: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

(d) montecarlo.cc (Cuidado con los signos)

(e) Problema: converge muy lentamente.

(f) N = 100, N = 200, N = 300. . .

(g) N = 1000000, 2 decimales correctos.

(h) Ideal para integrales multidimensionales (area del cırculo).

24

Page 25: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

Sort

1. Bubble sort

(a) Recorre la lista completa, intercambia dos consecutivos cuandoestan en orden incorrecto.

(b) bubble.cc

(c) Sencillo, muy lento, no recomendable

(d) O(n2)

2. Selection sort

(a) Encuentra el mınimo, lo pone en la primera posicion. Repite conla parte no ordenada.

(b) selection.cc

(c) Sencillo, lento.

(d) O(n2)

3. Insertion sort

(a) Revisa cada elemento y lo inserta en la posicion correcta en laparte ordenada de la lista.

(b) No tan ingenuo

(c) insertion.cc

(d) Bueno para listas casi ordenadas o de pocos elementos.

(e) O(n2)

4. Mergesort

(a) John von Neumann, 1945

(b) Dividir en aproximadamente la mitad

(c) Ordenar cada sublista recursivamente, aplicando este mismo algo-ritmo.

(d) Mezclar listas adyacentes ordenadas (el primer elemento de cadasublista es con seguridad el mınimo, luego solo hay que compararlos primeros elementos de cada lista).

25

Page 26: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

(e) Primero divide y ordena las unidades mas pequenas

3 8 1 9 0 5 7 6 2 4 (inicio)

3 8 1 9 0 5 7 6 2 4 (divide)

3 8 1 9 0 5 7 6 2 4 (divide)

3 8 1 9 0 5 7 6 2 4 (divide)

3 8 1 0 9 5 7 6 2 4 (ordena)

(f) Ahora compara los primeros elementos de las dos primeras sublis-tas, y los coloca en orden:

sin orden: 3 8 1 (1<3)

ordenada:

sin orden: 3 8 (nada con que comparar)

ordenada: 1

sin orden:

ordenada: 1 3 8

(g) Lo mismo con las siguientes dos:

sin orden: 0 9 5 7 (0<5)

ordenada:

sin orden: 9 5 7 (5<9)

ordenada: 0

sin orden: 9 7 (7<9)

ordenada: 0 5

sin orden: 9 (nada con que comparar)

ordenada: 0 5 7

sin orden:

ordenada: 0 5 7 9

(h) Mezcla sucesivamente las distintas sublistas:

3 8 1 0 9 5 7 6 2 4

1 3 8 0 5 7 9 2 4 6

26

Page 27: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

0 1 3 5 7 8 9 2 4 6

0 1 2 3 4 5 6 7 8 9

(i) Escala bien para listas largas, estandard en Perl, Python, Java.

(j) O(n log(n)).

(k) Idea: una lista de pocos elementos se ordena mas rapido.

5. Heapsort

– Construye una “heap” (“montıculo”, arbol binario, cada hijo es menorque su padre)

– Saca el elemento mas grande (la raız, intercambiandolo por el ultimoelemento) y lo pone en la lista ordenada.

– Reconstruye la “heap”

– itera.

– Es como insertion, con el anadido de usar un arbol binario.

– Mas eficiente.

– 3 8 1 9 0 5 7 6 2 4

– Primer elemento en el

3

– 3 - 8

3¡8, debe intercambiar

– Intercambia

8-3

– 8-3

-1

– 8-3-9

-1

– 3¿9, debe intercambiar

8-9-3

-1

– 8-9, debe intercambiar

27

Page 28: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

9-8-3

-1

– 9-8-3

-0

-1

– 9-8-3

-0

-1-5

– Intercambia 1 y 5:

9-8-3

-0

-5-1

– 9-8-3

-0

-5-1

-7

– Intercambia 5 y 7

9-8-3

-0

-7-1

-5

– 9-8-3-6

-0

-7-1

-5

– Intercambia 3 y 6:

9-8-6-3

-0

-7-1

-5

– 9-8-6-3

-2

-0

28

Page 29: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

-7-1

-5

– 9-8-6-3

-2

-0-4

-7-1

-5

– Intercambia 0 y 4:

9-8-6-3

-2

-4-0

-7-1

-5

– Ahora comienza a ordenar. Intercambia la raiz (9) con el ultimo (0)

0-8-6-3

-2

-4-9

-7-1

-5

Y pone el 9 en la lista ordenada.

0-8-6-3

-2

-4

-7-1

-5

– Intercambia el 0 con el 8, y asi sucesivamente, hasta que esten todosordenados de nuevo:

8-0-6-3

-2

-4

-7-1

-5

8-6-0-3

29

Page 30: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

-2

-4

-7-1

-5

8-6-3-0

-2

-4

-7-1

-5

– Intercambia la raiz (8) con el ultimo (2), y elimina el 8, poniendoloen la lista ordenada (9,8)

2-6-3-0

-4

-7-1

-5

6-2-3-0

-4

-7-1

-5

7-2-3-0

-4

-6-1

-5

7-3-2-0

-4

-6-1

-5

7-4-2-0

-3

-6-1

-5

– Ahora interambia el 7 con el 0, y pone el 7 en la lista ordenada(9,8,7). Etc.

30

Page 31: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

– O(n log n)

6. Quicksort

(a) Elige un elemento de la lista (pivote).

(b) Reordena la lista, poniendo todos los elementos menores que elpivote antes que el, y los mayores despues.

(c) El pivote queda en el lugar correcto.

(d) Ordenar recursivamente las sublistas a cada lado.

(e) Las versiones mas eficientes son muy rapidas, necesita poca memo-ria, estandar en librerıas.

(f) O(n log n)

31

Page 32: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

Metodos Numericos avanzados

Diferencias finitas

1. Ecuacion a resolver: Laplace/Poisson

∇2Ψ = −ρ ,

con Ψ(0) = a, Ψ(L) = b (una dimension).

2. Tener condiciones de borde en vez de condiciones iniciales cambia elproblema, no podemos usar metodos tipo Runge-Kutta para integrarla ecuacion diferencial.

3. Diferencias finitas

4. Segunda derivada centrada:

Ψn+1 − 2Ψn +Ψn−1

∆x2= −ρn .

5. C.B.: Ψ0 = a, ΨN = b.

6.

Ψ2 − 2Ψ1 + a = −∆x2ρ1

Ψ3 − 2Ψ2 +Ψ1 = −∆x2ρ2...

b− 2ΨN−1 +ΨN−2 = −∆x2ρN−1

7.

−2 1 0 · · ·1 −2 1 0 · · ·0 1 −2 1 0 · · ·

. . .

0 0 · · · −2 1

Ψ1

Ψ2

Ψ3...

ΨN−1

=

−∆x2ρ1 − a−∆x2ρ2−∆x2ρ3

...−∆x2ρN−1

8. La solucion es invertir la matriz.

9. La ecuacion de Laplace es lo mismo, basta hacer ρ = 0.

32

Page 33: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

10. Notemos que lo que estamos haciendo es aproximar una derivada porlos valores de la funcion en puntos seleccionados.

11. Lo anterior corresponde a una grilla homogenea.

12. Si ρ varıa muy rapidamente en un sector, se puede aumentar la dis-cretizacion, pero aumentarıa el numero de puntos a calcular en todo elintervalo. Mejor usar una grilla no homogenea.

13. Se puede usar una grilla no homogenea, pero hay que usar otro modode aproximar las derivadas.

14. Ej.: tomar 3 puntos de la grilla, no necesariamente equiespaciados,y usar el polinomio de interpolacion de Lagrange para encontrar unafuncion aproximante, y luego decir que las derivadas de la funcion deinterpolacion son las derivadas de la funcion a resolver (Ψ). (Sec. 1.1)

15. Interesante: al calcular la primera y segunda derivada del polinomiode interpolacion de Lagrange con 3 puntos, y considerar una grillahomogenea nuevamente, resulta:

p′ =1

2∆x(fn+1 − fn−1)

p′′ =1

∆x2(fn−1 − 2fn + fn+1)

exactamente lo que tenıamos antes.

16. Discretizar con derivadas centradas es equivalente a calcular la inter-polacion de 3 puntos, y calcular la derivada de dicha interpolacion, enel caso de grilla homogenea.

17. Esto sugiere que, en general, cualquier interpolacion adecuada nospuede servir para discretizar la derivada.

18. f(x) = α1g1(x) + α2g2(x) + α3g3(x), con gi(x) funciones conocidas.

19. Interpolacion cubica: usar el polinomio de interpolacion de Lagrangede la forma p(x) = β0 + β1x + β2x

2 + β3x3, con cuatro puntos. Esto

permite calcular hasta la tercera derivada, lo cual es util si la ecuaciondiferencial es de grado 3. Para la ecuacion de Laplace, basta con unainterpolacion que de la segunda derivada.

33

Page 34: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

20. splines. Las ecuaciones que siempre faltan en las splines, en los bordes,aca emergen naturalmente, porque el problema es de condiciones deborde.

21. Caracterısticas del metodo:

(a) Sencillo de implementar

(b) El error se puede disminuir disminuyendo el tamano de la grilla.

(c) La matriz a invertir puede ser prohibitivamente grande.

(d) Error en redondeo por discretizacion demasiado pequena.

22. Dos dimensiones

23.∂2Ψ

∂x2+

∂2Ψ

∂y2= ρ(x, y)

24. Discretizacion homogenea:

Ψi+1,j − 2Ψi, j +Ψi−1,j

∆x2+

Ψi,j+1 − 2Ψi, j +Ψi,j−1

∆x2= ρi,j

25. Tambien se puede poner en forma matricial, y resolver por eliminacionGaussiana, por ejemplo.

26. Posibles problemas: Ademas de los problemas del caso unidimensional,matriz no sencilla de resolver si el borde no es rectangular.

34

Page 35: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

Metodo de relajacion

1. (Sec. 1.2.2)

2. La solucion de la ecuacion de Laplace satisface que el promedio de lafuncion sobre una esfera es igual al valor de la funcion en el centro dela esfera.

3. En la discretizacion, tambien se puede ver. Del punto 4 en la pag. 32:

Ψn =1

2[Ψn−1 +Ψn+1 +∆x2ρn]

Para el caso de Laplace, ρn = 0, y queda justamente que Ψn es elpromedio de los valores a su alrededor.

4. En dos dimensiones, del punto 24 en 34:

Ψi,j =1

4[Ψi+1,j +Ψi−1,j +Ψi,j+1 +Ψi,j−1 −∆x2ρi,j ]

Para Laplace, nuevamente Ψi,j es el valor promedio sobre los 4 puntosmas cercanos.

5. Si es Poisson, no es particularmente mas difıcil.

6. Estrategia:

(a) Asignar los valores conocidos en el borde

(b) Asignar valores arbitrarios o elegidos con algun criterio astuto enlos puntos interiores.

(c) Recorrer los puntos interiores, reasignandoles el promedio de los4 puntos mas cercanos.

(d) Iterar sobre toda la grilla hasta que converja.

(e) Caracterısticas:

i. Geometrıas arbitrarias

ii. Convergencia lenta, puede servir como muy buen precursorpara metodos mas refinados (Gauss-Seidel, succesive over-relaxation).

35

Page 36: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

Shooting method

1. Si uno conociera Ψ′(0), podrıa integrar la ecuacion de Poisson. Sinembargo, integrando simbolicamente uno puede encontrar Ψ′(0) enterminos de las condiciones de borde y la integral de la inhomogeneidaden todo el intervalo. (Sec. 1.1)

2. Con Ψ(0) y Ψ′(0) se puede integrar la solucion como un problema decondiciones iniciales.

3. (Sec. 2.1.1) Otra forma de hacerlo es tomar una adivinanza para laderivada en cero, s = Ψ′(0). Se integra hasta el borde izquierdo,obteniendose una solucion Ψ(s, L). Definimos

g(s) = Ψ(s, L)−Ψ(L) ,

y el problema se resuelve encontrando el cero de la funcion g(s).

4. Newton funcionarıa si pudieramos derivar g(s), pero como se obtieneimplıcitamente no es factible, pero biseccion y la secante pueden uti-lizarse.

5. Inestabilidades numericas pueden hacer no aconsejable el procedimientoanterior. Como se integra desde la izquierda, dependiendo del metodode integracion puede ir aumentando la incerteza a medida que se avanzahacia la derecha; dependiendo de θ(x), esas incertezas numericas sepueden convertir en inestabilidades importantes en la integracionon.Una solucion para este u otros problemas es simplemente integrar desdela derecha, usando como condicion inicial Ψ(L), e integrando hacia laizquierda.

6. Otra alternativa, que puede ser util si la integracion debe ser hechacon mucha precision en ambos extremos, es integrar desde ambos ex-tremos simultaneamente, y hacer que las funciones empalmen en elcentro (“multi shooting method”).

7. La funcion a minimizar es la suma de las distancias entre los valores delpotencial y su derivada en el centro, o bien solo el valor del potencial(confiando en que la solucion al problema debe ser diferenciable unavez para que sea solucion de la Ec. de Poisson).

36

Page 37: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

8. Sera una funcion de dos variables, g(s(1), s(2), donde s(1) es el valor dela derivada en el extremo izquierdo, y s(2) su valor a la derecha.

9. En dos dimensiones, biseccion no funcionarıa.

10. El metodo de la secante podrıa tener sentido, pero en dos dimensioneshay varias direcciones en las cuales tomar una derivada, y habrıa queescribir una version matricial del metodo de la secante (ej., metodo deBroyden), del mismo modo que existe la version matricial del metodode Newton.

11. Otra alternativa: moverse en la direccion opuesta del gradiente, pen-sando que dado un punto inicial ~r0, el mınimo de la funcion deberıaestar en la direccion opuesta del gradiente (gradient descent method).

12. En nuestro caso, buscamos un cero.

13. El problema es cuanto moverse en la direccion del gradiente. A difer-encia del metodo de Newton o de la secante, no hay una prescripciondefinida del monto en que hay que desplazarse, solo que el mınimo estaen la direccion del gradiente. En una dimension:

sn+1 = sn − αg(sn)− g(sn−1)

sn − sn−1

,

con α algun valor dado, que en general deberıa ir adaptandose en cadaiteracion ya que si α es demasiado grande podrıamos caer demasiadolejos del cero.

14. En dos dimensiones, se pueden considerar las derivadas a lo largo decada eje:

s(β)n+1 = s(β)n − α

[

g(s(1)n , s

(2)n )− g(s

(1)n−1, s

(2)n−1)

s(β)n − s

(β)n−1

]

,

con β = 1, 2, y α se puede escoger constante, variable en cada iteracion,y tambien podrıa usarse un α en cada direccion, α(1) 6= α(2).

37

Page 38: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

Condiciones de borde

1. Dirichlet

(a) Fijas: Ψ(0) = a, Ψ(L) = b. Al discretizar: Ψ0 = a, ΨN = b.

(b) Periodicas: ΨN = Ψ0.

2. von Neumann: Ψ′(0) = a, Ψ′(L) = b. Como

Ψ′(xi) =Ψi+1 −Ψi

∆x,

se tiene

Ψ1 = a∆x+Ψ0 ,

ΨN = b∆x+ΨN−1 ,

3. Mixtas: Ψ(0) = a, Ψ′(L) = b, por ejemplo.

4. Libres: una onda se propaga hacia la derecha, llega al borde y se va,sin reflejarse.

38

Page 39: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

Elementos finitos

1. (Sec. 1.2.3)

2. Multiplicamos la Ec. de Poisson por una funcion h(x), e integramos enun intervalo, digamos [0, 1]:

∫ 1

0

dxΨ′′(x)h(x) =

∫ 1

0

dx θ(x)h(x)

3. Integrando por partes

Ψ′(x)h(x)|10 −∫ 1

0

dxΨ′(x)h′(x) =

∫ 1

0

dx θ(x)h(x)

Ası que necesitamos que h(x) tenga derivada.

4. El termino de borde es incomodo, lo eliminamos con

h(0) = h(1) = 0 .

Luego:

−∫ 1

0

dxΨ′(x)h′(x) =

∫ 1

0

dx θ(x)h(x)

5. El termino de la derecha se ve como un producto interno:

〈Ψ′, h′〉 =∫ 1

0

dx θ(x)h(x)

6. Se ve como la descomposicion de Ψ′(x) en “componentes” en una “base”h(x). Explotemos esa idea.

7. Propongamos

Ψ(x) =∑

i

Ψihi(x)

8. Puede parecer extrano, pero es el mismo tipo de expansion que unohace con una serie de Fourier, por ejemplo, o con splines.

39

Page 40: Cap´ıtulo 7. Preliminares (M´etodos Num´ericos) vamos a ...vmunoz/homepage/... · dificultades o errores usuales. (d) De cada to´pico se podr´ıa hacer un curso entero, nosotros

9. Multiplicando por hi(x) la Ec. de Poisson, e integrando por partes:

∫ 1

0

dxΨ′(x)h′

i(x) = −∫ 1

0

dx θ(x)hi(x)

j

Ψj

∫ 1

0

dx h′

j(x)h′

i(x) = −∫ 1

0

dx θ(x)hi(x)

Definiendo

Aij = −∫ 1

0

dx h′

j(x)h′

i(x) ,

bi = −∫ 1

0

dx θ(x)hi(x) ,

queda∑

j

ΨjAij = bj ,

convirtiendo el problema en uno de algebra lineal.

40