From: Grover Hughes on
I'd like to have a formula (closed form if possible, series is
acceptable) which gives the numerical value of the perimeter of a
superellipse as defined by the formula

(x/a)^n + (y/b)^n = 1

where n > 2 and a and b are the known semiaxes. I have searched
Wolfram Mathworld and Wikipedia without success. I DO have the area
formula, but need the same thing for the perimeter. Your help will be
much appreciated.

Grover Hughes
From: Valeri Astanoff on
On 20 déc, 23:41, Grover Hughes <ghug...(a)magtel.com> wrote:
> I'd like to have a formula (closed form if possible, series is
> acceptable) which gives the numerical value of the perimeter of a
> superellipse as defined by the formula
>
>   (x/a)^n + (y/b)^n = 1
>
> where n > 2 and a and b are the known semiaxes. I have searched
> Wolfram Mathworld and Wikipedia without success. I DO have the area
> formula, but need the same thing for the perimeter. Your help will be
> much appreciated.

Good day,

Assuming a super-ellipse with a=1 b<1 and n>=2,
I have generated (with Mathematica) this series :

u[b_,n_,k_]=
((-(1/2))^k*(2*k - 3)!!*
(-(((b^(n/(n - 1)) + 1)^((-2*k*(n - 1) - 1)/n)*
Hypergeometric2F1[(2*k*(n - 1) + 1)/n,
(2*k*(n - 1))/n,
(2*k*(n - 1) + n + 1)/n,
1/(b^(n/(n - 1)) + 1)]*b^(4*k))/(2*k*(n - 1) + 1))-
(Beta[1/(b^(n/(1 - n)) + 1),
(2*k*(n - 1) + 1)/n,
2*k*(1/n - 1) + 1]*b)/n))/(b^(2*k)*k!)

It seems to give acceptable results.

Here is a check example with an ellipse b=1/2 n=2 :

4*NSum[u[1/2, 2, k], {k, 0, Infinity}]

4.84422

A super-ellipse with n=5 and 10 terms :

4*NSum[u[1/2, 5, k], {k, 0, 10}]

5.44738

hth

--
Valeri Astanoff
From: Valeri Astanoff on
On 24 déc, 11:38, Valeri Astanoff <astan...(a)gmail.com> wrote:
> On 20 déc, 23:41, Grover Hughes <ghug...(a)magtel.com> wrote:
>
> > I'd like to have a formula (closed form if possible, series is
> > acceptable) which gives the numerical value of the perimeter of a
> > superellipse as defined by the formula
>
> >   (x/a)^n + (y/b)^n = 1
>
> > where n > 2 and a and b are the known semiaxes. I have searched
> > Wolfram Mathworld and Wikipedia without success. I DO have the area
> > formula, but need the same thing for the perimeter. Your help will be
> > much appreciated.
>
> Good day,
>
> Assuming a super-ellipse with a=1 b<1 and n>=2,
> I have generated (with Mathematica) this series :
>
> u[b_,n_,k_]=
> ((-(1/2))^k*(2*k - 3)!!*
> (-(((b^(n/(n - 1)) + 1)^((-2*k*(n - 1) - 1)/n)*
> Hypergeometric2F1[(2*k*(n - 1) + 1)/n,
> (2*k*(n - 1))/n,
> (2*k*(n - 1) + n + 1)/n,
>  1/(b^(n/(n - 1)) + 1)]*b^(4*k))/(2*k*(n - 1) + 1))-
> (Beta[1/(b^(n/(1 - n)) + 1),
> (2*k*(n - 1) + 1)/n,
> 2*k*(1/n - 1) + 1]*b)/n))/(b^(2*k)*k!)

Here is a more compact and symmetrical form :

-(((-(1/2))^k*(
Beta[1/(b^(n/(n-1))+1),(2*k*(n-1)+1)/n,
2*k*(1/n-1)+1]*b^(4*k)+
Beta[1/(b^(n/(1-n))+1),(2*k*(n-1)+1)/n,
2*k*(1/n-1)+1]*b)*(2*k-3)!!)/
(b^(2*k)*(n*k!)))

v.a.
From: Valeri Astanoff on
On 24 déc 2009, 13:46, Valeri Astanoff <astan...(a)gmail.com> wrote:

