Contents

Linear regression

Create a figure with white background

h=figure;
set(h,'Color','w')
hold all
title('Linear regression by the method of least squares')
xlabel('x');
ylabel('y,y_m')

Measured values

Here the "measured" values are determined artificially using the function 2x+5 and introducing some randomnes for simulation of the measurement error.

x=0:0.1:1;
N=length(x);
ym=2*x+5*ones(size(x))+0.1*rand(size(x))-0.05*ones(size(x));
% Plot the measured values using circles
plot(x,ym,'ok')

Calculate the ecuation of the best fitting line using the method of

least squares

First the 'hardest way'

sumx=sum(x);
sumx2=sum(x.^2);
sumym=sum(ym);
sumxym=sum(x.*ym);
C=[sumx2 sumx; sumx N];
D=[sumxym; sumym];
% The solution of a linear equation system can be calculated in two ways:
% First: A=C\D;
% Second:
A=inv(C)*D;
% Now the vector 'A' contains the parameters of the best fitting line.
% Calculate the points of the line and plot the line.
y=polyval(a,x);
plot(x,y,'-k');

Using polyfit

Secondly the easiest way

a=polyfit(x,ym,1);
% Now the vector 'a' contains the parameters of the best fitting line.
% Calculate the points of the line and plot the line.
y=polyval(a,x);
plot(x,y,'-r');
legend('measured','estimated-hardest','estimated-easiest')