# Helecho de Barnsley

El helecho de Barnsley es un fractal que lleva el nombre del matemático británico Michael Barnsley, quien lo describió por primera vez en su libro de 1993 "Fractals Everywhere" (Fractales en todas partes). Lo ideó para que su forma se pareciera a las hojas del adianto negro, un helecho común en zonas lluviosas de todo el mundo.

## Historia

El helecho es uno de los ejemplos básicos de conjuntos autosemejantes, es decir, es un patrón generado matemáticamente que puede reproducirse con cualquier aumento o reducción. Al igual que el triángulo de Sierpinski, el helecho de Barnsley muestra cómo se pueden construir estructuras gráficamente hermosas a partir de usos repetitivos de fórmulas matemáticas con computadoras. El libro de 1988 de Barnsley "Fractals Everywhere" se basa en el curso que impartió para estudiantes de pregrado y posgrado en la Escuela de Matemáticas del Instituto de Tecnología de Georgia, llamado "Fractal Geometry". Después de la publicación del libro, se desarrolló un segundo curso, llamado Teoría de la medida fractal. El trabajo de Barnsley ha sido una fuente de inspiración para que otros artistas gráficos intentaran imitar la naturaleza con modelos matemáticos.
El código del helecho desarrollado por Barnsley es un ejemplo de un sistema iterativo de funciones (SIF) para crear un fractal a partir del teorema del collage. Ha utilizado fractales para modelar una amplia gama de fenómenos en ciencia y tecnología, pero más específicamente en estructuras vegetales.
— Michael Barnsley et al.

## Construcción

El helecho de Barnsley usa cuatro transformaciones afines. La fórmula de una transformación es la siguiente:
    $f(x,y)={\begin{bmatrix}a&b\\c&d\end{bmatrix}}{\begin{bmatrix}x\\y\end{bmatrix}}+{\begin{bmatrix}e\\f\end{bmatrix}}$
Barnsley muestra el código "IFS" para su fractal de helecho "Black Spleenwort" como una matriz de valores que se muestran en una tabla. En la tabla, las columnas de la "a" a la "f" son los coeficientes de la ecuación y "p" representa el factor de probabilidad.
| w | a | b | c | d | e | f | p | Porción generada |
| ƒ$_1$ | 0 | 0 | 0 | 0.16 | 0 | 0 | 0.01 | Tallo |
| ƒ$_2$ | 0.85 | 0.04 | −0.04 | 0.85 | 0 | 1.60 | 0.85 | Foliolos sucesivamente más pequeños |
| ƒ$_3$ | 0.20 | −0.26 | 0.23 | 0.22 | 0 | 1.60 | 0.07 | Foliolo más grande a la izquierda |
| ƒ$_4$ | −0.15 | 0.28 | 0.26 | 0.24 | 0 | 0.44 | 0.07 | Foliolo más grande a la derecha |
Estos corresponden a las siguientes transformaciones:
    $f_{1}(x,y)={\begin{bmatrix}\ 0.00&\ 0.00\ \\0.00&\ 0.16\end{bmatrix}}{\begin{bmatrix}\ x\\y\end{bmatrix}}$
    $f_{2}(x,y)={\begin{bmatrix}\ 0.85&\ 0.04\ \\-0.04&\ 0.85\end{bmatrix}}{\begin{bmatrix}\ x\\y\end{bmatrix}}+{\begin{bmatrix}\ 0.00\\1.60\end{bmatrix}}$
    $f_{3}(x,y)={\begin{bmatrix}\ 0.20&\ -0.26\ \\0.23&\ 0.22\end{bmatrix}}{\begin{bmatrix}\ x\\y\end{bmatrix}}+{\begin{bmatrix}\ 0.00\\1.60\end{bmatrix}}$
    $f_{4}(x,y)={\begin{bmatrix}\ -0.15&\ 0.28\ \\0.26&\ 0.24\end{bmatrix}}{\begin{bmatrix}\ x\\y\end{bmatrix}}+{\begin{bmatrix}\ 0.00\\0.44\end{bmatrix}}$

