Bueno, pues esta ves les traigo un codigo en java de el conjunto de mandelbrot,
El código no es mio propiamente y no se de quien sea, ya que el profesor nos lo proporciono.
Un poco de historia según la wiki
El conjunto de Mandelbrot es el más conocido de los conjuntos fractales y el más estudiado. Se conoce así en honor al matemático Benoît Mandelbrot.
¿Como se calcula o cual es la ecacuacion para poder ver el fractal?
Este conjunto se define así, en el plano complejo:
Sea c un número complejo cualquiera. A partir de c, se construye una sucesión por recursión:
(https://upload.wikimedia.org/math/1/2/d/12d3322f5960648e712c41e5a7fba307.png)
Si esta sucesión queda acotada, entonces se dice que c pertenece al conjunto de Mandelbrot, y si no, queda excluido del mismo.
Por ejemplo, si c = 1 obtenemos la sucesión 0, 1, 2, 5, 26... que diverge. Como no está acotada, 1 no es un elemento del conjunto de Mandelbrot.
En cambio, si c = -1 obtenemos la sucesión 0, -1, 0, -1,... que sí es acotada, y por tanto, -1 sí pertenece al conjunto de Mandelbrot.
Mandelbrot Wiki (https://es.wikipedia.org/wiki/Conjunto_de_Mandelbrot)
Bueno hasta ahora les e puesto lo que según la wiki, pero en si, que es el Conjunto de mandelbrot visualmente, se los muestro a continuación.
(http://i.imgur.com/5Z1txtk.png)
Codigo de Mandelbrot
/*@rush*/
package prmandelbrot;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class PrMandelbrot extends JPanel {
public static void main(String[] args) {
JFrame ventana = new JFrame("Conjunto de mandelbrot");
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.getContentPane().add(new PrMandelbrot());
ventana.setSize(640, 640);
ventana.setLocation(200, 50);
ventana.setVisible(true);
}
public void paint(Graphics g) {
int i, j, n, h, w;
double x, y, cx, cy, xt, yt;
super.paintComponent(g);
setBackground(Color.black);
h = getHeight() / 2;
w = getWidth() / 2;
for (i = 0; i < getHeight(); i++) {
for (j = 0; j < getWidth(); j++) {
cx = (j - w) / 240.0 - 0.4;
cy = (i - h) / 240.0;
x = 0;
y = 0;
n = 0;
while (n < 64 && x * x + y * y < 4) {
xt = x * x - y * y + cx;
yt = 2 * x * y + cy;
x = xt;
y = yt;
++n;
}
if (n < 64) {
g.setColor(new Color(255 - (n * 16) % 256, 0, n * 2));
g.fillRect(j, i, 1, 1);
}
}
}
}
}
Para poder entender un poco como funciona necesitas saber un poco de números complejos, pero aquí les dejo una pagina que encontré de como dibujar el conjunto de mandelbrot a mano y como es que funciona la formula para calcularlo.
Como dibujar el conjunto de mandelbrot a mano (http://es.wikihow.com/dibujar-el-conjunto-de-Mandelbrot-manualmente)
Espero les haya gustado y les parezca interesante.
Saludos :)!
Estoy un poco confundido. ¿Estos cálculos tienen alguna aplicación o son una curiosidad matemática?
Ayer mismo empecé a leer un libro de Java8, así que guardaré el código para estudiarlo cuando entienda mejor el lenguaje.
Estuve viendo las diferentes posibilidades y el ejemplo que nos muestras se corresponde con
Z=Z2+C.
¿Alguien se anima a reconfigurarlo a
Z=Exp[(Z2- 1.00001*Z)/C3]?
El resultado debería ser algo así:
(https://upload.wikimedia.org/wikipedia/commons/c/c1/Mandel_Exp%28_%28Z%5E2%2Bk3xZ%29_C%5E3%29_.jmb.jpg)