主要使用两个函数进行拟合
p5=polyfit(x,y,5)函数:x表示拟合的离散数据的x的值,y表示拟合的y的离散值,5表示5阶拟合
y5=polyval(p5,x)函数,主要用于求得拟合的误差,p5表示前面的数据拟合p5,x为离散数据的x范围
相较之前的理解,可以使用
p5=vpa(poly2sym(p5),5);
用于生成多项式
clear allclcx=[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);%ployval用来计算误差%显示5阶的多项式p5=vpa(poly2sym(p5),5);p9=polyfit(x,y,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');
多项式的拟合效果图为
拟合数据的多项式为:
p5 =
0.8877x^5 - 10.3x^4 + 42.942x^3 - 77.932x^2 + 59.833*x - 11.673
补充:matlab’画图过程中使用的线的型号和颜色总结
颜色、线型、标记符如下所示:
color = {'r', 'g', 'b', 'c', 'm', 'y', 'k', 'w', 'r', 'g', 'b'}; %颜色linestyle = {'-.', '-', '--', ':', '-.', '-', '--', ':', '-.', '-', '--'}; %线型markerstyle = {'+', 'o', '*', '.', 'x', 's', 'd', '^', 'v', '<', '>'}; %标记符