### Generación con computadoras

Aunque, en teoría, el helecho de Barnsley podría trazarse a mano con un bolígrafo y papel cuadriculado, el número de iteraciones necesarias asciende a decenas de miles, lo que hace que el uso de una computadora sea prácticamente obligatorio. Muchos modelos informáticos diferentes del helecho de Barnsley son populares entre los matemáticos contemporáneos. Siempre que las matemáticas se programen correctamente utilizando la matriz de constantes de Barnsley, se producirá la misma forma de helecho.
El primer punto dibujado está en el origen (x$_0$ = 0, y$_0$ = 0) y a continuación los nuevos puntos se calculan iterativamente aplicando aleatoriamente una de las siguientes cuatro transformaciones de coordenadas:
ƒ$_1$
    x$_{n+1}$ = 0
    y$_{n+1}$ = 0.16 y$_n$.
Esta transformación de coordenadas se elige el 1% del tiempo y simplemente asigna cualquier punto a un punto en el primer segmento de línea en la base del tallo. Esta parte de la figura es la primera que se completa durante el transcurso de las iteraciones.
ƒ$_2$
    x$_{n+1}$ = 0.85 x$_n$ + 0.04 y$_n$
    y$_{n+1}$ = −0.04 x$_n$ + 0.85 y$_n$ + 1.6.
Esta transformación de coordenadas se elige el 85% de las veces y calcula cualquier punto dentro del foliolo representado por el triángulo rojo a un punto dentro del folliolo opuesto, más pequeño, representado por el triángulo azul en la figura.
ƒ$_3$
    x$_{n+1}$ = 0.2 x$_n$ - 0.26 y$_n$
    y$_{n+1}$ = 0.23 x$_n$ + 0.22 y$_n$ + 1.6.
Esta transformación de coordenadas se elige el 7% del tiempo y calcula cualquier punto dentro del foliolo representado por el triángulo azul a un punto dentro del triángulo correspondiente alterno a través del tallo (lo voltea).
ƒ$_4$
    x$_{n+1}$ = −0.15 x$_n$ + 0.28 y$_n$
    y$_{n+1}$ = 0.26 x$_n$ + 0.24 y$_n$ + 0.44.
Esta transformación de coordenadas se elige el 7% de las veces y calcula cualquier punto dentro del foliolo representado por el triángulo azul a un punto dentro del triángulo correspondiente alterno a través del tallo (sin voltearlo).
La primera transformación de coordenadas dibuja el tallo. La segunda genera copias sucesivas del tallo y las frondas inferiores para formar el helecho completo. La tercera dibuja la fronda inferior a la izquierda. El cuarto dibuja la fronda inferior a la derecha. La naturaleza recursiva del SIF garantiza que el conjunto sea una réplica más grande de cada fronda. Debe tenerse en cuenta que el helecho completo está dentro del rango −2,1820 < x < 2.6558 y 0 ≤ y < 9.9983.

### Variedades mutantes

Jugando con los coeficientes, es posible crear variedades de helechos mutantes. En su artículo sobre fractales V-variables, Barnsley llama a este rasgo un "superfractal".
Sin embargo, un experimentador ha elaborado una tabla de coeficientes para producir otro helecho de aspecto notablemente natural, parecido a los helechos Cyclosorus o Thelypteridaceae. Estos valores paramétricos son:
| w | a | b | c | d | e | f | p |
| ƒ$_1$ | 0 | 0 | 0 | 0.25 | 0 | −0.4 | 0.02 |
| ƒ$_2$ | 0.95 | 0.005 | −0.005 | 0.93 | −0.002 | 0.5 | 0.84 |
| ƒ$_3$ | 0.035 | −0.2 | 0.16 | 0.04 | −0.09 | 0.02 | 0.07 |
| ƒ$_4$ | −0.04 | 0.2 | 0.16 | 0.04 | 0.083 | 0.12 | 0.07 |

## Código informático

Puede usarse el código siguiente para dibujar el helecho con un ordenador: