He encontrado por ensayo y error una interesante familia de sistemas dinámicos que dan unos bonitos atractores extraños . Son caóticos sistemas complejos basado en el función digamma . Se define mediante un mapa discreto complejo como sigue: (Descargo de responsabilidad, tl:dr : imágenes y explicación de la familia de atractores extraños por delante, pero con la definición de la fórmula y las preguntas debería ser suficiente)
$$S_{D}=\{(x,y): (x_{n+1},y_{n+1}) = (Im(\psi(x_{n} + y_n i)\cdot\sin{\frac{D}{f}}, Re(\psi(x_{n} + y_n i))\cdot\cos{\frac{D}{f}})\}$$
Dónde:
-
La semilla es $(x_0,y_0)=(\pi/4,\pi/4)$
-
$\psi(x_{n} + y_n i)$ es la función digamma aplicada a un número complejo $z_n=x_n+y_n i$
-
$f$ es una restricción de fracción fijada inicialmente para esta prueba en $f = 1$ .
-
$D$ es una restricción llamada "Profundidad", $D \in \Bbb N$ .
-
El proceso consiste simplemente en calcular en cada iteración la función digamma y luego generar un número complejo $(z_{n+1}=x_{n+1},y_{n+1})$ donde la parte real del número complejo en la iteración $n+1$ procede de la parte imaginaria del número complejo asociado a la iteración anterior $n$ e igualmente la parte imaginaria del número complejo de la iteración $n+1$ procede de la parte real del número complejo generado en la iteración $n$ . En otras palabras, es "cruzar" $Im$ y $Re$ en cada iteración.
Algunos detalles del proceso de prueba y error: Cualquier otra combinación de seno, coseno o no "cruce" $Im$ y $Re$ en cada iteración no proporcionará los patrones que mostraré a continuación. Modificando la semilla se obtendrán los mismos resultados pero localizados en otros puntos del plano o distorsionados. Modificando la fracción $f$ sólo genera otros atractores similares, por lo que $f$ se fijó para centrar las pruebas.
Básicamente: para cada $D$ (Profundidad) y para un $f=1$ valor, si hacemos funcionar el sistema hasta tanto como queramos grandes $n$ llegamos a un sumidero de un atractor extraño, por lo que a partir de ese punto el conjunto de puntos no crecerá, y la gráfica del conjunto de puntos $S_n$ muestra un atractor.
Ejecutar el sistema para $D \in [0,250]$ y hasta $n = 4 \cdot 10^4$ (puede ser un valor más alto pero para las pruebas es un número suficientemente bueno) obtenemos una familia de atractores que se pueden dividir en tres tipos o formas diferentes: racimos , espirales y lo que yo llamo " anomalías ".
- Agrupaciones son sólo grupos de puntos, una forma redondeada, pero los puntos no pueden escapar de ese espacio. Por ejemplo, $S_5$ :
- Espirales tienen la forma de distintos tipos de espirales: dos brazos, tres brazos, cuatro, etc. Por ejemplo, $S_{45}$ :
- Anomalías son atractores con formas muy específicas. Los límites están muy bien definidos. Por ejemplo, $S_{22}$ y $S_{75}$ :
Quería verlos todos juntos, se ven así, está un poco ampliado:
Hay demasiada densidad de puntos cuando mostramos los grandes cúmulos junto con las espirales y las anomalías, así que decidí dividirlos en tres grupos y me centré en la familia de las espirales, y este es el gráfico de los atractores en forma de espiral en $Depth \in [0,250]$ :
Quería hacer un ejercicio de simulación con esto. Como se dice que los sistemas dinámicos complejos se acercan más a la realidad y los atractores que se obtienen son espirales y cúmulos intenté ver si es posible simular algunas galaxias y cúmulos estelares con esta información. Así que añadí una tercera dimensión usando el $Depth$ valor.
$$S_{Depth}=\{(x,y,d): (x_{n+1},y_{n+1},d_{n+1}) = (Im(\psi(x_{n} + y_n i)\cdot\sin{\frac{D}{f}}, Re(\psi(x_{n} + y_n i))\cdot\cos{\frac{D}{f}}, D+(\sin{n}))\}$$
En $d$ localiza cada atractor $S_D$ en una profundidad diferente, y el seno es sólo un truco para añadir algo de volumen "aleatorio" a cada nube de puntos de cada atractor. He utilizado un LiDAR visor gratuito para visualizar el $(x,y,d)$ puntos en el espacio tridimensional (en mi caso Edición gratuita de PointCloudViz ), y parecía bastante prometedor. Decidí invertir y colorear las imágenes con GIMP2, y estos son algunos resultados. Son exactamente los mismos puntos que se muestran en los gráficos anteriores, pero coloreados y vistos desde dentro de la nube de puntos en un entorno tridimensional (haz clic para ampliar):
Parece que estos puntos pueden "simular" galaxias de forma rudimentaria. Sería interesante realizar un simulación de n-cuerpos con esta familia de atractores.
Así que mis preguntas son:
¿Es correcto hablar de atractores extraños en el caso de las formas de racimo y espiral? Las iteraciones llegan realmente a un $n$ tal que el punto $(x_n,y_n)$ es un sumidero y el conjunto de puntos no crece a partir de ese momento, pero no estoy seguro de si es correcto hablar de atractor extraño, sólo atractor o sólo sistema dinámico unido a un mapa complejo. Estoy más seguro sobre por ejemplo el caso $D=22$ mostrado arriba porque la forma del atractor es muy clara.
¿Cómo genera este mapa los distintos tipos de espirales?
Mi conjetura: está relacionado con la forma de llegar al punto de hundimiento. Estoy "cruzando" $Im$ y $Re$ en cada iteración $n$ del mapa complejo, y esto podría estar creando las espirales por recursión.
¿Y por qué algunos de ellos son otro tipo de atractores como los cúmulos y las "anomalías"?
¿Existen otros sistemas capaces de generar este tipo de formas? Gracias
actualización 2017/11/10 para completar la información, a continuación se muestra una imagen bidimensional de $n$ -simulación de la gravedad del cuerpo utilizando el primer $600$ puntos generados por el $S_5$ set. Consideramos los puntos como un disco protoplanetario , y el punto más cercano al centro medio de los puntos recibirá la mayor densidad y por tanto se convertirá en un sol central. Al resto de puntos les he dado densidades, radios, masas y momentos aleatorios, para que simulen distintos tipos de planetas por acreción. Los planetas menos densos son blanquecinos-azulados, los de densidad media son verdosos (parecidos a la Tierra) y los más pesados son rojizos. Dependiendo del volumen, los colores son más claros en cada variedad, cuanto más grande más claro. Cuando dos planetas chocan, la masa mayor se lleva la densidad media de ambos planetas y toda la masa y el impulso. Cuando el planeta choca con el sol central, el sol se lleva toda la masa y la densidad media pero permanece fijo como centro del sistema. Esta simulación (es una animación en bucle) tiene $2 \cdot 10^4$ unidades de tiempo. El código Python es un trabajo muy bueno de Thanassis Tsiodras, con algunas personalizaciones propias para añadir densidades y colores aleatorios para una visualización un poco más realista, así que los créditos al autor ( aquí ):
Parece que las nubes de puntos generadas por el sistema dinámico son válidas para simular algunos comportamientos básicos de los discos protoplanetarios. Vemos que la nube de acreción inicial empieza a limpiarse: algunos protoplanetas colisionan y generan un planeta mayor con una nueva densidad y radio promediados. Otros son expulsados del disco protoplanetario debido a las distintas interacciones gravitatorias. Otros colisionan con el sol, haciéndolo más grande, y finalmente tras algunas unidades de tiempo se estabiliza con unos pocos planetas de diferente densidad y trayectorias más o menos estables. Ten en cuenta que la animación se va alejando poco a poco para ver las trayectorias más externas (parece que los planetas y el sol se encogen porque no hay referencia de fondo). En definitiva, ¡las Matemáticas pueden ser divertidas y emocionantes!
Actualización 2017/11/20 : He subido el código a mi cuenta repl.it ( enlace aquí ). No puede ejecutarse en línea porque requiere guardar las imágenes de los distintos sistemas dinámicos. Funcionará, por ejemplo, en un ordenador personal que utilice Python Anaconda . Siéntete libre de usarlo, modificarlo y disfrutarlo.