% Create the vector vec_c
vec_c = [y(1), y(2), y(2), y(3), 0, 0, 0, 0];
a = [x(1)^3, x(1)^2, x(1), 1, 0, 0, 0, 0;
x(2)^3, x(2)^2, x(2), 1, 0, 0, 0, 0;
0, 0, 0, 0, x(2)^3, x(2)^2, x(2), 1;
0, 0, 0, 0, x(3)^3, x(3)^2, x(3), 1;
3*x(2)^2, 2*x(2), 1, 0, -3*x(2)^2, -2*x(2), -1, 0;
6*x(2), 2, 0, 0, -6*x(2), -2, 0, 0;
6*x(1), 2, 0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 6*x(3), 2, 0, 0];
vec_p = linsolve(a, vec_c.');
plot(x, y, 'ro-', 'LineWidth', 0.5, 'DisplayName', 'Data Points');
x_vals_1 = linspace(x(1), x(2), 1000);
x_vals_2 = linspace(x(2), x(3), 1000);
plot(x_vals_1, vec_p(1) * x_vals_1.^3 + vec_p(2) * x_vals_1.^2 + ...
vec_p(3) * x_vals_1 + vec_p(4), 'b-', 'LineWidth', 1.5, 'DisplayName', 'Cubic spline 1');
plot(x_vals_2, vec_p(5) * x_vals_2.^3 + vec_p(6) * x_vals_2.^2 + ...
vec_p(7) * x_vals_2 + vec_p(8), 'g-', 'LineWidth', 1.5, 'DisplayName', 'Cubic spline 2');
ylabel('Average temperature');