Best fit of ellipse equation to given data

31 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Bruno Luong
Bruno Luong il 27 Dic 2020
  5 Commenti
Serg
Serg il 12 Gen 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 il 12 Gen 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.

Accedi per commentare.

Più risposte (0)

Prodotti


Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by