Русская Википедия:Суперформула (уравнение)
Суперформула является обобщением суперэллипса и впервые была выведена Йоханом Гиелисом в 2003 году.[1] Гиелис предположил использовать формулу для описания сложных форм и кривых, которые встречаются в природе.
В полярной системе координат с радиусом <math>r</math> и углом <math>\varphi</math> суперформула выглядит так:
- <math>r\left(\varphi\right) =
\left(
\left| \frac{\cos\left(\frac{m\varphi}{4}\right)}{a} \right| ^{n_2}
+
\left| \frac{\sin\left(\frac{m\varphi}{4}\right)}{b} \right| ^{n_3}
\right) ^{-\frac{1}{n_{1}}}. </math> Выбирая различные значения параметров <math>a, b, m, n_1, n_2, n_3</math>, получаются различные формы.
Формула получена путём обобщения суперэллипса, который, в свою очередь, был выведен французским математиком Габриелем Ламе, а назван и популяризирован датским математиком Питом Хейном.
Обобщение
Суперформулу можно обобщить, заменив параметр m двумя новыми параметрами y и z:[2]
- <math>r\left(\varphi\right) =
\left(
\left| \frac{\cos\left(\frac{y\varphi}{4}\right)}{a} \right| ^{n_2}
+
\left| \frac{\sin\left(\frac{z\varphi}{4}\right)}{b} \right| ^{n_3}
\right) ^{-\frac{1}{n_{1}}} </math> Это позволяет создавать асимметричные и вложенные структуры. В следующих примерах <math>a, b, n_2</math> и <math>{n_3}</math> равны 1:
Файл:SuperformulaU-several-structures.svg
Построения
Пример программы в GNU Octave для генерации этих фигур:
function 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.*cos(u);
y=r.*sin(u);
plot(x,y);
end
3 мерная суперформула: a = b = 1; m, n1, n2 И n3 , показаны на изображениях.
Файл:Sf3d 3257.svg | Файл:Sf3d 3.5.5.5.svg | Файл:Sf3d 3301515.svg | Файл:Sf3d 7284.svg |
Файл:Sf3d 5111.svg | Файл:Sf3d 4.5.54.svg | Файл:Sf3d 8.5.58.svg | Файл:Sf3d 4121515.svg |
Пример программы в GNU Octave для генерации этих фигур:
function sf3d(n, a)
u=[-pi:.05:pi];
v=[-pi/2:.05:pi/2];
nu=length(u);
nv=length(v);
for i=1:nu
for 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(sin(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*sin(u(i))*r2*cos(v(j));
z(i,j)=r2*sin(v(j));
endfor;
endfor;
mesh(x,y,z);
endfunction;
Примечания
Ссылки
- Сайт о суперформуле и её создателе Джоне Гиелисе http://genicap.com/