Fractales

A vueltas con los fractales

R

Si bien no hace mucho publicaba una entrada sobre el triángulo de Sierpinsky, mi tocayo Carlos Ortega (y ahora gentil colaborador) nos ha proporcionado un enlace en este blog a un pedazo de código que bien vale la pena replicar aquí para el solaz (y tal vez, incluso, provecho) de los lectores de estas páginas. Es:

    library(fields)         # for tim.colors
    library(caTools)        # for write.gif
    m = 400                 # grid size

    C <- complex(
        real=rep(seq(-1.8,0.6, length.out=m), each=m ),
        imag=rep(seq(-1.2,1.2, length.out=m), m ) )
    C <- matrix(C,m,m)
    Z <- 0
    X <- array(0, c(m,m,20))

    for (k in 1:20) {
        Z <- Z^2+C
        X[,,k] <- exp(-abs(Z))
    }
    image(X[,,k], col=tim.colors(256))
    write.gif(X, "Mandelbrot.gif", col=tim.colors(256), delay=100)

(extraído de aquí).

Para que copien, peguen y disfruten: addenda

R

Ayer dejé publicadas unas cuantas líneas de R y la promesa de contar de qué iba la cosa. Adelantando acontecimientos, he recibido comentarios públicos y privados al respecto que en esta entrada trataré de contestar.

El código era, una vez mínimamente desofuscado (no quería dar demasiadas pistas):

vertice.x <- c(0,1,2)                            # 1
vertice.y <- c(0,1,0)                            # 2
muestra <- sample( 1:3, 100000, replace = T )    # 3
iter <- function( ini, v ){                      # 4
   out <- rep( ini, length(v) )                  # 5
   for( i in 2:length(v) )
      out[i] <- ( out[i-1] + v[i] ) / 2          # 6
   out
}
plot( iter( runif(1), v.x[ muestra ] ),
      iter( runif(1),  v.y[ muestra ] ), pch = "." )

He aquí lo que hace: