Translate

domingo, 10 de marzo de 2013

Algoritmos

La pasada semana estaba analizando mediciones de variables y me encontré con el siguiente dilema. Para calcular los mínimos de estrellas eclipsantes existe un algoritmo (bastante extendido) ideado en los años 60 por dos científicos K. K. Kwee y H. van Woerden (enlace).  Parten de la simetría de los eclipses de estrellas y tiene su origen en el métodos de las cuerdas, del trazado simétrico, etc... El caso es que con simetría en la curva trabaja bastante bien y según sus autores también admiten cierta flexibilidad en la no simetría de la curva de la estrella eclipsante. Pero esto no siempre llega al resultado correcto.

La curva de la noche en cuestión es de la estrella v394cam (la gráfica está al reves, el mínimo se representa como máximo en la curva).

Visualmente se ve claramente que el mínimo debería estar en la zona marcada.


 
Usando el método de Kwee (programa AVE y otros) se obtiene que el mínimo analítico lo situa en una posición errónea.

Así que tenemos que recurrír a otros métodos para calcular el extremo de la curva. Principalmente se recurre a aproximaciones de polinomios que se ajustan a los datos observados lo mejor posible. En la siguiente gráfica se muestran la curva media (rojo), una curva media donde se han desechado los puntos que se alejaban de la media por encima de la dispersión (azul), una curva media usando como origen la curva media sin puntos dispersos (verde) y una curva media usando como origen la curva media sin puntos dispersos donde se vuelven a desechar los puntos dispersos para el cálculo (gris).





Se ve como se ha ido suavizando la curva a medida que se van desechando valores "alejados" del valor medio del intervalo escogido. El problema es que el "pico" también se va desplazando, por lo que el instante de mínimo parece depender de la aproximación o grado de filtrado de la señal que realicemos.Los puntos marcados con la x son los que en ese intervalo estarían más alejados de la mayoría de puntos por lo que añadirían ruido más que señal verdadera. Al usar el valor de la dispersión permite que estos puntos no participen en el cálculo del valor medio en dicho intervalo.


Esto me hizo recordar los programas que escribía en quickbasic hace casi 20 años y retomé uno para modificarlo ligeramente. El programa que calcula la curva media (movillors) está a vuestra disposición. La verdad es que me gustaría tener más conocimiento de programación pero a mi edad estudiar cuesta bastante más trabajo que cuanto tenía 20 años (y también hay menos tiempo para ello).


2 comentarios:

Arrakis dijo...

Excelente entrada de análisis.
Los algoritmos que analizan las curvas fotométricas son variados, y no sólo en el caso de las estrellas variables, también en los cometas, donde las curvas son más imprecisas.
Fotodif, en su última versión, ha mejorado estos algoritmos. ¿has probado a hacer una comparación? Julio Orodeno, yo y Ramón Naves estuvimos implicados en un programa de mejora de la última versión.
Saludos, y excelente nivel de tu blog,

José Mª Fernández dijo...

Gracias Paco, tengo la versión 529 de Fotodif. Yo también le hice una sugerencia a Julio en su momento para mejorar el programa, pero una cosa es la sugerencia y otra es echar unas horas para cambiar el código del programa para que haga algo que no hacía. Mi gran asignatura pendiente ha sido aprender más programación para poder escribir un programa presentable que hiciera los cálculos necesarios que usaba en variables. Por pereza me quedé en quickbasic que me daba el apaño para los cálculos y me sacaba del problema en aquellos momentos (años noveinta y tantos) cuando estaba en Albireo y observaba regularmente.