function [xmin,ymin,xmax,ymax] = lok_minmax(x,y)
% Etsitaan diskreetilla x-akselilla annettujen y-arvojen paikalliset
% minimit ja maksimit
% Esim 1) 
% x=0:0.1:7; y=sin(5*x); [xmin,ymin,xmax,ymax]=lok_minmax(x,y)
% plot(x,y,xmin,ymin,'x');ylim([-1.1,1.1]);grid on;shg
% Esim 2)
% x=linspace(0,7);y=sin(5*x); [xmin,ymin,xmax,ymax]=lok_min(x,y)
%
% Voidaan siis käyttää myös sileän funktion ääriarvojen numeeriseen
% laskentaan.

dysign=sign(diff(y)); % Differenssivektorin (y(2)-y(1), y(3)-y(2), ...) sign
d2y=diff(dysign);     % 2. differenssi (+-2 tai 0)
xin=x(2:end-1);       % x-sisäpisteet
yin=y(2:end-1);       % vastaavat y-pisteet
xmin=xin(d2y>0);      % Poimitaan sisäpistevektorista xin ne, joissa 
                      % 2. differenssi > 0.;
ymin=yin(d2y>0);      % vastaavat y-pisteet

xmax=xin(d2y<0);      % Poimitaan sisäpistevektorista xin ne, joissa 
                      % 2. differenssi < 0.;
ymax=yin(d2y<0);      % vastaavat y-pisteet

end

