La situación es la que se describe a continuación.
Una población varía con el tiempo de forma que la población admite un valor máximo concreto que ajustaremos al valor numérico 1 y un valor mínimo que es 0.
La población evoluciona en etapas discretas siguiendo la siguiente ley: f(x) = constante x (1 - x).
El valor de x representa la población existente en un momento determinado (valor perteneciente al intervalo [0, 1]) y la constante determina las características de la evolución de la especie. f(x) representa el valor de la población en la etapa siguiente.
Los sucesivos valores que se van obteniendo a partir de un valor concreto de la población inicial constituyen la órbita del elemento inicial.
Las órbitas se comportan de forma muy distinta dependiendo del valor de la constante (aproximación a un punto fijo, a un punto eventualmente fijo, órbitas periódicas en las que en cierto momento los valores de la población comienzan a repetirse, comportamiento caótico).
f(x) = c x (1 - x) se suele llamar curva logística, y el modelo fue usado en los años 70 por Edward Lorentz, Robert May, Mitchell Feigenbaum y otros.
En cualquier caso, independientemente de su interés en relación con los comportamientos de las órbitas y con el estudio de fenómenos caóticos, el modelo no tiene utilidad práctica en estudios de evolución de poblaciones reales.
[b]DISEÑO DEL ARCHIVO:[/b]
Este archivo se ha diseñado para estudiar el comportamiento de las órbitas de un valor inicial (semilla) que puede ser establecido por el usuario y para estudiar las órbitas en función del valor de la constante.
El diseño del archivo no es complicado.
Se ha hecho uso del comando Zip en una ocasión y se muestra un truco interesante si se quiere fijar las coordenadas de las esquinas e impedir que el usuario pueda usar la herramienta Zoom.
[list]
[*]Se definen dos deslizadores. Uno llamado semilla: de 0 a 1 y otro llamado constante de 0 a 4.
[*]Se define la función f(x) = constante x (1 - x) y la ocultamos.
[*]Se obtienen los primeros 400 elementos de la órbita determinada por los valores establecidos con los deslizadores: orbita = IterationList[f, semilla, 400]
[*]Para visualizar la órbita generamos 400 puntos: puntosOrbita = Zip[(X / 20, Y), X, Sequence[400], Y, orbita]
[*]Ocultamos la secuencia obtenida anteriormente y definimos una línea poligonal a partir de ella: lineaPoligonalOrbita = Poligonal[puntosOrbita]
[*]Se ha ajustado el dibujo rodeando, en la zona gráfica, la gráfica determinada por la órbita con una línea poligonal rectangular definida a partir de cuatro puntos que ocupan las esquinas.
[*]Para que la zona gráfica no se pueda modificar usando las herramientas de zoom, hemos usado un truco interesante. Definimos cuatro deslizadores xMin, yMin, xMax e yMax para establecer los cuatro vértices de la zona gráfica que deseamos mostrar y que deseamos que sea fija.
[*]Se establecen valores adecuados para cada deslizador en función de su posición y finalmente usamos el comando ZoomAcerca[xMin, yMin, xMax, yMax] que fija las coordenadas de las esquinas de la ventana gráfica y que impide que se modifiquen con la herramienta Zoom.
[*]Por último se ocultan los cuatro últimos deslizadores utilizados
[/list]