使用 Matlab 进行曲线拟合

多项式拟合

在matlab中,用polyfit函数来求得最小二乘拟合多项式的系数,再用polyval函数按所得的多项式计算所给点上的函数近似值。

x=linspace(0,2*pi,20);
y=sin(x);
p=polyfit(x,y,3)
y1=polyval(p,x);
plot(x,y,':o',x,y1,'-*')
legend('real-sin(x)','fit-x(3)')

场景1 : 实验数据与标准数据对比

这时候,两组数据,x 和 y, 应该是近似相等的关系, y = kx +b, k近似于1, b 近似于 0 . y 和 y1 画出来应该就是近似一条曲线分不开如果数据足够相似的话.

x=[...];
y=[...];
p=polyfit(x,y,1) // print fit coefs
y1=polyval(p,x);
plot(x,y,':o',x,y1,'-*')
legend('real','fit')

Ref

猜你喜欢

转载自blog.csdn.net/baishuo8/article/details/80884052