Good day,

Comparing superellipse perimeter formulas :

In[1]:= perimeterBySum[a_, b_, n_, km_] :=
Sum[-((2*(-1)^k*(b*Beta[1/(1 + (b/a)^(n/(1 - n))),
(1 + 2*k*(-1 + n))/n, 1 + 2*k*(-1 + 1/n)] +
a*(b/a)^(4*k)*Beta[1/(1 + (b/a)^(n/(-1 + n))),
(1 + 2*k*(-1 + n))/n, 1 + 2*k*(-1 + 1/n)])*
Gamma[-(1/2) + k])/((b/a)^(2*k)*(n*Sqrt[Pi]*k!))),
{k, 0, km}]

In[2]:= perimeterByNSum[a_, b_, n_, km_] :=
NSum[-((2*(-1)^k*(b*Beta[1/(1 + (b/a)^(n/(1 - n))),
(1 + 2*k*(-1 + n))/n, 1 + 2*k*(-1 + 1/n)] +
a*(b/a)^(4*k)*Beta[1/(1 + (b/a)^(n/(-1 + n))),
(1 + 2*k*(-1 + n))/n, 1 + 2*k*(-1 + 1/n)])*
Gamma[-(1/2) + k])/((b/a)^(2*k)*(n*Sqrt[Pi]*k!))),
{k, 0, km}]

In[3]:= perimeterByIntegrate[a_, b_, n_] :=
Integrate[(4*t^(-1 + 1/n)*Sqrt[b^2 + a^2*(1 - t)^(-2 + 2/n)*
t^(2 - 2/n)])/n, {t, 0, 1/(1 + (b/a)^(n/(1 - n)))}] +
Integrate[(4*a*t^(-1 + 1/n)*Sqrt[1 + (b^2*(1 - t)^(-2 + 2/n)*
t^(2 - 2/n))/a^2])/n, {t, 0, 1/(1 + (b/a)^(n/(-1 + n)))}]

In[4]:= perimeterByNIntegrate[a_, b_, n_] :=
NIntegrate[(4*t^(-1 + 1/n)*Sqrt[b^2 + a^2*(1 - t)^(-2 + 2/n)*
t^(2 - 2/n)])/n, {t, 0, 1/(1 + (b/a)^(n/(1 - n)))}] +
NIntegrate[(4*a*t^(-1 + 1/n)*Sqrt[1 + (b^2*(1 - t)^(-2 + 2/n)*
t^(2 - 2/n))/a^2])/n, {t, 0, 1/(1 + (b/a)^(n/(-1 + n)))}]

In[5]:= ellipsePerimeter[a_, b_] = 4*(a + b)*EllipticE[(a - b)^2/(a +
b)^2] -
(8*a*b*EllipticK[(a - b)^2/(a + b)^2])/(a + b);

In[6]:= perimeterBySum[1, 1/2, 2, 40] // N // Timing

Out[6]= {0.047, 4.84421}

In[7]:= perimeterByNSum[1, 1/2, 2, 40] // N // Timing
During evaluation of In[7]:= \[Infinity]::indet:
Indeterminate expression 0 ComplexInfinity encountered. >>

In[8]:= perimeterByIntegrate[1, 1/2, 2] // N // Timing
Out[8]= {13.25, 4.84422+ 4.21885*10^-15 \[ImaginaryI]}

In[9]:= perimeterByNIntegrate[1, 1/2, 2] // N // Timing
Out[9]= {0.016, 4.84422}

In[10]:= ellipsePerimeter[1, 1/2] // N // Timing
Out[10]= {0., 4.84422}

In[11]:= perimeterBySum[1, 1/2, 4, 40] // N // Timing
Out[11]= {0.141, 5.32803}

In[12]:= perimeterByNSum[1, 1/2, 4, 40] // N // Timing
During evaluation of In[12]:= \[Infinity]::indet:
Indeterminate expression 0 ComplexInfinity encountered. >>

In[13]:= perimeterByIntegrate[1, 1/2, 4] // N // Timing
Out[13]= {40.532, 5.32803}

In[14]:= perimeterByNIntegrate[1, 1/2, 4] // N // Timing
Out[14]= {0.016, 5.32803}

hth
--
Valeri Astanoff