function df = numjac( values, pt, fcn, varargin)
% numjac calcul numrique du jacobien de de la fonction fcn
% df = numjac( values, pt, fcn, d)
% paramtres d'entre
% -> values
% valeur de fcn au point pt
% -> pt
% point d'valuation
% -> fcn
% fonction d'un vecteur a de mme dimension que pt et des
% arguments supplmentaires d
% fcn doit tre de la forme vals = fcn(a, varargin)
% et vals est un vecteur colonne.
% paramtres de sortie
% <- df
% Jacobien de fcn au point pt
df = zeros(length(values), length(pt));
for j = 1:length(pt)
temp = pt(j);
h = sqrt(eps)*abs(temp);
if (h == 0.0)
h = sqrt(eps);
end;
pt(j) = temp+h;
h = pt(j)-temp;
f=feval(fcn, pt, varargin{:});
for i = 1:length(values)
df(:,j)= (f-values)/h;
end;
pt(j) = temp;
end;