Exempelsamingen 5.7

clear
x = (0:5:45)';
y = [70,85,85,50,30,25,25,30,60,65]';
xall = (0:1:45)';

% a) Interpolera genom punkterna 0, 10, 20 min, etc
x1 = (0:10:40)';
A = [x1.^4 x1.^3 x1.^2 x1 ones(length(x1),1)]; % alternativt: vander funktionen
y1 = y(1:2:9);
c1 = A\y1;
% Räkna ut interpolerade tider och jämför vid 5 min
p1 = polyval(c1,xall);
diff1 = p1(6) - y(2)

% b) Interpolera genom punkterna 5, 15 min, etc
x2 = (5:10:45)';
A = [x2.^4 x2.^3 x2.^2 x2 ones(length(x2),1)];
y2 = y(2:2:10);
c2 = A\y2;
% Räkna ut interpolerade tider och jämför vid 0 min
p2 = polyval(c2,xall);
diff2 = p2(1) - y(1)

% c) Minstakvadratanpassa
A = [x.^4 x.^3 x.^2 x ones(length(x),1)];
c3 = A\y;
p3 = polyval(c3,xall);
residual = y - A*c3;
maxres = max(abs(residual))

figure(1);
plot(x,y,'r*',xall,p1,'-',xall,p2,'--',xall,p3,':');

% d) Splines
figure(2);
plot(x,y,'r*',xall,spline(x,y,xall));
diff1 =

   13.8281


diff2 =

   24.5312


maxres =

    7.1329