
La función de Weierstrass-Mandelbrot (a menudo abreviada como función WM y a veces denominada ruido de Weierstrass-Mandelbrot) es una generalización de la función de Weierstrass clásica , extendida a dimensiones superiores para modelar fenómenos fractales naturales . Se utiliza frecuentemente en la generación de terrenos , particularmente en entornos simulados para robótica y pruebas de vehículos autónomos . A diferencia de su contraparte unidimensional, la función WM en múltiples dimensiones muestra direccionalidad, anisotropía y multifractalidad, lo que la hace adecuada para simulaciones de superficies físicamente realistas. [ 1 ]
Formulación matemática
La definición más común de la función de la memoria de trabajo es:
dónde:
- es la altura del terreno en las coordenadas espaciales,
- son las coordenadas espaciales 2D en el plano del suelo,
- es un factor de normalización,
- es el factor de escala de frecuencia,
- es la dimensión fractal,
- es una fase aleatoria distribuida uniformemente,
- es el número de direcciones angulares,
- es el índice de frecuencia máxima,
- es la longitud de muestreo,
- es el coeficiente de escala. [ 2 ]

La función WM genera superficies estadísticamente autosimilares con control sobre la rugosidad, la orientación y la distribución de frecuencia, lo que la hace ideal para modelar topografías realistas e irregulares.
Historia
La función de Weierstrass-Mandelbrot fue estudiada y nombrada explícitamente por primera vez en un artículo de 1980 de Michael V. Berry y ZV Lewis, titulado «Sobre la función fractal de Weierstrass-Mandelbrot». [ 3 ] Este trabajo fue publicado en las Actas de la Royal Society y marcó la introducción inicial de la función como un objeto fractal con aplicaciones en física y matemáticas. Berry y Lewis proporcionaron visualizaciones generadas por computadora de la función, lo que ayudó a establecerla como un modelo útil para los fenómenos fractales. La función extiende la función clásica de Weierstrass , que fue introducida originalmente a finales del siglo XIX por Karl Weierstrass como un ejemplo de una función continua pero no diferenciable en ningún punto. La función de Weierstrass-Mandelbrot se basa en este fundamento al incorporar características multifractales y multidimensionales, como se exploró más a fondo en estudios posteriores como los de Marcel Ausloos y DH Berman en 1985. [ 4 ] Desde entonces, la función se ha adoptado en una variedad de campos, incluido el modelado de terrenos, debido a su capacidad para simular superficies rugosas realistas y autosimilares.
Uso en la generación de terrenos
La función de Weierstrass-Mandelbrot se ha utilizado ampliamente en la generación procedimental de terrenos digitales. Su naturaleza multifractal permite la síntesis de mapas de elevación realistas para evaluar el rendimiento de vehículos terrestres, en particular robots autónomos que navegan por entornos accidentados o fuera de carretera. [ 2 ]
Esta función resulta especialmente útil para probar los módulos de suspensión, tracción y planificación de trayectorias de vehículos terrestres autónomos en simulaciones por ordenador.
Implementación en Python / NumPy
import numpy as npdef weierstrass_mandelbrot_3d ( x , y , D , G , L , gamma , M , n_max ): """ Calcula la función de Weierstrass-Mandelbrot 3D z(x, y). Parámetros: x, y : 2D np.ndarrays Matrices Meshgrid de coordenadas espaciales. D : float Dimensión fractal (normalmente entre 2 y 3). G : float Coeficiente de rugosidad de amplitud. L : float Ancho transversal del perfil. gamma : float Factor de escala de frecuencia (normalmente > 1). M : int Número de crestas (ángulos azimutales). n_max : int Índice de frecuencia de corte superior. Devuelve: z: np.ndarray 2D El campo de altura generado por la función WM. """ A = L * ( G / L ) ** ( D - 2 ) * ( np . log ( gamma ) / M ) ** 0.5 z = np . zeros_like ( x )para m en rango ( 1 , M + 1 ): theta_m = np . arctan2 ( y , x ) - np . pi * m / M phi_mn = np . random . uniform ( 0 , 2 * np . pi , size = n_max + 1 )para n en rango ( n_max + 1 ): gamma_n = gamma ** n r = np . sqrt ( x ** 2 + y ** 2 ) term = np . cos ( phi_mn [ n ]) - np . cos ( 2 * np . pi * gamma_n * r / L * np . cos ( theta_m ) + phi_mn [ n ] ) z += gamma ** (( D - 3 ) * n ) * termdevolver A * zVéase también
Referencias
- ↑ Jackson, Robert (2012). "Generación de terreno fractal para simulación de vehículos" . International Journal of Vehicle Autonomous Systems . 10 (1/2): 3–18 . doi : 10.1504/IJVAS.2012.047693 .
- 1 2 Casey D. Majhor y Jeremy P. Bos. "Generación de terreno multifractal para la evaluación de vehículos terrestres autónomos todoterreno". Preimpresión de arXiv arXiv:2501.02172 (2025). arXiv:2501.02172
- ↑ Berry, Michael V.; Lewis, ZV (1980). "Sobre la función fractal de Weierstrass-Mandelbrot" (PDF) . Proceedings of the Royal Society A. 370 ( 1743): 459–484 . doi : 10.1098/rspa.1980.0080 .
- ↑ Ausloos, Marcel; Berman, DH (1985). "Una función multivariada de Weierstrass-Mandelbrot". Actas de la Royal Society A. 400 (1819): 331– 350. doi : 10.1098/rspa.1985.0083 .
Enlaces externos
- Weisstein, Eric W. "Función de Weierstrass" . MundoMatemático .
- Artículo sobre generación de terrenos multifractales en arXiv
- Terreno fractal para simulación de vehículos
- Función de memoria de trabajo multivariada en ResearchGate
- Fractales
- Generación procedimental
- Modelos digitales de elevación
- Modelado matemático
- Curvas fractales
- Ruido (gráficos)
- Fragmentos de análisis matemático
- Algoritmos y estructuras de datos básicos