%tehtävä 1
%Moodlessa on annettu datatiedosto data-har8.mat. Muodosta siellä oleville
%datapisteille splinit. Kokeile eri reunaehtoja. Piirrä kuvia ja tutki
%reunaehtojen vaikutusta

% parametrina annettava 'data' on tässä tapauksessa jokin annetuista
% 2xN -matriiseista da0, da1 tai da2.
% Alkuarvot z0 ja zn annetaan sen perään.
function y = teht1(data, z0, zn)

% Tulkitaan ensimmäinen rivi x-arvoiksi ja toinen rivi y-arvoiksi
x = data(1,:);
y = data(2,:);

% tehdään kuvaajia ja splinejä varten skaalaus datajoukon koon perusteella.
% Oletetaan siis, että x:t ovat kasvavassa järjestyksessä!
xs = linspace( x(1), x(length(x)) );

ys = spline(x, [z0 y zn], xs);

% plotataan matlabin antama splini
plot(xs,ys);

% plotataan mukaan myös pisteet
hold on;
plot(x,y, '*');

hold off;

y = 0;


% Kokeiluja:
% Tällä yliopiston koneella ei ole tuota curve fitting toolboxia, eikä
% csape täten näytä toimivan. Kokeiluissa on otettu täten huomioon vain
% matlabin mukana tulevan spline-komennon tarjoamat toiminnot.

% data 0
% teht1(da0, 0, 0), siis alkuarvoilla 0, 0 ei eroa matlabin
% oletusmenetelmästä (not a knot) juurikaan. Pieniä eroja ilmeisessä
% sulavuudessa (tokihan ne kaikki ovat sulavia derivoituvuuden mielessä),
% jos z0:aa varioi suuntaan tai toiseen.

% data 1
% teht1(da1, 0, 0) muistuttaa pitkälti matlabin oletusta. Alkuarvoa z0
% varioimalla saadaan ensimmäisen kummun korkeutta säädeltyä.

% data 2
% teht1(da2, 0, 0) tuottaa luontevan esityksen. Eikä eroa oletusmetodista.
% Kaikki poikkeavat alkuarvot tuottavat jotain ei niin nättiä. Johtuu
% varmastikin datan muodosta.