Siguiente: ggf, Anterior: finance [Índice general][Índice]
Siguiente: Definiciones para IFS fractals, Anterior: fractals, Subir: fractals [Índice general][Índice]
Este paquete define algunos fractales:
- con IFS (Iterated Function System) aleatorias: triángulo de Sierpinsky, un árbol y un helecho.
- Fractales complejos: conjuntos de Mandelbrot y de Julia.
- Copos de Koch.
- Funciones de Peano: funciones de Sierpinski y Hilbert.
Autor: José Rammírez Labrador.
Para preguntas, sugerencias y fallos,
pepe DOT ramirez AAATTT uca DOT es
Siguiente: Definiciones para fractales complejos, Anterior: Introducción a fractals, Subir: fractals [Índice general][Índice]
Algunos fractales se pueden generar por medio de la aplicación iterativa de transformaciones afines contractivas de forma aleatoria; véase
Hoggar S. G., "Mathematics for computer graphics", Cambridge University Press 1994.
Definimos una lista con varias transformaciones afines contractivas, luego las vamos seleccionando de forma aleatoria y recursiva. La probabilidad de selección de una transformación debe estar relacionada con la razón de contracción.
Se pueden cambiar las transformaciones y encontrar nuevos fractales.
Triángulo de Sierpinski: 3 aplicaciones contractivas; constante de contracción de 0.5 y traslaciones. Todas las aplicaciones tienen la misma constante de contracción. El argumento n debe ser suficientemente alto, 10000 o mayor.
Ejemplo:
(%i1) load("fractals")$ (%i2) n: 10000$ (%i3) plot2d([discrete,sierpinskiale(n)], [style,dots])$
3 aplicaciones contractivas, todas ellas con el mismo coeficiente de contracción. El argumento n debe ser suficientemente alto, 10000 o mayor.
Ejemplo:
(%i1) load("fractals")$ (%i2) n: 10000$ (%i3) plot2d([discrete,treefale(n)], [style,dots])$
4 aplicaciones contractivas, cuyas probabilidades de selección deben estar relacionadas con su constante de contracción. El argumento n debe ser suficientemente alto, 10000 o mayor.
Ejemplo:
(%i1) load("fractals")$ (%i2) n: 10000$ (%i3) plot2d([discrete,fernfale(n)], [style,dots])$
Siguiente: Definiciones para cops de Koch, Anterior: Definiciones para IFS fractals [Índice general][Índice]
Conjunto de Mandelbrot.
Esta función debe realizar muchas operaciones y puede tardar bastante tiempo en ejecutarse, tiempo que también depende del número de puntos de la malla.
Ejemplo:
(%i1) load("fractals")$ (%i2) plot3d (mandelbrot_set, [x, -2.5, 1], [y, -1.5, 1.5], [gnuplot_preamble, "set view map"], [gnuplot_pm3d, true], [grid, 150, 150])$
Conjuntos de Julia.
Esta función debe realizar muchas operaciones y puede tardar bastante tiempo en ejecutarse, tiempo que también depende del número de puntos de la malla.
Ejemplo:
(%i1) load("fractals")$ (%i2) plot3d (julia_set, [x, -2, 1], [y, -1.5, 1.5], [gnuplot_preamble, "set view map"], [gnuplot_pm3d, true], [grid, 150, 150])$
Véase también julia_parameter
.
Valor por defecto: %i
Parámetro complejo para fractales de Julia. Su valor por defecto es %i
,
y otros que se sugieren son: -.745+%i*.113002
, -.39054-%i*.58679
,
-.15652+%i*1.03225
, -.194+%i*.6557
y .011031-%i*.67037
.
Mientras que la función julia_set
implementa la transformación
julia_parameter+z^2
, la función julia_sin
implementa
julia_parameter*sin(z)
. Véase el código fuente para más detalles.
Este programa es lento porque calcula muchos senos; el tiempo de ejecución también depende del número de puntos de la malla.
Ejemplo:
(%i1) load("fractals")$ (%i2) julia_parameter:1+.1*%i$ (%i3) plot3d (julia_sin, [x, -2, 2], [y, -3, 3], [gnuplot_preamble, "set view map"], [gnuplot_pm3d, true], [grid, 150, 150])$
Véase también julia_parameter
.
Siguiente: Definiciones para curvas de Peano, Anterior: Definiciones para fractales complejos [Índice general][Índice]
Copos de Koch. La función snowmap
dibuja el copo de Koch
sobre los vértices de un polígono convexo inicial del
plano complejo. La orientación del polígono es importante.
El argumento nn es el número de recursividades de la transformación
de Koch, el cual debe ser pequeño (5 o 6).
Ejemplos:
(%i1) load("fractals")$ (%i2) plot2d([discrete, snowmap([1,exp(%i*%pi*2/3),exp(-%i*%pi*2/3),1],4)])$ (%i3) plot2d([discrete, snowmap([1,exp(-%i*%pi*2/3),exp(%i*%pi*2/3),1],4)])$ (%i4) plot2d([discrete, snowmap([0,1,1+%i,%i,0],4)])$ (%i5) plot2d([discrete, snowmap([0,%i,1+%i,1,0],4)])$
Anterior: Definiciones para cops de Koch, Subir: fractals [Índice general][Índice]
Funciones continuas que cubren un área. Aviso: el número de puntos crece exponencialmente con n.
Curva de Hilbert. El argumento nn debe ser pequeño (por ejemplo, 5). Maxima se puede detener si nn es 7 o mayor.
Ejemplo:
(%i1) load("fractals")$ (%i2) plot2d([discrete,hilbertmap(6)])$
Curva de Sierpinski. El argumento nn debe ser pequeño (por ejemplo, 5). Maxima se puede detener si nn es 7 o mayor.
Ejemplo:
(%i1) load("fractals")$ (%i2) plot2d([discrete,sierpinskimap(6)])$
Siguiente: ggf, Anterior: finance [Índice general][Índice]