Clear Filters
Clear Filters

Best fit of ellipse equation to given data

13 views (last 30 days)
Hello everyone,
For the given ellipse equation denoted as follows:
with additional parameters of mc and PIc to include a rotation of the ellipse:
I need to find
  1. a and b (semi-major and semi-minor axes),
  2. y0 and x0 (center coordinates), and
  3. theta(rotation angle)
to have best fitted ellipse into my data which is give in the form of PI = f(m) with around 5-8 test points per dataset.
Given the fact that my data has various shapes I do not expect the ellipse to be very precise, but still I would like the best I can get out of this method. I have tried to achieve that with Curve Fitting app, using Custom Equation option, but the equation I have put into it was too complex (some errors occurred).
Can you please advice, what would be the most convenient way to achieve my goal?
Kind Regards

Accepted Answer

Bruno Luong
Bruno Luong on 27 Dec 2020
  5 Comments
Serg
Serg on 12 Jan 2021
It seems to work!
Just to assure myself:
  • "radii" contains semi-major and semi-minor axes;
  • "xc" and "yc" are center points;
  • "U" contains trygonometric functions of rotation angle;
Is that correct?
I am a bit confused, because if I use those to my initial equation, and input x(pi) as known, resultant y is far from what I would expect.
To solve the equation I use simple code:
Y = sym('Y');
a = max(radii);
b = min(radii);
deg = 143.8757;
x0 = xc;
y0 = yc;
X = 2
XC = X*cosd(deg) - Y*sind(deg);
YC = X*sind(deg) + Y*cosd(deg);
alpha = ((XC - x0)/a)^2;
beta = ((YC - y0)/b)^2;
[solY] = solve(alpha + beta == 1)
Y = vpa(solY)
Bruno Luong
Bruno Luong on 12 Jan 2021
"Just to assure myself:
  • "radii" contains semi-major and semi-minor axes;
  • "xc" and "yc" are center points;
  • "U" contains trygonometric functions of rotation angle;
Is that correct?"
Yes, you correctly understand.

Sign in to comment.

More Answers (0)

Products


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!