pcf.m
Inputsamp = (0:0.1:1)';result = sin (2*pi*inputsamp); Gsnoise= Randn ( One,1)*0.1; observation= result +gsnoise;x=(0:0.01:1)';Y=sin (2*pi*x);%{Figure;plot (Inputsamp, observation,'*', X, Y,'--r.');Set(GCA,'Xlim', [-0.2 1.2]);Set(GCA,'Ylim', [-1.5 1.5]);%}%Y = w0+w1*x+w2* (x^2)+... .. theta= Zeros (4,1); Theta=calcparameter (inputsamp,observation, theta);p Redval=calvalue (x, theta); Figure;plot (Inputsamp, observation,'*', X, Y,'--r.', X, Predval,'--g.');Set(GCA,'Xlim', [-0.2 1.2]);Set(GCA,'Ylim', [-1.5 1.5]);
Calcparameter.m
function theta =calcparameter (inputsamp,observation, theta) maxiteration=8000; Alpha=1; M=length (theta); n=Length (inputsamp);d ATA=ones (M, N);d ATA (1,:) =ones (1, n); fori =2: M data (i,:)= Data (I-1,:). *inputsamp';End fori =1: Maxiteration predval= Data'*theta;Error = Predval-observation; Grad= data*error; Theta= theta-alpha*grad/N; ER=mean (ABS (error)); fprintf ('Iter%d:error:%f\n', I, er); endend
Calvalue.m
function Predval == = = ones (n, m); for 2 : M = Data (:, I-1).* = data*theta;end
Polynomial Curve Fitting