Calcite | Level 5

## How can I fit the data with ellipse?

I have found some article how to fit some data with circle that is best (Fit a circle to data by Rick Wicklin, https://blogs.sas.com/content/iml/2015/06/08/fit-circle.html).

Now, I want to fit the same data with ellipse and I don't know how to rewrite the code.

I have some data as a result of measuring of tusks of wild boars. I think that the best fitting curve is logarithmic spiral, but for more complex view I need to compare data with more curves.

1 ACCEPTED SOLUTION

Accepted Solutions
SAS Super FREQ

## Re: How can I fit the data with ellipse?

Ah! I see from your program that you have already discovered my article about fitting a spiral to data. Good. You ought to be able to use a similar approach with the parameterization

```x = a*cos(theta);
y = b*sin(theta);```
3 REPLIES 3
SAS Super FREQ

## Re: How can I fit the data with ellipse?

1. Can you post some sample data?

2. Do you expect the eccentricity to be small?

3. Are your data aligned in coordinate directions so that you can use the elliptic equation

(x-x0)^2 /a^2 + (y-y0)^2 /b^2 = 1

or do you need to rotate the data first?

4. Do you have data only along a portion of the arc (as in the blog post you link to) or do you have data all the way around the ellipse?

Calcite | Level 5

## Re: How can I fit the data with ellipse?

Ad 1) There is a file (in attachment)  with some data.

Ad 2) Yes, I think the eccentricity might be small.

Ad 3) Data come from the picture of wild boar’s tusk, which was located in Geogebra and the coordinates of the boundary were determined. I am not sure if it is necessary before looking for the best fitting curve to rotate the coordinates.

Ad 4) I have only a portion of the arc. The arc of wild boar’s tusk is usually in a range up to 180°.

SAS Super FREQ

## Re: How can I fit the data with ellipse?

Ah! I see from your program that you have already discovered my article about fitting a spiral to data. Good. You ought to be able to use a similar approach with the parameterization

```x = a*cos(theta);
y = b*sin(theta);```
From The DO Loop