La idea del algoritmo del programa se puede seguir fácilmente con los comentarios que incluye el código fuente, por tanto, lo que voy a intentar aquí es explicar la generación de los conjuntos.
Básicamente, para cada punto que considero, itero un cierto número de veces la función del sistema dinámico para comprobar si la órbita de dicho punto converge o no.
Las operaciones con la función fC del sistema dinámico las desarrollo con número reales, ya que el lenguaje Java no implementa el tipo Complejo (como si hace el C/C++, por ejemplo).
Como salida del bucle en el que itero la función fC, tengo dos condiciones. Por un lado tomo como cota al número de iteraciones 75, ya que la precisión que se alcanza en la generación del conjunto es más que suficiente, y un número mayor de iteraciones ralentizaría en exceso el proceso (recordar el comentario del apartado 3.3.2.). Por otra parte, utilizo el teorema que dice que si algún punto de una órbita tiene un valor en módulo mayor que dos entonces la órbita diverge, para calcular el carácter de la órbita asociada a cada punto. En este caso, en vez de comparar en módulo con dos, me ahorro la llamada a la función raíz cuadrada (es una función costosa), y comparo el cuadrado del módulo con 4 (realmente comparo con 5 para evitar problemas de redondeo).
Como comentario final al programa, recordar el problema de la velocidad en Java, e indicar que si bien el Applet puede visualizarse en cualquier navegador superior a Netscape 2.0 ó Explorer 3.0, para que el programa funcione con soltura, hay que ejecutarlo en Netscape 4.0 ó Explorer 4.0 (por problemas de velocidad en las implementaciones de la “Máquina Virtual Java” que incluían las versiones anteriores).
|
|
|
|