% ENM 4.3
% Kod till övningen 2017-09-28 i SF1514/18/19

clear

% Datapunkter
t = [0 1 3 4]';
y = [1 8 11 20]';

% (a) p(t) = c1 + c2*t
A = [ones(size(t)), t]
b = y
c = A\b % Minstakvadratmetoden
% Annat alternativ: polyfit
coeff = polyfit(t,y,1) % koefficienter i omvänd ordning

r = b - A*c % residualvektorn
normr = norm(r)

% Rita
clf % rensa figuren
plot(t,y,'o') % datapunkter
hold on
tfin = linspace(0,4);
yfin = c(1) + c(2)*tfin; % rät linje
plot(tfin,yfin)

% (b) p(t) = c1
A = [ones(size(t))]
b = y
c = A\b % Minstakvadratmetoden

r = b - A*c % residualvektorn
normr = norm(r)
yfin = c(1) + 0*tfin; % rät linje
plot(tfin,yfin)

% (c) p(t) = c2*t
A = [t]
b = y
c = A\b % Minstakvadratmetoden

r = b - A*c % residualvektorn
normr = norm(r)
yfin = c(1)*tfin; % rät linje
plot(tfin,yfin)

% Residualvektorns norm är minst i (a).
