Mercurial > octave-nkf
diff scripts/optimization/__fdjac__.m @ 8986:22c8272af34b
improvements to fsolve & family
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Tue, 17 Mar 2009 08:49:08 +0100 |
parents | eb63fbe60fab |
children | 6feb27c38da1 |
line wrap: on
line diff
--- a/scripts/optimization/__fdjac__.m Sun Mar 15 10:09:44 2009 +0100 +++ b/scripts/optimization/__fdjac__.m Tue Mar 17 08:49:08 2009 +0100 @@ -17,21 +17,19 @@ ## <http://www.gnu.org/licenses/>. ## -*- texinfo -*- -## @deftypefn{Function File} {[@var{fval}, @var{fjac}]} = __fdjac__ (@var{fcn}, @var{x}, @var{err}) +## @deftypefn{Function File} {} __fdjac__ (@var{fcn}, @var{x}, @var{fvec}, @var{err}) ## Undocumented internal function. ## @end deftypefn -function [fvec, fjac] = __fdjac__ (fcn, x, err = 0) +function fjac = __fdjac__ (fcn, x, fvec, err = 0) err = sqrt (max (eps, err)); - fvec = fcn (x); - fv = fvec(:); h = abs (x(:))*err; h(h == 0) = err; - fjac = zeros (length (fv), numel (x)); + fjac = zeros (length (fvec), numel (x)); for i = 1:numel (x) x1 = x; x1(i) += h(i); - fjac(:,i) = (fcn (x1)(:) - fv) / h(i); + fjac(:,i) = (fcn (x1)(:) - fvec) / h(i); endfor endfunction