2012-10-03 136 views
4

我需要适应10个数据点(x,y)这个公式:MATLAB曲线拟合(椭圆形)

ay² + bxy + cx + dy + e = x² 

它告诉我,这是一个椭圆状的方程。我不能用通常的曲线拟合工具来做,因为它不是一个真正的功能(一个x对应于2 y s)。我不能使用椭圆曲线拟合,因为椭圆方程中没有c*xd*y。有任何想法吗?

在此先感谢。

编辑:油和AK4749都给出正确的答案!感谢你们!

回答

6

它与变量[A B C d E]的线性系统。您可以使用\来解决它:

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 
+0

嗨,我很好奇\'在这种情况下使用最小二乘法?你知道,10个方程有5个未知数。 – user1532230

+1

@ user1532230,是的,它确实使用最小二乘法。你可以看到那里的文档:http://www.mathworks.fr/fr/help/matlab/ref/mldivide.html – Oli

+0

@油,谢谢。棒极了! – user1532230