# Kamil Breguła - Lab 5 - ONIMN
## Laboraitum 5 - Interpolacja i Aproksymacja
```matlab
% Zaadanie 1
% A
plot(x_z1a, y_z1a, 'o')
fla = polyfit(x_z1a, y_z1a, 5)
y1a = polyval(fla, x_z1a)
% B
plot(x_z1b, y_z1b, 'o')
flb = polyfit(x_z1b, y_z1b, 3)
y1b = polyval(flb, x_z1b)
% Wykresy
clf
hold on
plot(x_z1a, y_z1a, 'o')
plot(x_z1a, y1a, 'g-')
legend('dane', '7 * x^3 + 4 * x^3 4.7270 * x^2 5x + 5.0110')
hold off
clf
hold on
plot(x_z1b, y_z1b, 'o')
plot(x_z1b, y1b, 'g-')
legend('dane', '1x^3 + 5x^2 + 6x + 8')
hold off
% Zadanie 2
x1 = [0:0.2:40]
y1 = interp1(x_z2, y_z2, x1, 'linear')
y2 = interp1(x_z2, y_z2, x1, 'cubic')
y3 = interp1(x_z2, y_z2, x1, 'spline')
clf
hold on
plot(x_z2, y_z2, 'r s-', 'MarkerSize',15)
plot(x1, y1, 'b * -')
plot(x1, y2, 'g ^ -')
plot(x1, y3, 'k d -')
legend('data', 'linear', 'cubic', 'spline')
hold off
% Zadanie 3
clf
xi = (datetime(2018, 1,1):minutes(1):datetime(2018, 1,2))
V = interp1(x_z3, T_z3, xi, 'spline')
clf
hold on
plot(x_z3, T_z3, 'r s -', 'MarkerSize', 15)
plot(xi, V, 'g ^ -', 'MarkerSize', 1)
legend('data', 'spline')
hold off;
% Zaadanie 4
fa = polyfit(x_z4, y_z4, 1);
fb = polyfit(x_z4, y_z4, 3);
fc = polyfit(x_z4, y_z4, 4);
ya = y_z4;
r_x = min(x_z4):0.1:max(x_z4)
r_ya = polyval(fa, r_x)
r_yb = polyval(fb, r_x)
r_yc = polyval(fc, r_x)
clf
grid on;
hold on
plot(x_z4, y_z4, 's', 'MarkerSize', 10)
plot(x_z4, y_z4, 'o')
plot(r_x, r_ya)
plot(r_x, r_yb)
plot(r_x, r_yc)
legend('ya', 'y', '1', 'rzad length(x) = 3', '4')
hold off
err1 = sum((y_z4 - polyval(fa, x_z4)).^2)
err2 = sum((y_z4 - polyval(fb, x_z4)).^2)
err3 = sum((y_z4 - polyval(fc, x_z4)).^2)
[err1, err2, err3]
# Zadaanie 5
clf
x = x_z5
y = y_z5
A=[1./x, x]
c1 = A\y
% c1 4.3531 c2 =1.2521
f1 = @(x, c) c1(1) ./ x + c1(2) .* x
rx1 = (min(x):0.02:max(x))
ry1 = f1(rx1, c1)
% B
x = x_z5
y = y_z5
A = [x.^2 x ones(7, 1)];
c2 = A\y
f2 = @(x, c) c2(1) .* (x.^2) + c2(2) .* x + c2(3)
rx2 = (min(x):0.02:max(x))
ry2 = f2(rx2, c2)
% C
x = x_z5
y = y_z5
A = [x.^3 x.^2 1./x];
c3 = A\y
f3 = @(x, c) c3(1) .* (x.^3) + c3(2) .* (x.^2) + c3(3).* (1./x)
rx3 = (min(x):0.02:max(x))
ry3 = f3(rx3, c3)
% Wykres
hold on
plot(x, y, 'd')
plot(rx1, ry1, 'b')
plot(rx2, ry2, 'g')
plot(rx3, ry3, 'm')
legend( ...
'dane', ...
'4.3513 ./ x + 1.2521 .* x', ...
'0.553 .* (x.^2) + (-2.3885) .* x + (7.3262)', ...
'(-0.186) .* (x.^3) + (0.9625) .* (x.^2) + (4.7925).* (1./x)' ...
)
title('Zadanie 5')
hold off
err1 = sum((y - f1(x)).^2)
err2 = sum((y - f2(x)).^2)
err3 = sum((y - f3(x)).^2)
[err1, err2, err3]
% 0.0601 0.1692 0.0140
```





