首页 > 编程笔记 > MATLAB笔记 阅读:2

polyfit在matlab中的用法(附带实例)

在 MATLAB 中,函数 polyfit() 采用最小二乘法对给定的数据进行多项式拟合,得到该多项式的系数。

polyfit() 函数的调用格式如下:
【实例】某数据的横坐标为 [0.3 0.4 0.7 0.9 1.2 1.9 2.8 3.2 3.7 4.5],纵坐标为 [1 2 3 4 5 2 6 9 2 7],对该数据进行多项式拟合。在编辑器窗口中依次输入:
clear all
x=[0.3 0.4 0.7 0.9 1.2 1.9 2.8 3.2 3.7 4.5];
y=[1 2 3 4 5 2 6 9 2 7];
p5=polyfit(x,y,5); %5阶多项式拟合
y5=polyval(p5,x);
p5=vpa(poly2sym(p5),5) %显示5阶多项式
p9=polyfit(x,y,9); %9阶多项式拟合
y9=polyval(p9,x);
figure; %画图显示
plot(x,y,'bo');
hold on;
plot(x,y5,'r:');
plot(x,y9,'g--');
legend('原始数据','5阶多项式拟合','9阶多项式拟合');
xlabel('x');
ylabel('y');
运行程序后,得到的 5 阶多项式如下:

p5 =
    0.8877*x^5 - 10.3*x^4 + 42.942*x^3 - 77.932*x^2 + 59.833*x - 11.673

运行程序后,多项式曲线拟合结果如下图所示:


图 1 多项式曲线拟合结果

由上图可以看出,在使用 5 阶多项式拟合时,拟合效果比较差。

当采用 9 阶多项式拟合时,得到的拟合结果与原始数据比较相符。当使用函数 polyfit() 进行拟合时,多项式的阶次最大不超过 length(x)-1。

相关文章