From: Paul K. <pki...@us...> - 2005-05-29 15:40:16
|
Update of /cvsroot/octave/octave-forge/main/optim In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22353 Modified Files: fzero.m Log Message: [for Ben Barrowes] accept extra arguments for objective function Index: fzero.m =================================================================== RCS file: /cvsroot/octave/octave-forge/main/optim/fzero.m,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- fzero.m 25 May 2005 03:43:41 -0000 1.5 +++ fzero.m 29 May 2005 15:40:05 -0000 1.6 @@ -117,7 +117,7 @@ ## @end deftypefn ## @seealso{fsolve} -function [Z, FZ, INFO] =fzero(Func,bracket,options) +function [Z, FZ, INFO] =fzero(Func,bracket,options,varargin) if (nargin < 2) usage("[x, fx, info] = fzero(@fcn, [lo,hi]|start, options)"); @@ -170,8 +170,8 @@ if (use_brent) - fa=feval(Func,a); fcount=fcount+1; - fb=feval(Func,b); fcount=fcount+1; + fa=feval(Func,a,varargin{:}); fcount=fcount+1; + fb=feval(Func,b,varargin{:}); fcount=fcount+1; BOO=true; tol=options.reltol*abs(b)+options.abstol; @@ -304,7 +304,7 @@ endif, - fb=feval(Func,b); fcount=fcount+1; + fb=feval(Func,b,varargin{:}); fcount=fcount+1; else BOO=false; @@ -348,13 +348,13 @@ fprintf(stderr,"============================\n"); end % check for zeros in APPROX - fb=feval(Func,b); + fb=feval(Func,b,varargin{:}); fcount=fcount+1; tol_save = fsolve_options('tolerance'); fsolve_options("tolerance",options.abstol); [Z, INFO, MSG] = fsolve(Func, b); fsolve_options('tolerance',tol_save); - FZ = feval(Func,Z); + FZ = feval(Func,Z,varargin{:}); if options.prl > 0 fprintf(stderr,"\nfzero: summary\n"); fprintf(stderr,' %s.\n', MSG); @@ -380,6 +380,11 @@ %! options.reltol=eps; %! assert (abs(fzero(testfun,[0,3],options)), 1, -eps) %!test +%! testfun=inline('(x-1)^3+y+z','x','y','z'); +%! options.abstol=0; +%! options.reltol=eps; +%! assert (fzero(testfun,[-3,0],options,22,5), -2, eps) +%!test %! testfun=inline('x.^2-100','x'); %! options.abstol=1e-4; %! assert (abs(fzero(testfun,[-9,300],options)),10,1e-4) |