POLYFIT3(X,Y,N,NUL,W) finds the coefficients of a polynomial P(X) of degree N that fits the data, P(X(I))~=Y(I), in a least-squares sense. Any of the coefficients can be forced to be zero, and data can be weighted. NUL is a vector with coefficients forced to be zero in usual order.W is a vector containing the weights of data.POLYFIT3(X,Y,N,NUL) assumes that all weights of data are equal to 1.POLYFIT3(X,Y,N,[],W) allows to weight data without forcing any coefficient to be zero.The original usage is still available.Tested under MATLAB 6.0.0.DEMO (for not weighted data).x=linspace(0,11,12);noise=(rand(size(x))-0.5);y=3-x.^3+2*x.^5+noise;[p1,S] = polyfit3(x,y,5)w=ones(size(x));[p2,S] = polyfit3(x,y,5,[2 4 5],w)close all;figure;plot(x,y,'.r'); hold on;x=linspace(0,11);plot(x,polyval(p1,x),'b');plot(x,polyval(p2,x),'k');DEMO (For weighted data).x=linspace(-5,5,11);noise=(rand(size(x))-0.5);y=x.^4+noise; y(11)=y(11)+100;[p1,S] = polyfit3(x,y,4)w=ones(size(x)); w(11)=0.1;[p2,S] = polyfit3(x,y,4,[2 3 4 5],w)close all;figure;plot(x,y,'.r'); hold on;x=linspace(-5,5,11);plot(x,polyval(p1,x),'b');plot(x,polyval(p2,x),'k');
↧