% Harjutustund 12, ülesanne 3
x=[-1:0.1:-0.3];
h=0.1;
y=[10,11,11.5,11.6,11.4,11.1,10,8.7];
plot(x,y,'o')
% a) leiame funktsiooni tuletise igas sõlmes
% tuletis=[?]
tuletis(1)=(y(2)-y(1))/h
for i=2:length(x)-1
  tuletis(i)=(y(i+1)-y(i-1))/(2*h)
end
tuletis(length(x))=(y(length(x))-y(length(x)-1))/h
tuletis(8)=(y(8)-y(7))/h

% b) lähendame esialgset funktsiooni kuupsplainiga S^(3,2)(x)
xx=[-1:0.01:-0.3];
y3splain=interp1(x,y,xx,'spline'); % S^(3,2)(xx) % leiab splaini väärtused xx-de korral
hold on
plot(xx,y3splain)
hold on
plot(x,tuletis,'*')
% interpoleerime !!! tuletisi !!! lineaarsplainiga S^(1,0)(x)
y1splain=interp1(x,tuletis,xx,'linear');
hold on
plot(xx,y1splain)
yline(0)
% c) leiame funktsiooni maksimumpunkti P_max(x_max,y_max) koordinaadid
% esitame tuletise joone funktsioonina ehk lineaarsplaini funktsioonina
f=@(z) interp1(x,tuletis,z,'linear'); % S^(1,0)(z)
% alglähend jooniselt: x~-0.7
% leiame statsionaarsed punktid f'(x)=0 ehk antud juhul lahendame võrrandi
% fzero(funktsioon,alglähend)
xstats=fzero(f,-0.7) % -0.7143
% uurime funktsiooni väärtusi lõigu [-1,-0.3] otspunktides ja
% statsionaarses punktis
[y(1) y(length(x)) interp1(x,y,xstats,'spline')]
% funktsiooni maksimumpunkt on
P_max=[xstats interp1(x,y,xstats,'spline')
    ]