function yd=deriv3(x,dx)
%×èñëåííîå äèôôåðåíöèðîâàíèå âðåìåííîãî ðÿäà ñ
%ðàâíîîòñòîÿùèìè àðãóìåíòàìè ïî 3-ì òî÷êàì
%     Âûçîâ:    diff_y=deriv3(x,dx);
% Àðãóìåíòû:
%   x - âåêòîð ôóíêöèè;
%  dx - ðàññòîÿíèå ïî X ìåæäó òî÷êàìè (ïî óìîë÷àíèþ =1);

% Õîìóòîâ Ñ.Þ.,  11.04.96
%
% Èñòî÷íèê: Êîðí Ã., Êîðí Ò. Ñïðàâî÷íèê ïî ìàòåìàòèêå äëÿ
%           íàó÷íûõ ðàáîòíèêîâ è èíæåíåðîâ. - Ì., Íàóêà. - ñ.695
%

if nargin==1
   ddx=2;
else
   ddx=2*dx;
end
n=length(x);
yd=zeros(n,1);
for k=2:n-1,
   yd(k)=(x(k+1)-x(k-1))/ddx;
end
yd(1)=(-3*x(1)+4*x(2)-x(3))/ddx;
yd(n)=(x(n-2)-4*x(n-1)+3*x(n))/ddx;
