作业帮 > 综合 > 作业

做实验得到的一组自变量和两组因变量怎么用matlab用一条曲线拟合?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/06/11 10:21:01
做实验得到的一组自变量和两组因变量怎么用matlab用一条曲线拟合?
x=0:20:200;
y=[0 6.2 12.4 18.8 25.0 31.6 38.1 44.6 51 57.5 64.1 ];
y1=[0 6.3 12.7 19.2 25.7 32.2 38.6 45.1 51.4 57.8 64.1];
可以画出散点图,不过我想用一条直线拟合它,
拟合程序如下:
x=0:20:200;
y=[0 6.2 12.4 18.8 25.0 31.6 38.1 44.6 51 57.5 64.1 ];
y1=[0 6.3 12.7 19.2 25.7 32.2 38.6 45.1 51.4 57.8 64.1];
a=polyfit(x,y,1);
syms X
fy=vpa(poly2sym(a,X),4)
xi=0:200;
yi=polyval(a,xi);
a1=polyfit(x,y1,1);
yi1=polyval(a1,xi);
fy1=vpa(poly2sym(a1,X),4)
plot(x,y,'r*',xi,yi,'r',x,y1,'g.',xi,yi1,'g')
legend('x-y原始点','x-y拟合直线','x-y1原始点','x-y1拟合直线')
结果

再问: 谢谢您的回答。不过我的意思是用一条直线拟合所有的离散点。就是如果手工画图就是一些点在直线上面一些点在直线下面那种。而不是分别拟合。
再答: 那程序改成如下:x=[0 20 40 60 80 100 120 140 160 180 200 0 20 40 60 80 100 120 140 160 180 200]
y=[0 6.2 12.4 18.8 25.0 31.6 38.1 44.6 51 57.5 64.1 0 6.3 12.7 19.2 25.7 32.2 38.6 45.1 51.4 57.8 64.1];
a=polyfit(x,y,1);
syms X
fy=vpa(poly2sym(a,X),4)
xi=0:0.11:200;
yi=polyval(a,xi);
plot(x,y,'g.',xi,yi,'r')
legend('x-y原始点','x-y拟合直线')