% ENM 4.14
% Denna kod skrevs på övningen 2017-09-21 i SF1545

clear

% Datapunkter
p = [10 16 25 40 60]';
q = [94 118 147 180 230]';

% Anpassa funktionen q = C*p^m
% Logaritmering ger log(q) = log(C) + m*log(p)
% Inför W = log(C)
% Obs: 'log' i Matlab är ln (e-logaritmen)
%      'log10' i Matlab är 10-logaritmen
A = [ones(size(p)), log(p)];
b = log(q);
c = A\b
W = c(1)
m = c(2)
C = exp(W)

% Residualvektorn
r = q - C*p.^m
rnorm = norm(r)
relativa_residualnormen = rnorm / norm(q) % cirka 2 procent
% (Man kan också titta på abs(r)./abs(q), vilket är det relativa
%  felet i varje mätpunkt. Prova gärna detta:)
rel_fel_per_punkt = abs(r)./abs(q)

% Förstås också bra att plotta ut datapunkterna och den anpassade
% kurvan för att se om det ser bra ut
