Esta pregunta es similar a este: Propiedades de Sueño del Rey fractal
El fractal se describe a continuación: Softology - Visiones Del Caos 2D Atractor Extraño Tutorial
Yo accidentalmente modefied la fórmula a la siguiente:
$$x_{n+1}=\sin(by_{n})-c\sin(bx_{n})$$ $$y_{n+1}=\sin(ax_{n})+d\sin(ay_{n})$$
So just the sign of $c$ is flipped, so the fractals are really the same.
I'll give a short description of how it is generated.
Given a random starting position of $x_0$ and $y_0$, $x_0 = -2$ and $y_0 = -2$ work quite well, the number of times every pixel is hit. This number, if plotted on a logarithmic scale, gives rise to the strange attractor.
Here are some pictures rendered at 8000000 iterations each, $x$ and $y$ from $-3$ to $3$ each:
$$a = 1.5,\ b= -0.7,\ c=-1.4,\ d=1.2$$
$$a = -2.5,\ b= -1.5,\ c=1.9,\ d=1.9$$
$$a = 2,\ b= -1.5,\ c=1,\ d=1$$
$$a = 2,\ b= 0.3,\ c=3.4,\ d=-0.9$$
$$a = -1.5,\ b= 0.7,\ c=1.7,\ d=-2$$
Ahora, como usted puede ver, a veces, el fractal se extiendan, a veces es apretados, pero a veces el atractor se derrumba realmente pequeños bucles, o incluso sólo un par de puntos. Si cambia los valores de un atractor continuamente a los valores de otro atractor, los cambios son altas de que entre por un breve momento el atractor se derrumba y, a continuación, cambia.
Para comprobar en qué puntos que iba a suceder de un crudo método fue aplicado. El número de píxeles individuales que fueron éxito fue contado. Para acelerar las cosas en la parrilla, a una escala menor.
Cuando este valor se representa en un mapa donde $a$ $b$ son variadas y $c$ $d$ son fijos los siguientes mapas se obtienen, donde $a$ es variada de $-4$ $4$$x$- eje y $b$ es variada de $-4$ $4$$y$-eje. Ignorar los valores de $a$ amd $b$, que no son exactos debido a la acumulación de errores de redondeo. Blanco significa alto número de píxeles de golpe, negro por el bajo número de píxeles de golpe:
¿Se sabe algo de este mapa? Se parece un poco a un fractal. Debido a esta forma parece que no hay ninguna fórmula simple para determinar el estado de la atractor beforhand. También parece ser simétrica.
Obviamente, este método es muy crudo en la determinación del estado de la fractal. También es lento, la última foto que tomó más de 4 horas de render. Hay un método mejor?
Para cualquier persona tratando de reproducir las imágenes del mapa, aquí está el código de procesamiento para que:
float a, b, c, d, x, y, xp, yp;
int hit[][] = new int[200][200];
PFont f;
void setup() {
size(800, 800);
f = createFont("Arial", 16, true);
a = -4.2;
b = -0.5;
c = -1;
d = -2.2;
for (int i = 0; i < 200; i++) {
for (int o = 0; o < 200; o++) {
hit[i][o] = 0;
}
}
}
void draw() {
background(0);
a = -4;
while (a < 4) {
b = -4;
while (b < 4) {
for (int i = 0; i < 200; i++) {
for (int o = 0; o < 200; o++) {
hit[i][o] = 0;
}
}
xp = -2;
yp = -2;
for (int i = 0; i < 100000; i++) {
x = sin(yp * b) - c * sin(xp * b);
y = sin(xp * a) + d * sin(yp * a);
hit[int(constrain(map(x, -5, 5, 0, 100), 0, 100))][int(constrain(map(y, -5, 5, 0, 100), 0, 100))] = 1;
xp = x;
yp = y;
}
int sum = 0;
for (int i = 0; i < 200; i++) {
for (int o = 0; o < 200; o++) {
sum += hit[i][o];
}
}
fill(constrain(10*map(float(sum)/40000, 0, 1, 0, 255), 0, 255));
noStroke();
rect(int(map(a, -4, 4, 0, 800)), int(map(b, -4, 4, 0, 800)), 100, 100);
b += 0.01;
}
a += 0.01;
}
fill(255, 0, 0);
noStroke();
textFont(f, 20);
text("a = " + str(a) + "\nb = " + str(b) + "\nc = " + str(c) + "\nd = " + str(d), 10, 30);
}
Y para cualquier persona que está tratando de probar varios valores de $a$, $b$, $c$ y $d$ en el atractor sí, aquí hay algunos básicos de procesamiento de código para un negro/blanco de la imagen:
float a, b, c, d, x, y, xp, yp;
PFont f;
void setup() {
size(800, 800);
f = createFont("Arial", 16, true);
a = -4.2;
b = -0.5;
c = -1;
d = -2.2;
background(0);
}
void draw() {
background(0);
xp = random(-2, 2);
yp = random(-2, 2);
for (int i = 0; i < 10000; i++) {
x = sin(yp * b) - c * sin(xp * b);
y = sin(xp * a) + d * sin(yp * a);
set(int(map(x, -5, 5, 0, 800)), int(map(y, -5, 5, 0, 800)), color(255));
xp = x;
yp = y;
}
fill(255, 0, 0);
noStroke();
textFont(f, 20);
text("a = " + str(a) + "\nb = " + str(b) + "\nc = " + str(c) + "\nd = " + str(d), 10, 30);
}
Muchísimas gracias!
Estas animaciones muestran una variable continua siendo muy variadas:
https://youtu.be/3iYnrgRpMX8 https://youtu.be/ZveuYBnm6Us https://youtu.be/-PgzRCYboeU
Aquí es un crudo de procesamiento de puerto para la prestación del atractor: https://pastebin.com/nVCJipkA
Se hicieron algunos esfuerzos para dibujar un diagrama de bifurcación, que es obviamente difícil, porque es un 2D-atractor.
Un crudo solución es simplemente bajando el $x$-coordinar y, en su lugar de trazado $a$ $x$- eje.
$$a \in [0.59; 0.75],\ b = 3,\ c = -1.4,\ d = 1.2$$
Zoom en el primer superior de la pequeña bifurcación del árbol:
Aquí es un script de procesamiento para la elaboración de bifurcaciones: https://pastebin.com/9ndL2dH3
Y esta es una animación de la bifurcación de la trama: https://youtu.be/tRgM-HhtXVk
Y algunos más: https://youtu.be/6WBgtXTPgbA https://youtu.be/ptnNFpxixow
Tras la visualización de un logarítmica de la parcela es visible que no todos los puntos en las regiones densas son golpeados con la misma frecuencia:
Zoom:
Otra parcela:
Código para logarítmica colorscale: https://pastebin.com/Xgjkg8tM