martes, 23 de octubre de 2007

El Triángulo de Sierpinski

El Triangulo de Sierpinski
Leyendo un libro sobre Topología me tope con algo llamado un Fractal, particularmente con uno llamado “el triangulo de Sierpinski” que surge como ejemplo de un teorema, me pareció curioso y por ello hago un extracto de dicho pasaje .
(tomado de TOPOLOGIA, U.A.M. pags. 14,15, CHAMIZO)



El teorema de la aplicación contractiva es la base de muchos métodos iterativos en cálculo numérico. Además se puede emplear en la demostración de importantes resultados teóricos como el “Teorema de la función inversa”. Para apreciar la ventaja de la generalidad, diremos que aplicado en cierto espacio métrico, cuyos elementos no son puntos sino subconjuntos de (léase el conjunto de los números reales de orden n), el teorema anterior se puede usar para aproximar conjuntos de naturaleza fractal con un ordenador. Como ejemplo de uno de ellos, si no hay nada en la tele uno puede ocuparse de traducir el siguiente programa en BASIC arcaico a su lenguaje de programación favorito y asombrarse con el resultado.

Escala=200.0 : x=0.0 : y=0.0
For j=1 to 6000
i=INT(3.0*RND)
if i=1 then x=x+1.0
if i=2 then x=x+0.5 : y=y+0.866
x=x/2.0 : y=y/2.0
plot escala*x, escala*y
next j
stop

(La función RND genera un número aleatorio entre 0 y 1 y el comando plot dibuja un punto en la pantalla dadas sus coordenadas).

Y claro que no había nada en la tele y siendo que mi lenguaje favorito es Fox, puse manos a la obra y la traducción es como sigue :
*Limpiar el dibujo anterior
CLEAR
this.Enabled=.f.
=RAND(-10)
x=0
y=0
*el 20,000 aumenta la resolución del triángulo
FOR j=1 TO 20000
i=INT(3.0*RAND())
IF i=1
x=x+1
ENDIF
IF i=2
x=x+0.5
y=y+0.866
ENDIF
x=x/2
y=y/2
*PSet dibuja un punto en el formulario
*se asume una propiedad en el formulario llamada escala
*de tipo numérica que inicializa en 10
thisform.PSet(thisform.escala*x,thisform.escala*y)
ENDFOR
this.Enabled=.t.

El código anterior puede ser insertado en el método interactivechange de un control spinner de tal forma como se muestra en la figura a continuación:

El “límite” del resultado se llama Triángulo de Sierpinski y es más misterioso que el de las Bermudas porque, según se dice, no es ni unidimensional ni bidimensional sino que tiene dimensión log3/log2=1.58496, increíblemente cada vez que se redibuja la imagen aumentando la escala, aparecen nuevos triángulos inscritos en el interior, en una perfecta división de tres triángulos internos invertidos cada vez.
El matemático polaco Waclaw Sierpinski introdujo este fractal en 1919. Partamos (iteración n=0) de la superficie de un triángulo equilátero de lado unidad. Seguidamente (iteración n=1) tomemos los puntos medios de cada lado y construyamos a partir de ellos un triángulo equilátero invertido de lado 1/2. Lo recortamos. Ahora (iteración n=2) repetimos el proceso con cada uno de los tres triángulos de lado 1/2 que nos quedan. Así que recortamos, esta vez, tres triángulos invertidos de lado 1/4. En la figura animada observamos hasta cinco iteraciones sucesivas. Si repetimos infinitamente el proceso obtendremos una figura fractal denominada triángulo de Sierpinski, quien diseñó este monstruo para demostrar, entre otras cosas, que era posible construir una curva que se "cruzaba" consigo misma en todos sus puntos ...
Les dejo el formulario para los que deseen satisfacer su curiosidad.

1 comentario:

Joaquín García dijo...

Hola Luis:
Felicidades por el excelente post y probaré el código que das.
Construimos el triángulo de Sierpinski con latas de refresco
(http://i-matematicas.com/blog/2009/02/27/construccion-del-triangulo-de-sierpinski-con-latas/) e impresionaba verlo. Ahora estamos con el tetraedro de Sierpinski con cañitas de refresco que tb impresiona saber la forma de aumentar al "infinito" la superficie por unidad de volumen(http://i-matematicas.com/blog/2009/10/05/tetraedro-fractal-de-sierpinski-con-pajitas-de-refresco/).
Salu2 Joaquín