v4: made options for solve tolerance criteria

git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@925 ac1d8469-bf42-47a9-8791-bf33cf982152
time-shift
michel 2006-09-21 15:48:36 +00:00
parent 1f56e496b1
commit 6c98c92782
3 changed files with 10 additions and 9 deletions

View File

@ -33,7 +33,7 @@ function [x,info] = dynare_solve(func,x,jacobian_flag,varargin)
[x,info]=solve1(func,x,1:nn,1:nn,jacobian_flag,varargin{:}); [x,info]=solve1(func,x,1:nn,1:nn,jacobian_flag,varargin{:});
elseif options_.solve_algo == 2 elseif options_.solve_algo == 2
nn = size(x,1) ; nn = size(x,1) ;
tolf = eps^(2/3) ; tolf = options_.solve_tolf ;
if jacobian_flag if jacobian_flag
[fvec,fjac] = feval(func,x,varargin{:}); [fvec,fjac] = feval(func,x,varargin{:});
@ -53,7 +53,7 @@ function [x,info] = dynare_solve(func,x,jacobian_flag,varargin)
f = 0.5*fvec'*fvec ; f = 0.5*fvec'*fvec ;
if max(abs(fvec)) < 0.01*tolf if max(abs(fvec)) < tolf
return ; return ;
end end

View File

@ -1,9 +1,10 @@
% Copyright (C) 2001 Michel Juillard % Copyright (C) 2001 Michel Juillard
% %
function [x,f,fvec,check]=lnsrch(xold,fold,g,p,stpmax,func,j1,j2,varargin) function [x,f,fvec,check]=lnsrch(xold,fold,g,p,stpmax,func,j1,j2,varargin)
global options_
alf = 1e-4 ; alf = 1e-4 ;
tolx = 3.7e-11 ; tolx = options_.solve_tolx;
alam = 1; alam = 1;
x = xold; x = xold;

View File

@ -8,12 +8,12 @@ function [x,check] = solve1(func,x,j1,j2,jacobian_flag,varargin)
fjac = zeros(nn,nn) ; fjac = zeros(nn,nn) ;
g = zeros(nn,1) ; g = zeros(nn,1) ;
tolf = eps^(2/3) ; tolf = options_.solve_tolf ;
tolmin = 3.7e-11 ; tolx = options_.solve_tolx;
tolx = 3.7e-11 ; tolmin = tolx ;
stpmx = 100 ; stpmx = 100 ;
maxit = 2000 ; maxit = options_.solve_maxit ;
check = 0 ; check = 0 ;
@ -30,7 +30,7 @@ function [x,check] = solve1(func,x,j1,j2,jacobian_flag,varargin)
f = 0.5*fvec'*fvec ; f = 0.5*fvec'*fvec ;
if max(abs(fvec)) < 0.01*tolf if max(abs(fvec)) < tolf
return ; return ;
end end