主要使用两个函数进行拟合
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 all
clc
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);%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');
多项式的拟合效果图为
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', '<', '>'}; %标记符