问题
I need to fit 10 data points (x,y
) into this equation:
ay² + bxy + cx + dy + e = x²
It's told that this is a ellipse-like equation. I can't do it with usual curve fitting tools because it is not really a function (one x
corresponds to 2 y
s). I can't either use ellipse curve fitting because there is no c*x
and d*y
in an ellipse equation. Any ideas?
Thanks in advance.
EDIT: Both Oil and AK4749 gave right answer! Thank you guys!
回答1:
It is a linear system with variables [a b c d e]. You can use \
to solve it:
x=rand(10,1);
y=rand(10,1);
[y.^2,x.*y,x,y,ones(numel(x),1)]\x.^2
ans =
-0.4437 %% a
1.1034 %% b
0.5337 %% c
-0.2808 %% d
0.0402 %% e
回答2:
Give this a shot:
http://www.mathworks.com/matlabcentral/fileexchange/3215-fitellipse
来源:https://stackoverflow.com/questions/12716177/matlab-curve-fitting-ellipse-like