急求答案,考试中,在线等,matlab代码
用randint(5,2,[0,10])生成5*2的随即矩阵,其中第1列数据作为x的观测值,其中第2列数据作为y的观测值,来拟合二次曲线方程ax^2+bxy+cy^2=3...
用randint(5,2,[0,10])生成5*2的随即矩阵,其中第 1 列数据作为x的观测值,其中第 2 列数据作为y的观测值,来拟合二次曲线方程ax^2+bxy+cy^2=3,并画出拟合曲线
展开
1个回答
展开全部
这个二次曲线是一个椭圆曲线。
对于椭圆曲线的拟合其实算是有点复杂的,因为指标可以有多种取法,例如,按固定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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询