MATLAB Answers

General conic curve fit with constrained coefficients

6 views (last 30 days)
Scott Larwood
Scott Larwood on 26 Feb 2021
Edited: Matt J on 1 Mar 2021
Hello,
I would like to fit a set of xy points to a general conic equation of the form:
ax^2 + bxy + cy^2 +dx + ey + f = 0
where I need to constrain the coefficient "c" to zero. So I would like to fit:
ax^2 + bxy +dx + ey + f = 0
to determine the values of the coefficients.
I have tried:
but I cannot determine how to contrain the coefficient. It gives me a good fit, but the coefficient "c" is non-zero. The fit is not good if I plot it with the "c" coefficient set to zero.
  1 Comment
Matt J
Matt J on 1 Mar 2021
It would be recommendable to attach a single.mat file containing your x,y data, so we can play with it.

Sign in to comment.

Accepted Answer

Matt J
Matt J on 1 Mar 2021
Edited: Matt J on 1 Mar 2021
Here's a basic analytical fit, using the tools in this File Exchange package:
[xy,T]=conicFit.homogNorm([x(:),y(:)].');
x=xy(1,:).'; y=xy(2,:).';
q = conicFit.mostnull([x.^2, x.*y, x, y, x.^0]);
C=[q(1), q(2), q(3);
0 0 q(4);
0 0 q(5)];
C= T.'*(C/2+C.'/2)*T;
[a, b, d, e, f] = deal(C(1), 2*C(4), 2*C(7), 2*C(8), C(9));

More Answers (1)

Shadaab Siddiqie
Shadaab Siddiqie on 1 Mar 2021
From my understanding you want to create conic curve with constrained coefficients. Here is a similar question which might help you.

Community Treasure Hunt

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

Start Hunting!