急求答案,考试中,在线等,matlab代码

用randint(5,2,[0,10])生成5*2的随即矩阵,其中第 1 列数据作为x的观测值,其中第 2 列数据作为y的观测值,来拟合二次曲线方程ax^2+bxy+cy^2=3,并画出拟合曲线

这个二次曲线是一个椭圆曲线。

对于椭圆曲线的拟合其实算是有点复杂的,因为指标可以有多种取法,例如,按固定x取y的误差,或者固定y取x的误差,以及取点到曲线的距离等多种方式。我以前还试过对点进行变换,在极坐标上进行拟合的做法。这里用曲面到拟合点最近的方法来做。

 

参考代码:

d=randint(5,2,[0,10]);
f=@(C,d)C(1)*d(:,1).^2+C(2)*d(:,1).*d(:,2)+C(3)*d(:,2).^2-3;
C=lsqcurvefit(f,[1 1 1],d,zeros(5,1));
syms x y
plot(d(:,1),d(:,2),'ro')
hold on
axis equal
ezplot(C(1)*x^2+C(2)*x*y+C(3)*y^2-3,[-5 15])
hold off

温馨提示:答案为网友推荐,仅供参考
相似回答