MATLAB Curve Fitting (Ellipse-like)

走远了吗. 提交于 2019-12-30 10:05:08

问题


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 ys). 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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!