% Tehtävä 3,
% Ensimmäisen tehtävän datassa da2 arvot kasvoivat monotonisesti, mutta
% ainakin joillain reunaehdoilla vastaava splini ei ollut monotoninen.
% Tähän auttaa komento pchip. Tässä siis muodostetaan kuutiosplini mutta
% luovutaan toisen derivaatan jatkuvuudesta ja käytetään vapautuvat
% parametrit siihen että voidaan taata, että jos data on monotoninen niin
% vastaava splinikin on.

% Matlabin ohjeissa on pieni vertailu pchipin ja splinen välillä:
%   Comparing PCHIP with SPLINE:
%     The function s(x) supplied by SPLINE is constructed in exactly the same way,
%     except that the slopes at the X(j) are chosen differently, namely to make 
%     even D^2s(x) continuous. This has the following effects.
%     SPLINE is smoother, i.e., D^2s(x) is continuous.
%     SPLINE is more accurate if the data are values of a smooth function.
%     PCHIP has no overshoots and less oscillation if the data are not smooth.
%     PCHIP is less expensive to set up.
%     The two are equally expensive to evaluate.

% kutsu: teht3(da2)
function y = teht3(data)

% jaetaan data taas
x = data(1,:);
y = data(2,:);

xs = linspace( x(1), x(length(x)) );
yspline = spline(x, y, xs);
ypchip = pchip(x, y, xs);

plot(x,y,'*', xs, yspline, 'r', xs, ypchip, 'b');
legend('data', 'spline', 'pchip');

% kuvasta nähdään, että pchip välttää pienen värähtelyn, jota splinien
% kanssa tässä syntyy.

y = 0;