FÍSICA COMPUTACIONAL PRÁCTICO 1 - 2016 Entregar problemas 8 y 9, hasta el 01/09/16 1. Las siguientes expresiones son legales o ilegales en Fortran 90? Si son legales cuál es su resultado? Si son ilegales, qué hay de malo en ellas? 37 / 3 37 + 17 / 3 28 / 3 / 4 ( 28 / 3 ) / 4 28 / (3 / 4) -3. ** 4. / 2. 3. ** (-4. / 2.) 4. ** -3 2. ** 2. ** 3. 2. ** (-2.) (-2) ** 2 (-2.) ** (-2.2) (-2.) ** NINT (-2.2) 1 + 1/4 1. + 1/4 1 * 1./4 2. Diferenciación numérica Sea F (x) = ex . Evalúe f 0 (1) mediante la fórmula centrada de dos puntos f (x + h) − f (x − h) + O(h2 ) 2h para distintos valores de h y calcule el incremento óptimo ho teniendo en cuenta los errores de truncamiento y redondeo. Grafique el error (usando el valor exacto de la derivada) versus h (elija h = 10−k , con k entero, y grafique usando escala log-log). f 0 (x) = 3. Integración numérica. Puntos equiespaciados: Comparación Trapezoidal vs. Simpson Considere la integral definida: Z 1 I= ex dx = e − 1 = 1,718282 . . . . 0 a) Escriba un código que calcule la aproximación Fn de I utilizando la regla del trapecio (1) y la regla de Simpson (2): xn 1 1 f (x)dx = h f0 + f1 + ... + fn−1 + fn + O(h2 ) 2 2 x Z 0xn 1 4 2 f (x)dx = h f0 + f1 + f2 + ...+ 3 3 3 x0 2 4 1 + fn−2 + fn−1 + fn + O(h4 ) 3 3 3 Z 1 donde n (par) es el número de divisiones en el intervalo de integración, y 0 h = xn −x es el ancho de cada división. Elija n = 2k con k = 2, . . . , 8. (Esta n elección es útil para mostrar la dependencia del error asintótico con un gráfico log-log). b) Cúal es la dependencia con n del error ∆n = |Fn − I| para ambas reglas de integración? 4. Cuadratura de Gauss-Legendre. Comparación con otros métodos a) Utilizando el programa disponible en la página de la materia, calcular la integral Z 1 I= e−t dt = 1 − e−1 0 utilizando la cuadratura de Gauss-Legendre, la regla de Simpson y del trapecio. b) Calcule el error relativo = |(numérico − exacto)/exacto| en cada caso para distintos valores de número de puntos de integración (N ). Considere, por ejemplo, N = 2, 10, 20, 40, 80, 160, . . . . c) Haga un gráfico log-log del error relativo versus N . Observe que ≈ CN α => log = α log N + constante. Esto significa que una dependencia como ley de potencia aparece como una lı́nea recta en un gráfico log-log. d ) Use el gráfico para estimar la ley de potencia de la dependencia del error con el número de puntos N . y para determinar el número cifras decimales de precisión en su cálculo. Haga esto para la regla del trapecio y para la regla de Simpson, tanto para el error del algoritmo como para el de redondeo. 5. Resolver analı́ticamente dy = −xy dx con la condición inicial: y(x = 0) = 1. Integrar numéricamente hasta x = 1, usando los algoritmos: i) Euler ii) Runge-Kutta 2 iii) Runge Kutta 4 a) Comparar con el resultado exacto. 2 opcional b) Comparar el costo computacional de cada uno (estimarlo con el tiempo de ejecución que requiere un dado método para alcanzar un cierto nivel de error, use comando time en linux). 6. Oscilador armónico Integrar la ecuación del oscilador armónico, ẍ = −kx usando los siguientes algoritmos (para el caso k = 1, y t entre 0 y 10, usando x(0) = ẋ(0) = 1): i) Euler iii) Runge-Kutta 2 iv) Runge Kutta 4 Note que puede escribirse como un sistema de 2 ecuaciones diferenciales de primer orden. a) Comparar los resultados obtenidos con los distintos métodos (utilizando el valor de h óptimo respectivo) con el resultado exacto graficando x y ẋ versus t. b) Evaluar la energı́a del sistema como función del tiempo. Cúal método es más eficiente?. c) Definimos el error global en el inervalo [0,10], como g = |xnumérico (10) − xexacto (10)|/xexacto (10). Muestre en un gráfico log-log de g versus h−1 (proporcional al número de pasos), como escalean los errores de los distintos métodos con el tamaño del paso). Encuentre las respectivas leyes de potencia (tome valores de h entre 1 y 10−6 ). 7. FFT Dada la siguiente señal: f (t) = sin π t + cos (20πt) , 2 a) Haga un muestreo de la señal, entre 0 y 4, usando N = 1024 puntos y calcule la transformada discreta utilizando la librerı́a FFTW y alguna otra rutina (de Numerical Recipes, por ej.). Compare los resultados y el costo computacional. Verifique que al transformar y anti-transformar obtenga nuevamente la señal inical. Determine las frecuencias de la señal a partir de los resultados. Grafique el espectro de potencias. b) Muestree ahora la señal con N = 16, 64, 128 y 512. Qué puede decir de estos resultados? 3 Sistemas Caóticos 8. Considerar el mapeo logı́stico: entregar xt+1 = rxt (1 − xt ) a) Graficar las trayectorias xt vs t para r = 1,5; 3,3; 3,5; 3,55; 4. Realice 500 pasos para diferentes condiciones iniciales (x0 = 0,06; 0,3; 0,6 y 0,9; por ejemplo) y grafique eligiendo adecuadamente el rango de t. b) Calcular el espectro de potencia para los mismos valores de r que en el punto a) usando FFT. Note que debe descartar el transitorio (300 pasos). Tome como condición inicial x0 = 0,6. c) Graficar el histograma (normalizado) de la distribución de x para r = 4 y x0 = 0,6. Luego de descartar los primeros 300 pasos, considere los 10000 pasos siguientes. Sea cuidadoso en la elección del ancho de los “bines”. d) Obtener el “diagrama de órbitas” en el plano x, r. Para ello, para cada valor de r iterar primero 300 puntos, que se descartan, y luego graficar x301 , . . . , x600 para cada valor de r. Graficar para 3,4 < r < 4. Realizar una ampliación del gráfico para 3,847 < r < 3,857 mostrando la región 0,13 < x < 0,185. (Para esto último hacer mas iteraciones, por ej. x301 , . . . , x1500 ). e) Calcular y graficar el exponente de Lyapunov para 2 < r < 4. Recuerde descartar el transitorio, y utilice del orden de 1500 pasos para calcular el exponente. 9. El Hamiltoniano de Pullen-Edmonds consiste en dos osciladores armonicos de igual frecuencia ω y masa m, acoplados por un término cuártico en las coordenadas: 1 1 H = (p21 + p22 ) + (q12 + q22 ) + α q12 q22 2 2 (donde elegimos unidades tal que m = 1 y ω = 1). (1) a) Integrar numéricamente las ecuaciones de movimiento usando el algoritmo de Runge-Kutta de 4to. orden para α = 0,05. Particularice para valores de energı́a E = 5, 20 y 100, graficando coordenadas y momentos versus tiempo. (utilice el valor óptimo de h ≡ ∆t, e integre hasta t = 200). Como condición inicial utilice q1 = 2, p p1 = 0, q2 = 0 y p2 = (2E − 4). b) Trazar las superficies de sección de Poincaré en el plano p1 , q1 , para los siguientes valores de energı́a: E = 5, 20, 100. Poner un punto cada vez que q2 = 0 (en la implementación es conveniente buscar los cambios de signo de q2 ) con p2 > 0. Para la construcción de los gráficos elija al menos 50 condiciones iniciales para cada valor de energı́a, e integre hasta tf inal = 15000. c) Calcular el espectro de potencias para una órbita con energı́a E = 5 y para una órbita con E = 100. 4 entregar