绘制最合适的多项式

时间:2013-06-15 23:22:56

标签: matlab

我需要编写一个脚本来加载一些包含变量x和y的数据文件,并将第一,第二,第三,第四和第五度多项式拟合到它。将数据绘制为图形上的蓝点,并使用相同轴上的不同颜色的线绘制所有五个多项式拟合。这就是应该的方式:

enter image description here

相反,我将多项式与数据分开。数据轴为([100 200 -0.2 0.2]),而我的polinoms位于轴([0 100 -0.2 0.2])。

我的剧本:

%Fitting Polynomials
Dat=load('randomData.mat');
[p1,S1,mu] = polyfit(x,y,1)
[Y1,delta]= polyval(p1,x,S1,mu)
[p2,S2,mu] = polyfit(x,y,2)
[Y2,delta]= polyval(p2,x,S2,mu)
[p3,S3,mu] = polyfit(x,y,3)
[Y3,delta]= polyval(p3,x,S3,mu)
[p4,S4,mu] = polyfit(x,y,4)
[Y4,delta]= polyval(p4,x,S4,mu)
[p5,S5,mu] = polyfit(x,y,5)
[Y5,delta]= polyval(p5,x,S5,mu)
figure;
plot(x,y,'b.','MarkerSize',10)
hold on 
plot(Y1,'r')
plot(Y2,'g')
plot(Y3,'m')
plot(Y4,'c')
plot(Y5,'k')
xlabel('X');
ylabel('Y');
title('Polynomial fitting to noisy data');
legend('Data','order 1','order 2','order 3','order 4','order 5')
hold off

1 个答案:

答案 0 :(得分:0)

plot(Y1,'r')

应该是

plot(x, Y1,'r');

等等

请记住,Y1实际上并不代表多项式关系,它只是在p1点评估的多项式polyval的样本矢量(x} }。