View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.misc
JLatham JLatham is offline
external usenet poster
 
Posts: 2,203
Default Calculate the Circumference of an ellipse

Dana,
I can easily code up exactly what was put into the formula. The hard work
has been done in figuring out the original buildup of that formula.

I'm going to defer to David regarding the accuracy of anything or
relationship to a circle etc. In the reading I did, some models work well
for an ellipse that comes close to being a circle, while others work better
for a flatter ellipse. But it was generally accepted that the model that I
coded from is the 'most' accurate of all for both almost-a-circle and
almost-a-straight line ellipses.

Note that on the referenced Wikipedia page, 10000 and 9975 returns a value of
9987.5039111393
62753.3378298691 looks more like a value that would appear with the minor
semi-axis at a very small value (and differs by one decimal place). I'll
look at this closer shortly. And I'll post back with VBA code for a function
vs worksheet formula.

"Dana DeLouis" wrote:

Hi J. Maybe we can expand your excellent reference to a Custom
function. Here, we factor out a common expression, and add in the 2 Pi
to get the Perimeter. This uses the first example from your reference:

Sub TestIt()
'// Ellipse Perimeter
Debug.Print Perimeter(10000, 9975)
End Sub

Function Perimeter(a, b)
Dim k As Double

k = 3 * ((a - b) / (a + b)) ^ 2
Perimeter = (a + b) * (1 + k / (10 + Sqr(4 - k))) * [Pi()]
End Function

Returns:
62753.3378298691

I get the same result using a math program...
a = 10000;
b = 9975.;
4*a*EllipticE[1 - b^2/a^2]

62753.3378298691`

Wow. I would say that's as good an approximation as it gets.
Thanks for the reference. :)

Since the eccentricity is not very large, we can sense that the solution
"should" be a little less than the following, which it is.
? 2*10000*[Pi()]
62831.8530717959

= = = = =
Dana DeLouis



JLatham wrote:
Disclaimer: I do not hold a degree in mathematics (heck, I flunked college
algebra the first time around) and I don't even play one on TV or in any
Intel advertisements. But...

You got me curious so I went searching for coded solutions to the problem
and couldn't find any expressed as an Excel formula. What I did discover is
that a sharp fellow by the name of Srinivasa Ramanujan came up with 2
formulas in 1914 that are now accepted as being very accurate, with the 2nd
effort being the more accurate of the two. All this is shown at
http://en.wikipedia.org/wiki/Circumference

So I worked at implementing his 2nd approximation as an Excel spreadsheet
formula and I believe I've succeeded:
Given the ellipse's major semi-axis in B1 and
the ellipse's minor semi-axis in B2, then
=(0.5*(B1+B2))*(1+((3*((B1-B2)/(B1+B2))^2)/(10+SQRT((4-(3*((B1-B2)/(B1+B2))^2))))))
gives me results shown on that same Wiki page for the various values of b
with a value of 10000 for the major semi-axis value.

Since this particular approximation appears to be the Gold Standard of all
approximations for the circumference of an ellipse, hopefully it will suit
your needs.


"M" wrote:

Is there a formula to Calculate the Circumference of an ellipse in excel?

.