% Harjutustund 12, ylesanne 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) 1. järku tuletised sõlmedes
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
tuletis(8)=(y(8)-y(7))/h

% tuletised ka joonisele
hold on
plot(x,tuletis,'*')
yline(0)
xline(0)
grid on

% b) interpoleerime ehk lähendame esialgset funktsiooni kuupsplainiga
% S^(3,2)(x)
xx=[-1:0.01:-0.3];
ys3=interp1(x,y,xx,'spline'); % annab S^(3,2)(xx)
hold on
plot(xx,ys3)
% lähendame tuletisi lineaarsplainiga S^(1,0)(x)
ys1=interp1(x,tuletis,xx,'linear'); % annab S^(1,0)(xx) väärtused
hold on
plot(xx,ys1)

% c) leiame funktsiooni maksimumpunkti koordinaadid
% lõigul [-1,-0.3]
% lõigu otspunktides on funktsiooni väärtused järgmised
[y(1) y(8)]
% leiame f'(x)=0, x=? ehk leiame statsionaarsed punktid
% fsolve(funktsioon,alglähend) - võrrandi lahendamine
% alglähendiks: -0.7
% esitame tuletise joone funktsiooni kujul
f=@(z) interp1(x,tuletis,z,'linear') % S^(1,0)(z) - z on argument
lahend=fsolve(f,-0.7)
% leiame esialgse funktsiooni väärtuse x=-0.7143 korral
ylahend=interp1(x,y,lahend,'spline') % S^(3,2)(lahend)
% funktsiooni väärtused otspunktides ja statsionaarses punktis
[y(1) y(8) ylahend]
% seega on funktsiooni maksimumpunkt
[lahend ylahend]