function plot_tangent(x,y)
if nargin<2,
x=1:0.01:10;y=sin(x);
end
s=diff(y)./diff(x);
f_tangent=@(a,ind)(s(ind)*(a-x(ind))+y(ind));
x_range=[min(x) max(x)];
iscontinue=true;
plot(x,y);
[gx,gy,mouse]=ginput(1);
x_gx_diff=abs(x-gx);
ind=find(x_gx_diff==min(x_gx_diff));
hold on;
h=plot(x_range,f_tangent(x_range,ind),'r');
hold off;
iscontinue=mouse==1;
while iscontinue
[gx,gy,mouse]=ginput(1);
delete(h);
x_gx_diff=abs(x-gx);
ind=find(x_gx_diff==min(x_gx_diff));
hold on;
h=plot(x_range,f_tangent(x_range,ind),'r');
hold off;
iscontinue=mouse==1;
end