La superfórmula es una generalización de la superelipse y fue propuesta por Johan Gielis en 2003. [1] Gielis sugirió que la fórmula puede utilizarse para describir muchas formas y curvas complejas que se encuentran en la naturaleza. Gielis presentó una solicitud de patente relacionada con la síntesis de patrones generados por la superfórmula, que expiró el 10 de mayo de 2020. [2]
En coordenadas polares , con el radio y el ángulo, la superfórmula es:
Eligiendo diferentes valores para los parámetros se pueden generar diferentes formas.
La fórmula se obtuvo generalizando la superelipse, nombrada y popularizada por Piet Hein , matemático danés .
En los siguientes ejemplos los valores que se muestran encima de cada figura deben ser m , n 1 , n 2 y n 3 .
Un programa GNU Octave para generar estas figuras
función sf2d ( n, a ) u = [ 0 : .001 : 2 * pi ]; raux = abs ( 1 / a ( 1 ) .* abs ( cos ( n ( 1 ) * u / 4 ))) .^ n ( 3 ) + abs ( 1 / a ( 2 ) .* abs ( sin ( n ( 1 ) * u / 4 ))) .^ n ( 4 ); r = abs ( raux ) .^ ( - 1 / n ( 2 )); x = r .* porque ( u ); y = r .* pecado ( u ); trazar ( x , y ); fin
Es posible extender la fórmula a 3, 4 o n dimensiones, mediante el producto esférico de superfórmulas. Por ejemplo, la superficie paramétrica 3D se obtiene multiplicando dos superfórmulas r 1 y r 2 . Las coordenadas están definidas por las relaciones:
donde ( latitud ) varía entre − π /2 y π /2 y θ ( longitud ) entre − π y π .
Superfórmula 3D: a = b = 1; m , n 1 , n 2 y n 3 se muestran en las imágenes.
Un programa GNU Octave para generar estas figuras:
función sf3d ( n, a ) u = [ - pi : .05 : pi ]; v = [ -pi / 2 : .05 : pi / 2 ] ; nu = longitud ( u ); nv = longitud ( v ); para i = 1 : nu para j = 1 : nv raux1 = abs ( 1 / a ( 1 ) * abs ( cos ( n ( 1 ) .* u ( i ) / 4 ))) .^ n ( 3 ) + abs ( 1 / a ( 2 ) * abs ( sin ( n ( 1 ) * u ( i ) / 4 ))) .^ n ( 4 ); r1 = abs ( raux1 ) .^ ( - 1 / n ( 2 )); raux2 = abs ( 1 / a ( 1 ) * abs ( cos ( n ( 1 ) * v ( j ) / 4 ))) .^ n ( 3 ) + abs ( 1 / a ( 2 ) * abs ( sen ( n ( 1 ) * v ( j ) / 4 ))) .^ n ( 4 ); r2 = abs ( raux2 ) .^ ( - 1 / n ( 2 )); x ( i , j ) = r1 * cos ( u ( i )) * r2 * cos ( v ( j )); y ( i , j ) = r1 * sen ( u ( i )) * r2 * cos ( v ( j )); z ( i , j ) = r2 * sen ( v ( j )); finpara ; finpara ; malla ( x , y , z ); finfunción ;
La superfórmula se puede generalizar permitiendo m parámetros distintos en los dos términos de la superfórmula. Reemplazando el primer parámetro por y y el segundo parámetro por z : [3]
Esto permite la creación de estructuras rotacionalmente asimétricas y anidadas. En los siguientes ejemplos, a, b y son 1: