作业帮 > 综合 > 作业

matlab 空间点 拟合直线

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 23:55:56
matlab 空间点 拟合直线
怎么求逼近一系列点,而且通过固定点的直线?
类似下面的
x=[0 2 4 6 8 10];
y=[0 2 13 23 43 62];
f=poly2sym(polyfit(x,y,length(x)-1));
plot(x,y,'ro');
hold on
ezplot(f,[min(x) max(x)])
再问: 我是三维的,x、y、z 通过一些点拟合,要而且要通过起始点(x0,y0,z0),请教如何拟合?谢谢
再答: 使用如下代码可以完成与上面代码一致的功能:
x=[0 2 4 6 8 10];
y=[0 2 13 23 43 62];
plot(x,y,'ro');
hold on;
t=1:length(x);
i=1:.1:length(x);
X=polyval(polyfit(t,x,length(t)-1),i);
Y=polyval(polyfit(t,y,length(t)-1),i);
plot(X,Y);
axis tight;
函数是什么?函数是一个集合(定义域)到另一个集合(值域)的映射,这个映射关系你可以通过直接的如 y=f(x)的方式表示,也可以用y=g(t),x=h(t)的方式表示,第一段代码是直接的,第二段代码是参数的,三维的情况无非是多了个z=k(t),作图时候用plot3 代替 plot。
你拟合时所使用的点,都是要近似通过的,你可以把(x0,y0,z0)当作第一个拟合点,或者,你假定当t=0的时候,x y z分别是 x0 y0 z0,即x y z 有 x=x0 + a1*t + a2*t^2 + … + an*t^n 的形式