MATLAB polyfit函数——多项式拟合

一、基本形式

p = polyfit(x,y,n)

    此函数用一个n次多项式来拟合一组数据点(x,y),并且将多项式系数以数组p的形式输出,p中的系数按降幂排列,数组长度为 n+1。

p(x)=p_{1}x^{n}+p_{2}x^{n-1}+...+p_{n}x+p_{n+1}

    如果要将拟合好的多项式系数绘制出来,可以使用polyval函数:

y1 = polyval(p,x1)

    此函数的作用是对给定的x1的值,通过多项式系数数组p计算对应的y1值,之后就可以方便地利用x1和y1来绘制多项式曲线了。x1一般是用linspace函数定义好的更精细的自变量值。

更完整的polyfit函数介绍,见:多项式曲线拟合

二、示例

    将通流面积x与流经阀口的质量流量y的10组数据用二次多项式拟合,并将数据点和二次多项式绘制成图:

x = [0.9181,1.1006,1.2803,1.4574,1.6317,1.8033,1.9721,2.1382,2.3016,2.4623];
y = [0.1108,0.1306,0.1529,0.1805,0.1972,0.2181,0.2412,0.2601,0.2864,0.3195];
p = polyfit(x,y,2);
xx = linspace(0.8,3);
yy = polyval(p,xx);
figure
plot(x,y,'ko',xx,yy,'LineWidth',2,'MarkerFaceColor','k');

 运行后,数组p的值为[0.0155,0.0784,0.0271],说明拟合的二次多项式为:

p(x)=0.0155x^{2}+0.0784x+0.0271

猜你喜欢

转载自blog.csdn.net/Ronko_G/article/details/130381406